Computer Programming
This is the introductory programming course for Cybersecurity and other, preferrably master-level students. No previous knowledge of programming or prerequisite subjects are required, but some technical competence with computers is expected. The course consists of video lectures by Charles Severance and/or reading materials, and there are online practice sessions on Fridays. The course is held entirely online, so please make sure that you have a computer with a stable Internet connection. The programming language is Python. All necessary software will be made available to the course participants.
Before each practice session, you have to watch the video lectures, solve a quiz about the current topic, and solve and submit programming exercises. In the practice sessions, main topics and exercises are reviewed, and more exercises are solved.
Schedule and resources
- Practice session: Fri 12:15-13:45, online, Phil Labuschagne
- Consultation: TBA, online
- Main course page in Moodle: https://moodle.ut.ee/course/view.php?id=8434
- Lecture videos: https://www.py4e.com/lessons
- Thonny: https://thonny.org/
Week | Homework | Date | Topics | Project |
1. | Homework | 14.02 | Variables, expressions, and statements | |
2. | Homework | 21.02 | Conditional Execution | |
3. | Homework | 28.02 | Functions | |
4. | Homework | 07.03 | Loops and Iterations | |
5. | Homework | 14.03 | Strings. Files | |
6. | 21.03 | First test | ||
7. | Homework | 28.03 | Lists | Project start |
8. | Homework | 04.04 | Nested Loops | Project idea |
9. | Homework | 11.04 | Dictionaries | |
10. | Homework | 18.04 | Tuples, sets | |
11. | 25.04 | Second test | ||
12. | Homework | 02.05 | Graphics (Tkinter) | Project alpha |
13. | Homework | 09.05 | Object-Oriented Programming | |
14. | Homework | 16.05 | Inheritance | |
15. | Homework | 23.05 | Recursion | |
16. | Homework | 30.05 | Regular Expressions | Project beta |
There will be retakes for both tests, which will be scheduled and announced separately. In addition, there will be a programming project starting on week 7 and the exam in June.
Grading
Time | Max | Min | Comment | Deadline | |
Quizzes + homeworks | Weeks 1-16 | 14 | 7 | 0.5+0.5 points per week | Before each session |
Practice sessions | Weeks 1-16 | 6 | 0.5 points per week | Each session | |
Project | Weeks 7-16 | 16 | 8 | In two parts (8 + 8) | Week 12 + Week 16 |
First test | Week 6 | 20 | Quiz passed | Quiz + programming | |
Second test | Week 11 | 20 | Quiz passed | Quiz + programming | |
Exam | In June | 24 | Quiz passed | Quiz + programming | |
Extra exercises | 10 |
- To get points for the pre-session work (quizzes + programming homeworks), it has to be submitted through Moodle before each session by Friday 8:00. In grading the homeworks, effort is preferred to correctness.
- To get points for the practice session work, active involvement and own contribution should be visible; submission closes on Sunday evening.
- To pass the quiz parts of the tests and exam, all questions must be answered correctly (small mistakes don't count). Weekly quizzes don't have a threshold.
For a positive grade in the course, all minimum thresholds must be met.
During the semester, you can see your current points and feedback in Moodle.
Grades: A ≥ 90, B ≥ 80, C ≥ 70, D ≥ 60, E ≥ 50, F < 50.
Learning Outcomes
After passing this course, the student:
- knows and can use fundamental programming constructions: variables, expressions, assignments, conditionals, loops, subroutines, recursion, simple input/output
- knows basic data types and -structures (numeric types, booleans, strings, lists, etc.) and can use corresponding standard operations
- can analyze and explain in detail the behavior of simple programs and modify, complement, and develop them
- can design algorithms for solving simple problems and implement, test, and debug the corresponding program
- can implement projects related to programming in collaboration with teammates.
The average workload in the course is 6-9 hours of study each week.
In case of questions, please write to the course forum in Moodle or ask the supervisor.
Credits:
- Charles Severance (lecture videos)
- Ljubov Jaanuska, Marina Lepp, Georg Demidov (parts of reading materials)