Studiegids

nl en

Introduction to Programming (BSc)

Vak
2024-2025

Admission requirements

Not applicable.

Description

This course teaches the basics of programming concepts and how to apply these in the programming language Python. The overall course goal is to enable students to create conceptually solid, and readable, Python code without the need to resort to examples or AI programming aid. The course focuses on code fluency in Python, and on basic programming concepts including variables, types, operators, constants, control flow (sequence, repetition, selection) and functions. It also provides an introduction to simple data structures such as strings, number formats, arrays and lists. Finally, it introduces simple algorithmic concepts such as iteration and recursion, and touches upon the necessary computational thinking skills needed to design simple algorithms to solve problems. This course also covers basic errors, exceptions and debugging, and teaches code standards.

Course objectives

  1. Understanding basic programming concepts:
  • Remember the basic programming language pipeline including file system, source files, parsing, syntax, semantics, compiling and interpreting, and runtime.

  • Remember and understand the concepts of variables, data types, constants, variable assignment, variable scope and basic memory allocation, as well as operators, functions, expressions and statements.

  • Understand control flow of imperative programming languages including conditional branching, loops and function calls.

  • Understand the basic principle of classes, methods and attributes.

  1. Understand basic algorithm design and data structures:
  • Remember and understand simple data structures including sequences, sets, and matrices, and understand how to address these using keys and indices.

  • Understand iteration and recursion.

  • Explain choices in the design of simple algorithms.

  1. Apply, explain and analyze basic programming concepts in Python
  • Apply and explain implementation of theoretical programming concepts (1) in Python.

  • Apply and explain implementation of basic algorithms and data structures (2) in Python.

  • Understand and analyze errors and exceptions, and apply basic debugging strategies.

  • Apply proper Python coding standards.

  • Apply available tools to program and run Python code (text editor, IDE, command line, Jupyter).

Timetable

In MyTimetable, you can find all course and programme schedules, allowing you to create your personal timetable. Activities for which you have enrolled via MyStudyMap will automatically appear in your timetable.

Additionally, you can easily link MyTimetable to a calendar app on your phone, and schedule changes will be automatically updated in your calendar. You can also choose to receive email notifications about schedule changes. You can enable notifications in Settings after logging in.

Questions? Watch the video, read the instructions, or contact the ISSC helpdesk.

Note: Joint Degree students from Leiden/Delft need to combine information from both the Leiden and Delft MyTimetables to see a complete schedule. This video explains how to do it.

Mode of instruction

  • Lectures: to teach the theoretical concepts of programming, programming on paper in pseudocode, and implementation in Python in the form of examples. Furthermore, we cover practical sessions for debugging and structuring code.

  • Labs: during labs students hand in their assignments live (see below assessment). Furthermore, during lab hours students can ask clarifying questions about the lab assignments, exercises, and course material.

Assessment method

  • Assignments (70%): approx. 15 individual assignments, to be handed in and explained live during the lab sessions. Overall grade for assignments is the weighted average of the individual assignment grades. Assignments need to be handed in before the assignment deadline. Failure to do so without a valid reason results in failing the assignment (and therefore the course, see below). There is no retake possibility for an assignment after the deadline has passed. Before the assignment deadline, an assignment may be handed in as often as needed to pass.

  • One theoretical exam (30%): The exam focuses on understanding theoretical programming concepts and analyzing simple algorithms. A retake exam will be offered at a later date.

To pass the course, each assignment must be passed with a sufficient grade AND the exam must be graded >=5.5.
The grade for non-completed (empty, not delivered or invalid) assignments is 0.

Reading list

No book, but lectures slides, referenced material, and a potential reader are required studying material.

Registration

As a student, you are responsible for enrolling on time through MyStudyMap.

In this short video, you can see step-by-step how to enrol for courses in MyStudyMap.
Extensive information about the operation of MyStudyMap can be found here.

There are two enrolment periods per year:

  • Enrolment for the fall opens in July

  • Enrolment for the spring opens in December

See this page for more information about deadlines and enrolling for courses and exams.

Note:

  • It is mandatory to enrol for all activities of a course that you are going to follow.

  • Your enrolment is only complete when you submit your course planning in the ‘Ready for enrolment’ tab by clicking ‘Send’.

  • Not being enrolled for an exam/resit means that you are not allowed to participate in the exam/resit.

Contact

Education coordinator LIACS bachelors

Remarks

Software
Starting from the 2024/2025 academic year, the Faculty of Science will use the software distribution platform Academic Software. Through this platform, you can access the software needed for specific courses in your studies. For some software, your laptop must meet certain system requirements, which will be specified with the software. It is important to install the software before the start of the course. More information about the laptop requirements can be found on the student website.