12925 Programmering Principper og Implementering (PoPI)

2016/2017

Students are preferred from DTU Environment, other DTU departments and other danish universities, in that order.

This course is not an introduction to programming. Students should have some experience in programming.
Kursusinformation
Principles of Programming and implementation (PoPI)
Engelsk
5
Ph.d., Generelt servicekursus (generiske færdigheder)
Kurset udbydes under tompladsordningen
Efterår
Campus Lyngby
- Lectures 10 hours
- Tutorials 20 hours
- Reading 30 hours
- Assignments 70 - 90 hours
13-uger
Aftales med underviser
Bedømmelse af opgave(r)/rapport(er)
Active participation in lectures and group work. Written assignments (including software development). All assignments are issued and submitted via CampusNet. Feebback is provided for the major programming assignment, if requested.
Alle hjælpemidler er tilladt
bestået/ikke bestået , intern bedømmelse
12915
PoPI is the larger version of PoP (12915). A student may take only one of the two courses. Please read the course descriptions for both courses and choose the version that suits you best.
Minimum 4 Maksimum: 10
Hugo Maxwell Connery , Lyngby Campus, Bygning 115, Tlf. (+45) 4525 1555 , hmco@env.dtu.dk

12 Institut for Vand og Miljøteknologi
01 Institut for Matematik og Computer Science
I studieplanlæggeren
Overordnede kursusmål
See 12915 Principles of Programming. This course extends 12915 by:

• adding the study of version control systems
• introducing the use of the High Performace Computing (HPC) infrastructure at DTU, and
• requiring the student to implement a major programming project

The version control system is git, which the students need to use to submit their major project.

The introduction to the HPC is provided by the people who maintain it from DTU Compute.

The major project can be anything that the student wishes, but must be approved by a course lecturer so that it satisfies the points for the course. It is suggested that the student build something that will directly assist them in their Ph.D research.

Guidance is provided to students for their major programming assignment. This can from architectural design, to solving small challenges.
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 understand the difference between function programming and object oriented design
  • to be confident in producing small python and/or bash scripts, including package encapsulation
  • to be able to understand resource trade offs: speed vs minimal resource usage
  • to have a fundamental understanding of exactly what happens when you enter a single command in bash on GNU/Linux
  • understand the value of version control systems and to have obtained basic proficiency in the git version control system
  • understand how to use gitlab and/or github as a git hosting platform
  • understand how to submit a job to the HPC
  • be confident in building software tools to assist them in their research
Kursusindhold
All materials are made available via CampusNet. The materials are all from 12915 and

• Git (the version control system)
• HPC
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.
Sidst opdateret
15. november, 2016