12925 Programmeringsprincipper

2018/2019

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
Engelsk
5
Ph.d., Generelt servicekursus (generiske færdigheder)
Kurset udbydes som enkeltfag
Forår
Campus Lyngby
- Lectures 10 hours
- Tutorials 20 hours
- Reading 30 hours
- Assignments 70 - 90 hours
13-uger
Ingen eksamen
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 DTU's elearning infrastructure. Feebback is provided for the major programming assignment, if requested.
Alle hjælpemidler er tilladt
bestået/ikke bestået , intern bedømmelse
Minimum 4 Maksimum: 12
Hugo Maxwell Connery , Lyngby Campus, Bygning 115, Tlf. (+45) 4525 1555 , hmco@env.dtu.dk
Hjalte Jomo Danielsen Sørup , Lyngby Campus, Bygning 115, Tlf. (+45) 4525 1590 , hjds@env.dtu.dk

12 Institut for Vand og Miljøteknologi
01 Institut for Matematik og Computer Science
I studieplanlæggeren
Overordnede kursusmål
The course covers:

• the process of programming
• principles that guide computer programming practice
• a collection of core concepts which are essential in modern programming languages, such as object orientation, call by value/call by reference, abstract data types
• the value of shared libraries, and how to create and use one
• the importance of interface definitions
• the utility of the command-line itself as a useful tool and interface
• an introduction to the use of the High Performance Computing infrastructure at DTU
• the use of git as a version control, software distribution and collaboration system

The principles and concepts are computer language independent. To highlight them, two languages are studied, the GNU/Linux command-line job control language, Bourne Again SHell (bash), and the general purpose Python language. In association with bash the most commonly used command-line tools to the GNU/Linux operating systems are introduced. For python, the standard library is examined, and the use of conda as a third party library package management system is introduced.

Course participants are encouraged to reflect on the course's core concepts as they implement some software which will directly help them in their research. The course instructors offer assistance in scoping and designing this "Useful Project" for each participant, if desired. The Useful 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.
Læringsmål
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
  • be confident in building software tools to assist them in their research
  • 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 encapsulation is, and the value that it offers
  • to understand the difference between functional 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 collaboration and distribution platform
  • understand how to submit a job to the HPC
Kursusindhold
All materials are made available via DTU's elearning infrastructure.
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. februar, 2019