Introduction to Programming

Course Code (in greek): 
ΘΠ0170
ECTS Units: 
5
Semester: 
6
Professor: 
Karasavvidis Ilias

Aim. The course aims to introduce computer programming concepts using Python. The course has a dual focus: (a) computational thinking and (b) programming methods. On the one hand, the course examines computational thinking and problem solving through algorithms. On the other hand, the course targets programming constructs through Python.

Learning Outcomes. Upon completion, the students will be expected to perform the following:

  • transform a problem statement into an appropriate representation so that an algorithm can be used to solve it

  • use Python's simple and complex data structures

  • employ Python's decision making and looping structures

  • define functions in Python

  • create new data structures using classes and objects

  • understand recursion

  • describe algorithms in terms of their complexity

Content. The course has to main components. First, it aims to introduce students to the systematic solution of various problems using computational techniques. The course outlines the rationale underlying the transformation of a problem statement into an appropriate representation so that it can be computationally resolved. A series of different algorithms such as exhaustive enumeration, guess and check, and binary search are initially explored and subsequently used for solving various types of problems. Second, the course introduces Python as a high level language for representing computations. Python's main syntactic and semantic features are presented. Functions, decision making and looping programming structures are explained. Python's simple and complex data structures such as lists, tuples, and dictionaries are covered. The course is concluded with an introduction to classes as a means to create new data structures.

Teaching. The course employs mainly lectures and lab sessions.

Assessment. The main course deliverable is a short program which solves a specific problem. The students are expected to work in small groups (2-3 persons) to code the program. Assessment is based on an oral exam in which the student teams defend their code.