Python Programming

Course info:

Semester: 2

General Foundation

ECTS: 6

Hours per week: 3

Professors: T.B.D.

Teaching style: Face to face, distance learning

Grading: 50% written exam, 30% individual projects, 20% group exercise

Activity Workload
Lectures 26
Tutorials 13
Group work on Laboratory projects 48
Individual study 63
Course total 150

Learning Results

Upon completion of the course the student should have the following learning outcomes as knowledge and skills:

  • To know the principles of programming, to understand how a problem can be solved with computer programming.
  • Using multiple levels of abstraction and selecting appropriate data structures to develop a program for solving a real problem and highlighting the usefulness of information technology in dealing with social problems.
  • To understand the different programming styles (procedural, object-oriented, functional) and to be able to choose an appropriate programming style, to produce the desired outputs to specific inputs, to check the correctness of individual program parts and to produce documentation of the program.
  • Be able to use available libraries for data analysis and scientific calculations, machine learning, etc.

Skills acquired

  • Search for, analysis and synthesis of data and information, with the use of the necessary technology
  • Adapting to new situations
  • Decision-making
  • Working independently
  • Team work
  • Project planning and management
  • Criticism and self-criticism
  • Production of free, creative and inductive thinking

The course aims to give students a detailed introduction to basic concepts of programming and software development through a modern high-level programming language (Python). Specifically, it aims to introduce concepts such as variables, expressions, control flow, complex data structures and file processing, permanent data storage. In particular:

  • structure of a program in Python programming language
  • logical and syntactic errors, as well as debugging process
  • decision commands in the Python programming language
  • logical operations
  • the basic data types of the Python programming language
  • the functionality of data structures: list, stack, queue, dictionary and tuples
  • differences between iteration loops in python programming language (for, while)
  • function declaration in the python programming language
  • recursive functions, as well as the advantages / disadvantages over the iterative functions (with loop)
  • modular programming and the step-by-step incremental refinement for designing their programs
  • difference between mandatory and optional function parameters
  • string management
  • classes, objects, inheritance and polymorphism in Python
  • the methodology of event driven programming
  • modern data structures such as tuples, sets, sequences, dictionaries and lists.
  • Python programming environments
  • Python’s tkinter library for graphical interface design
  • Python’s pandas library for data management and analysis
  • Python’s NumPy library for scientific calculations with the available implementations of N-dimensional arrays and functions for linear algebra problems

Suggested bibliography

  • P. Deitel, H. Deitel, Introduction to Python for Computer Science and Data Science, Pearson, 2019.
  • T. Gaddis, Starting Out with Python, Pearson, 2021.
  • J. Guttag, Introduction to Computation and Programming Using Python: With Application to Understanding Data, MIT Press, 2016.
  • M. Lutz, Learning Python, O’Reilly, 2013.
  • F. Romano, H. Kruger, Learn Python Programming, Packt, 2021.
  • C. Swaroop, A Byte of Python, 2013, https://edu.heibai.org/A% 20Byte%20of 20Python.pdf

 

 

Related scientific journals:

  • Science of Computer Programming, Elsevier, ISSN: 0167-6423
  • Programming and Computer Software, Springer, ISSN: 0361-7688
  • Journal of Computational Science, Elsevier, ISSN: 1877-7503
  • ACTA Informatica, Springer, ISSN: 0001-5903
Learning Results - Skills acquired

Learning Results

Upon completion of the course the student should have the following learning outcomes as knowledge and skills:

  • To know the principles of programming, to understand how a problem can be solved with computer programming.
  • Using multiple levels of abstraction and selecting appropriate data structures to develop a program for solving a real problem and highlighting the usefulness of information technology in dealing with social problems.
  • To understand the different programming styles (procedural, object-oriented, functional) and to be able to choose an appropriate programming style, to produce the desired outputs to specific inputs, to check the correctness of individual program parts and to produce documentation of the program.
  • Be able to use available libraries for data analysis and scientific calculations, machine learning, etc.

Skills acquired

  • Search for, analysis and synthesis of data and information, with the use of the necessary technology
  • Adapting to new situations
  • Decision-making
  • Working independently
  • Team work
  • Project planning and management
  • Criticism and self-criticism
  • Production of free, creative and inductive thinking
Course content

The course aims to give students a detailed introduction to basic concepts of programming and software development through a modern high-level programming language (Python). Specifically, it aims to introduce concepts such as variables, expressions, control flow, complex data structures and file processing, permanent data storage. In particular:

  • structure of a program in Python programming language
  • logical and syntactic errors, as well as debugging process
  • decision commands in the Python programming language
  • logical operations
  • the basic data types of the Python programming language
  • the functionality of data structures: list, stack, queue, dictionary and tuples
  • differences between iteration loops in python programming language (for, while)
  • function declaration in the python programming language
  • recursive functions, as well as the advantages / disadvantages over the iterative functions (with loop)
  • modular programming and the step-by-step incremental refinement for designing their programs
  • difference between mandatory and optional function parameters
  • string management
  • classes, objects, inheritance and polymorphism in Python
  • the methodology of event driven programming
  • modern data structures such as tuples, sets, sequences, dictionaries and lists.
  • Python programming environments
  • Python’s tkinter library for graphical interface design
  • Python’s pandas library for data management and analysis
  • Python’s NumPy library for scientific calculations with the available implementations of N-dimensional arrays and functions for linear algebra problems
Recommended bibliography

Suggested bibliography

  • P. Deitel, H. Deitel, Introduction to Python for Computer Science and Data Science, Pearson, 2019.
  • T. Gaddis, Starting Out with Python, Pearson, 2021.
  • J. Guttag, Introduction to Computation and Programming Using Python: With Application to Understanding Data, MIT Press, 2016.
  • M. Lutz, Learning Python, O’Reilly, 2013.
  • F. Romano, H. Kruger, Learn Python Programming, Packt, 2021.
  • C. Swaroop, A Byte of Python, 2013, https://edu.heibai.org/A% 20Byte%20of 20Python.pdf

 

 

Related scientific journals:

  • Science of Computer Programming, Elsevier, ISSN: 0167-6423
  • Programming and Computer Software, Springer, ISSN: 0361-7688
  • Journal of Computational Science, Elsevier, ISSN: 1877-7503
  • ACTA Informatica, Springer, ISSN: 0001-5903