Computer Programming
This is the introductory programming course for Cybersecurity students. The course consists of video lectures by Charles Severance and/or reading materials, which will be complemented by online practice sessions on Thursdays.
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
Practice sessions:
- Thu 14:15-15:45 (group 1)
- Thu 18:15-19:45 (group 2)
Week | Homework | Date | Topics | Deadlines |
---|---|---|---|---|
1. | Homework | 11.02 | Introduction | |
2. | Homework | 18.02 | Variables, expressions, and statements | |
3. | Homework | 25.02 | Conditional Execution | |
4. | Homework | 04.03 | Functions | |
5. | Homework | 11.03 | Loops and Iterations | |
6. | 18.03 | First test | ||
7. | Homework | 25.03 | Strings | |
8. | Homework | 01.04 | Files | Project start |
9. | Homework | 08.04 | Lists | |
10. | Homework | 15.04 | Nested Loops | |
11. | 22.04 | Second test | ||
12. | Homework | 29.04 | Graphics (Tkinter) | Project alpha |
13. | Homework | 06.05 | Dictionaries | |
14. | Homework | 13.05 | Tuples, sets | |
15. | Homework | 20.05 | Recursion | |
16. | Homework | 27.05 | Regular Expressions | Project beta |
For both tests there will be a retake, which will be scheduled and announced separately. In addition, there will be a programming project starting on week 7, and exam in June.
Grading
Time | Max | Min | Comment | Deadline | |
---|---|---|---|---|---|
Quizzes + homeworks | Weeks 1-16 | 14 | 7 | 1 point per week | Before each session |
Practice sessions | Weeks 1-16 | 6 | 0.5 points per week | Each session | |
Project | Weeks 7-16 | 24 | 12 | In two parts (12 + 12) | Week 12 + Week 16 |
First test | Week 6 | 16 | Quiz passed | Quiz + programming | |
Second test | Week 11 | 16 | 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. To get points for practice session work, active participation in the session and own contribution should be visible.
To pass the course, all minimum tresholds must be met.
Grades: A - 90...110, B - 80...90, C - 70...80, D - 60...70, E - 50...60, F - 0...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 datatypes 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.
In case of questions please write to the forum in Moodle or ask the supervisor:
- Reimo Palm (reimo.palm at ut.ee)