Admission requirements
Regular access to a computer is needed to complete this course.
Description
Programming ability is fast becoming a required skill. A decade ago, the ability to code was considered more of a specialist skill. As the digital world increases in importance, we are beginning to see a shift in our understanding of programming as a skill; from a specialist skill to a basic one. In the context of cyber security, having an understanding of how computer programs are designed and how computers process information is of critical importance to understanding how we defend against digital threats.
We will use Python to learn programming. Python is multi-functional language and is user friendly, especially for those new to programming. The skills learned in this course with Python can be used more broadly in different contexts and with different programming languages.
Course objectives
Students will define and apply of the main concepts in programming.
- Define the key vocabulary
- Explain how computers follow instructions
- Employ basic data structures
Students will be able to create small, meaningful programs that can solve basic computational problem, small games, etc.
- Students can implement required functions as needed
Students will connect concepts between programming and the wider cyber security context
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
In person lectures.
There will be practical sessions which is an opportunity to ask questions and practice concepts. No new information will be introduced in the practical sessions, but there will be a small guided project in each session to develop the skills introduced in lecture. Additionally, there is an opportunity to earn bonus points for the exam in the practical sessions.
Assessment method
The final grade for the course will be the weighted average of 50% examination, 20% final project and 30% assignments. A 5.5 is needed on the examination, and a 5.5 is needed across both the final project and the assignment in order to pass the course.
Exam (50%)
There will be an in-person written, closed-book examination with both open and short questions.
If possible, this exam will use ANS and be taken under controlled conditions.
It will be allowed to bring a single A4 page of handwritten notes to the final exam. Anything can be written on this page so long as it is written by the student by hand.
It will be possible to retake the exam. This retake will be in the same form as the regular exam, with the possibility of an alternate form if circumstances require it.
The teacher will inform the students how the inspection of and follow-up discussion of the exams will take place.
Final Project (20%)
The will be a final project which consists of a programming project.
The final project must be submitted via Brightspace. Submissions via email will not be accepted.
It will not be possible to resubmit the final project. The final project can be turned in up to 2 days late with an increasing penalty.
All assignments must be representative of a student's own work, plagiarized submissions will be referred to the LIACS Board of Examiners for sanctions.
Final projects that are not submitted on time will result in a 0 on that assignment.
Assignments (30%)
There will be be regular assignments that must be submitted via Brightspace. Alternative submissions will not be accepted.
These assignments will consist of Brightspace quizzes and submitted python assignments.
There are weekly homework assignments. The lowest 3 assignments (not final project) will automatically be dropped from the grade calculation.
It will not be possible to resubmit assignments. Late assignments will not be accepted.
Assignments that are not submitted on time will result in a 0 on that assignment.
All assignments must be representative of a student's own work, plagiarized submissions will be referred to the LIACS Board of Examiners for sanctions.
Reading list
There is no required textbook or reading list for this course.
Automate the boring stuff is recommended as an assistive resource. Python for Everybody is another recommend assistive resource.
Other literature and reading materials will be announced during the course.
Registration
For application EduXchange is used, application will start on Wednesday 15th of May 2024 at 13:00h.
Application period:
TU Delft, Erasmus and LDE students: 15 May 2024 (at 13.00h) - 31 May 2024
Leiden University students: 15 May 2024 (at 13.00h) - 4 July 2024
More information about the application procedure can be found on this website:
Contact
The primary contact for this course is N.D. Schiele.
Additionally, Dr. O. Gadyatskaya can be contacted.
Please direct all questions about registration to minorCSGE@liacs.leidenuniv.nl
Remarks
It is assumed that students have no previous computer programming experience.
When you register for a certain course, you automatically receive access to the environment of this course via Brightspace.
For more information about Brightspace, click on this link to view the university manuals. If you have any other questions or problems, you can contact the helpdesk of Leiden University.
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.