nl en

Software Development


Admission requirements

Not applicable.


This course aims to advance the programming skills of the students in Python and introduce them to software development concepts and practices that they will need for the rest of their studies and in their professional careers in data science and artificial intelligence.
The topics included in the course are software development processes, collaborative software development, python library development, software design notation, data preprocessing, software testing, cloud software development, and source code management.
The students will be expected to prepare in advance for every lecture, using the provided material. There will be programming assignments, where students will be working towards developing a software product.

Course objectives

A student who has successfully completed the course is able to:

  • Develop software in in Python

  • Understand and employ source code management systems (Git, Gitlab)

  • Understand data handling for working on data science projects

  • Develop libraries in Python

  • Outline basic software testing techniques and apply those in projects

  • Recognize how the cloud can be used in software development

  • Understand diagrams created using the software design notation (UML)

  • Recognize basic software development processes and agile development practices

  • Implement a data science software product in a team using known software development methodologies


You will find the timetables for all courses and degree programmes of Leiden University in the tool MyTimetable (login). Any teaching activities that you have sucessfully registered for in MyStudymap will automatically be displayed in MyTimetable. Any timetables that you add manually, will be saved and automatically displayed the next time you sign in.

MyTimetable allows you to integrate your timetable with your calendar apps such as Outlook, Google Calendar, Apple Calendar and other calendar apps on your smartphone. Any timetable changes will be automatically synced with your calendar. If you wish, you can also receive an email notification of the change. You can turn notifications on in ‘Settings’ (after login).

For more information, watch the video or go the the 'help-page' in MyTimetable. Pleas note: Joint Degree students Leiden/Delft have to merge their two different timetables into one. This video explains how to do this.

Mode of instruction

  • Lectures

  • Lecture preparation material: reading material, practical assignments

  • Labs for working on the weekly assignments and the programming project

Assessment method

A written exam determines 60% of the grade, and the assessment of the lab assignments (programming project) determines 40%. In case of the group project, the project grade applies to all group members. The exam and programming project need to be graded at least 5.5 to successfully pass the course.

If you resit for the programming assignment, your maximum grade can be 6.
The teacher will inform the students how the inspection of and follow-up discussion of the exams will take place.

Reading list

Reading material provided throughout the course.


From the academic year 2022-2023 on every student has to register for courses with the new enrollment tool MyStudymap. There are two registration periods per year: registration for the fall semester opens in July and registration for the spring semester opens in December. Please see this page for more information.

Please note that it is compulsory to register for every exam and retake. Not being registered for a course means that you are not allowed to participate in the final exam of the course.

Extensive FAQ on MyStudymap can be found here.


Education coordinator LIACS bachelors


Not applicable.