6 EC
Semester 2, period 4
52548SCP6Y
This course provides an introduction into modern programming methods used by scientists. Emphasis lies on applications in chemistry, but the programming methods are of course more generally applicable and useful for other scientific fields as well. The study load is 4 weeks net study time (equal to 6 EC) and is spread out equally over a period of 8 weeks thereby assuming 50% availability of the students during this period.
In the first period students learn the Fortran programming language (NB: the modernized form of this language) and practice their skills with increasingly complex programming assignments. This period is ended with a larger assignment in week 6 and 7 in which students develop a scientific software application to solve a computational chemistry problem. Contact sessions during these weeks will be organized such that students get individual feedback on their program design and implementation. The last week is reserved for finalizing this assignment and preparing for and taking the exam.
Concise list of topics
Get familiar with programming languages (modern Fortran); compiling with gcc; variables and data types; procedures; reading/writing data; arrays; control statements; modules; user-defined types; structured programming with abstract data types (ADTs); introduction to software design. The later exercises focus on numerical methods that are often used in the chemistry domain (linear algebra, numerical integration, parallelization).
Course notes and online resources will be provided.
Lectures serve to discuss the concepts used in scientific programming to design efficient and modular computer code.
Self study and practical classes are used to train students in designing, writing and debugging their own computer programs.
|
Activity |
Number of hours |
|
Lectures |
8 |
|
Computer lab |
28 |
|
Feedback meetings |
6 |
|
Self study |
124 |
This programme does not have requirements concerning attendance (TER part B).
Additional requirements for this course:
We assume a basic familiarity with programming at the level of the bachelor course ‘Introduction to Scientific Programming for Chemists’. Furthermore students should have a suffciently modern laptop or desktop computer.
| Item and weight | Details |
|
Final grade | |
|
1 (100%) Tentamen |
Students will be assessed based on the written exam (50%) and the mark for the programming assignments (50%).
There are five assignments in total, the exercises of the first week are meant as practice and will not count for the total. Assignments in week 2, 3, 4, 5 have a weight of 10%, the final assignment of week 6, 7 has a weight of 20%. This gives 60% in total, so the lowest scoring of the 5 assignments will not count (or only for 10% if the last assignment had the lowest score).
Individual assignment in which you create a larger program to solve a scientfically relevant problem. This will test your knowledge of the programming language as well as the correct use of the complementary tools (libraries, revision control, testing procedures) relevant for scientific programming.
The 'Regulations governing fraud and plagiarism for UvA students' applies to this course. This will be monitored carefully. Upon suspicion of fraud or plagiarism the Examinations Board of the programme will be informed. For the 'Regulations governing fraud and plagiarism for UvA students' see: www.student.uva.nl
| Weeks | Subject |
| 1-5 | Programming assignments |
| 6-7 | Programming project |
| 8 | Exam |
C. Chibueze (c.s.chibueze@vu.nl)
Dr. D. Dubbeldam (D.Dubbeldam@uva.nl)
Prof. dr. L Visscher (L.Visscher@vu.nl)