Fundamentals of Programming 2-IKV-105

The course provides students with the basics of programming and algorithmic thinking using Python programming language. It focuses on elements of programming (variables, if-statement, for-loop, etc.) and writing simple programs. Additionally it introduces concepts from computer science useful for students of cognitive science. It puts emphasis on the ability to intrinsically understand existing source code and make use of Python libraries, including the famous scientific libraries such as NumPy for numerical computations on data matrices and MatPlotLib for plotting. If time allows, the finale of the course comprises very light introduction to machine learning including the well-known scientific libraries (SciKitLearn, Pytorch).

Basic info

Type Day Time Room Lecturer
Lecture Tuesday 13:10 - 14:40 I-9 or MS Teams: 2-IKV-105 Fundamentals of Programming Kristína Malinovská
Labs Thursday 14:00 - 15:30 I-9 or MS Teams: 2-IKV-105 Fundamentals of Programming Matej Fandl and Kristína Malinovská

Syllabus

  • Introduction: what is programming? Basic concepts
  • Variables, basic types, console input/output, my first program
  • Control flow: if, for, lists, strings and formatting
  • Writing programs: functions and modules, values vs. references
  • Collections (list, tuple, set, dictionary), working with files
  • Exceptions, working with files and directories
  • Object-oriented programming, trees, *recursion
  • Numpy. and Matplotlib
  • Machine Learning and ANN: basics and libraries

Course grading

  • Weekly homework (max. 10 points).
  • Midterm (max 10 points)
  • Final project or Exam (max. 30 points).
  • Bonus assignments.
  • Overall grading: A (50-46), B (45-41), C (40-36), D (35-31), E (30-26), Fx (25-0).

Indicative Course Schedule

Example from 2021

# Date Topic
1. 29.09. Introduction: what is programming? Basic concepts
2. 06.10. Variables, basic types, console input/output, my first program
3. 13.10. Control flow: if, or, lists
4. 20.10. Control flow: if, for, while, strings
5. 27.10. Writing programs: functions, nesting, values vs. references
6. 03.11. Collections (list, tuple, set, dictionary), working with files
7. 10.11. Exceptions, working with files and directories
8. 17.11. *State holiday*
9. 24.11. Object-oriented programming, trees, *recursion
10. 01.12. Numpy. and Matplotlib
11. 08.12. Machine Learning and ANN: basics and libraries
12. 15.12. Project