Compulsory
INTRODUCTION TO PROGRAMMING
ΓΕΩΡΓΙΟΣ ΝΟΚΑΣ
ΘΕΟΔΩΡΟΣ ΚΟΤΣΙΛΙΕΡΗΣ
- GENERAL
-
TEACHING METHODS: TEACHING HOURS (WEEKLY) Lectures
Laboratory
2
1
COURSE TYPE: General Background COURSE PREREQUISITES: None TEACHING LANGUAGE: Greek THE COURSE IS OFFERED TO ERASMUS STUDENTS: No - LEARNIING RESULTS
-
Course Description and Learning Objectives The aim of the course is to introduce students to the philosophy of object-oriented programming and to enable them to become familiar with programming in a high-level language. Upon completion of the course, students will be able to develop stand-alone code but will also have a suitable background to cope with more advanced programming courses.
Upon completion of the course students will have:
Knowledge: understand and analyze data structures and algorithms to solve problems. To learn the object-oriented programming model through a 3rd generation language
Skills: To apply the methodology of developing the programming background
Competencies: To develop stand-alone code but will also have a suitable background to cope with more advanced programming courses
Competencies The competences expected to be acquired by the graduate are the following:
1.Search, analysis and processing of data and information, using the necessary technologies
2.Decision-making and development of relevant tools using ICTs
3.Autonomous work
4.Group work
5.Generating new research ideas
- CONTENT
-
The course focuses on the acquisition of the necessary skills and knowledge so that students could understand and apply modern programming techniques and languages in the light of data structure analysis and modeling - development of algorithms for problem solving in the modern business environment.
The course is structured in 13 modules, as shown in the following table.
1. Introduction to object-oriented programming: Introduction to the Python language. Introduction to Python.
2.Classes and Objects: Attributes, properties, subclasses, inheritance, initialization, polymorphism
3.Lists: Positional pointers, list modification, list part replacement, alphanumerics, formatting of alphanumerics, methods of alphanumerics.
4.Program Flow Control & Control Structures: Flow control with if, conditions & comparison operators, the while loop, the for loop, iterations in dictionaries, parallel iterations, examples of flow control, examples of using control structures, if, while, for, nested iterations, defining and managing arrays, convergent sum.
5.Functions: Parameters, scope of variables, program structuring, functions as objects, parameter locality, value/reference passing, recursive functions (examples: raise to power, factorial, Fibonacci numbers), complexity and program execution time.
6.Concurrent programming and threads - Error and exception handling: basic thread operations, locks, synchronization, types of errors, types of exceptions, exception declaration and handling, debugging.
7.Basic Data and Algorithm Concepts: Data Types and Data Structures, Tables, One-dimensional Tables, Two-dimensional Tables, Advanced Structure (Tables with Structures or Records), Tables of Structures, Indexes in Structures, Algorithms, Random Number Generation
8.Search, Sorting, Algorithms and Applications to Tables: Criteria for categorization of sorting algorithms, Insertion sort, Selection sort, Bubble sort, Serial and binary search, Partitioning and median table
9.Data structures: stack, queue, linked lists
10.Recursion and Tree Structures: Recursion, Trees, Binary trees, Priority queues and heaps, B-Trees, Red-Black trees
11.Algorithm Design and Analysis.
12.Graph Theory: Definitions and Properties of Graphs, Circle and Euler Graph, Hamilton Graph, Graph Representation, The Chinese Postman Problem
13.Graph Algorithms: Traversing or Visiting a Graph, Distance Table, Known Basic Graph Problems, Optimization and ACO (Ant Colony Optimization) Algorithms
Bibliography :Papoutsis I., "Introduction to Data Structures and Algorithms", Stamoulis Publications, 2010, 2nd edition
- TEACHING and LEARNING METHODS - EVALUATION
-
TEACHING METHOD - Lectures in class
- Uploading material for further study and solving laboratory exercises on the e-class platform
USE OF INFORMATION AND COMMUNICATION TECHNOLOGIES - Use of information and communication technologies in teaching and laboratory training, as follows:
- Exercises using web-based interpreters
- Additional and freely available material for consolidating theory and solving exercises via the Internet and social media
- Support for the learning process through the e-class platform
- Communication with students via the e-class platform
METHODS OF INSTRUCTION Method Semester workload Lectures 39 Exercises where students either in small groups or individually will practice applying the theory. The exercises will be presented by the teacher and solved by the students asynchronously. The answer will be provided exclusively through the e-class platform or cloud computing tools (webmail, google-drive, etc.) 40 Independent Study 71 Total workload in hours 150 STUDENT LEARNING ASSESMENT The evaluation will be conducted in Greek in three distinct ways:
1.Three types of assessment: Multiple choice questions, short answer questions.
2.Exercises (20%) which will be assessed as follows: Ability to solve problems in groups, writing a report on the proposed solution, public presentation
3.Final examination (60%) to be conducted by: Multiple choice questions, Problem solving, Short answer questions, Development of theory elements, Role and stakeholder analysis in brief, Case study, Comparative evaluation of theory elements
- RECOMMENDED-BIBLIOGRAPHY
-
1.Papoutsis I., "Introduction to Data Structures and Algorithms", Stamoulis Publications, 2016, 2nd edition
2. Nell Dale, John Lewis, «Computer Science Illuminated», Third Edition
3.Introduction to Object Oriented Programming with Python - An Approach from the Computer Systems Side, Magoutis Konstantinos - Nikolaou Christos, Greek Academic Ebooks, Kallipos, 2015, (available from: https://repository.kallipos.gr/handle/11419/1708)
4.Introduction to Programming with Python, Manis Georgios, Greek Academic Ebooks, Kallipos, 2015, (available from: https://repository.kallipos.gr/handle/11419/2745)