Honoursmodule: Scientific Programming 101

6 EC

Semester 2, period 4, 5

55121HSP6Y

Owner IIS honoursprogramma
Coordinator dr. Simon Pauw
Part of Instituut voor Interdisciplinaire Studies (algemeen), honoursvakken, year 1IIS honoursprogramma,

Course manual 2024/2025

Course content

During this course, students will use the Python programming language while learning to solve scientific problems from several fields of science. This course is intended for students who have no experience in programming at all.

Study materials

Syllabus

Objectives

  • Transform the description of a simple algorithm into working code by combining basic program elements in Python
  • Apply several scientific programming techniques from different fields of study
  • Use libraries in their program and know how to find and read documentation on new-found libraries
  • Make their programs simple to understand and easy to read
  • Track down and fix several common programming errors in simple programs
  • Process large datasets
  • Write algorithms that not only correctly solve scientific problems, but also efficiently

Teaching methods

  • Lecture
  • Laptop seminar

Learning activities

Activity

Hours

Hoorcollege

2

Tentamen digitaal

2

Werkcollege

32

Self study

132

Total

168

(6 EC x 28 uur)

Attendance

Additional requirements for this course:

Students may be absent 4 out of 16 seminars (werkcollege)

Assessment

Item and weight Details

Final grade

Tentamen digitaal

  • The exam consists of 4 progamming assignments. The student needs 3 out of 4 to be correct.

Inspection of assessed work

  • Assessment of assignments is available on the website. They can discuss the results in class.
  • For the exam, students can make an appointment to discuss the results. They will be emailed about this when the grading is fnished.

Assignments

The course consists of 5 modules that are grade pass/fail. The modules are:


1 ALGORITHMS. Learn to think like a computer. Things that we intuitively know how to do, like drawing a pyramid or computing change for a payment, is hard to get a computer to do right. In this module you’ll learn how to break down such intuitive problems into steps that even a computer can understand.

2 TEXT. Natural language processing is the science of making a computer understand (something about) natural human language. You will learn how you can get a computer to understand the sentiment of tweets. Is the tone of the tweet positive or negative?

3 BIG-DATA. In this module you will learn to work with data. You will, for example, analyze weather from the Netherlands and answer questions like: When was the first heat-wave? What was the longest freezing period?

4 MONOPOLY. When playing Monopoly, a starting player's advantage seems unfair. To verify, you could play many (millions) real games, but this would take way too much time. Instead, you'll write a computer simulation. This also allows you to experiment with game adjustments to make it fair. You're doing all this for a board game, but this simulation principle applies to various scientific fields (economy, chemistry, biology...).

5 SHAKESPEARE. What is an efficient algorithm? When you want to run large simulations, analyze large dataset, or any other computationally intensive task, writing efficient algorithms could in some cases mean the difference between a run time of a couple of minutes or of weeks. The theory of computational complexity gives you a way to reason about the efficiency of algorithms and make them run (much) faster.

Each module consists of a number of assignments. Some are marked as pair assignments and can be made collaboratively, others are individual assignments and have to be made without using (partial) solutions of other students. Most modules also contain challenge assignments, those are optional.

Fraud and plagiarism

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

Course structure

Week/Dates/assignments

| Week 8  | Feb 17 - 19     | 1.1 - 1.3    | 1.4 - 1.5            |
| Week 9  | Feb 24 - 26     | 1.5 - 1.6    | 1.7                      |


| Week 11 | Mar 10 - 12     | 2.1 - 2.2    | 2.3 - 2.4            |
| Week 12 | Mar 17 - 19     | 2.5 - 2.6    | 2.7                      |


| Week 14 | Mar 10 - 12        | 3.1             |
| Week 15 | Mar 31 - Apr 2  | 3.2, 3.3     | 4.1 - 4.2            |
| Week 16 | Apr 14 - 16         | 4.3             | 4.4.                   |


| Week 19 | May 5 - 7          |                 | 5.1 - 5.2         |
| Week 20 | May 12 - 14     | 5.3          | 5.4                  |
| Week 21 | May 19 - 21     | Exam!   |

Additional information

Course website:

sp101.proglab.nl

Last year's student feedback

In order to provide students some insight how we use the feedback of student feedback to enhance the quality of education, we decided to include the table below in all course guides.

Course Name (#EC) N  
Strengths
  •  
  •  
Notes for improvement
  •  
  •  
Response lecturer:
  •  

Contact information

Coordinator

  • dr. Simon Pauw

Staff

  • Loes Bijman
  • Steph Drake
  • Marit van den Helder
  • Puck te Rietmole