2015/2016

12915 Principles of Programming.

Engelsk titel:

Principles of Programming.

Sprog:

Point( ECTS )

5

Kursustype:

Ph.d.
Kurset udbydes under tompladsordningen
 

Skemaplacering:

Efterår

Undervisningens placering:

Campus Lyngby

Undervisningsform:

- Lectures 10 hours
- Tutorials 20 hours
- Reading 30 hours
- Assignments 70 - 90 hours

Kursets varighed:

13-uger

Eksamensplacering:

Aftales med underviser

Evalueringsform:

Hjælpemidler:

Bedømmelsesform:

Deltagerbegrænsning:

Minimum 4 Maksimum: 20

Overordnede kursusmål:

The course presents and offers for discussion the following topics:

• an overview of the process of programming independently of the language or system that one uses to program: requirements gathering, requirements analysis, high level desgin,
prototyping, implementation, testing, documentation, deployment, deployment validation, bug fixing and enhancements.

• the historical, linear and more modern cyclical models of progress in software Development

• a collection of principles that can be applied when programming

• the two dominant paradigms of programming, functional and object oriented are presented and discussed.

• encapsulation and interface design

• version control systems and their purpose, both for programming and other activitites

• copyright and licensing.

During the process of these abstract and/or theoretical topics, two programming languages and one version control system are studied and used.

The Bourne Again Shell (bash) is a process invocation and control language which acts as the underlying command-line interface to modern GNU/Linux systems. This is studied and used for the minor project. Its use on DTU Compute's High Performance Computing
(HPC) systems is explored with a focus on large scale processing for research purposes. A lecture on job submission and control for the HPC is provided by a lecturer from DTU Compute.

The Python (general) programming language is studied and used for the major project. This may also be coupled to the HPC environment.

The git version control system is studied and used during the major project.

Both the minor and major projects are to be defined by the students as tools that will be helpful to them in their ongoing research (from whatever field).

Læringsmål:

En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
  • to have understood some core principles of programming, particularly 'Laziness is a Virtue'
  • to have gained a 'bird's eye' view of the process of programming
  • to understand what 'from the outside in' means as a programming practice
  • to understand what encapsulation is, and the value that it offers
  • to be able to select between a functional or object oriented paradigm according to what you wish to build and/or share
  • to have contributed towards the construction of a shared library or other programming output that has direct value to your group
  • to understand the value of version control systems
  • to understand the difference between a copyright and a license, and how that relates to publishing software
  • to be confident in producing small python and bash scripts, including package encapsulation
  • to be able to use basic features of bash for job control
  • to have obtained basic proficiency in the git version control system

Kursusindhold:

All materials are made available via CampusNet. The materials are
categorised as:
• Core (theory)
• Python (the language)
• Bash (the language)
• Git (the version control system)

Bemærkninger:

Lecture material must be read before the lecture. Lecture periods provide a brief overview of the content and offer the opportunity for
discussion.

Kursusansvarlig:

Hugo Maxwell Connery , Lyngby Campus, Bygning 115, Tlf. (+45) 4525 1555 , hmco@env.dtu.dk

Institut:

12 Institut for Vand og Miljøteknologi

Tilmelding:

I CampusNet
Sidst opdateret: 03. juli, 2015