Advanced Programming Techniques (GAINBAN-HALAPROG-1)

Basic data
Name and type of the study programme
Computer Science Engineering, undergraduate program
Curriculum
2022
Classes / consultation hours
2 + 0 + 2 (L+S+Labs)
Credits
4 credits
Theory – Practice
Theory: 50%, Practice: 50%
Recommended semester
Semester 5
Study mode
full-time
Prerequisites
Programming Paradigms and Techniques
Evaluation type
Mid-term evaluation
Course category
Compulsory
Language
English
Instructors
Responsible instructor
Dr. Drenyovszki Rajmund
Responsible department
Department of Information Technologies
Instructor(s)
Dr. Drenyovszki Rajmund, Prof. Dr. Johanyák Zsolt Csaba
Checked by
Kovács Márk
Course objectives

Students will learn about the Python language and its applications in machine learning and data processing.

Course content
Lectures

1. Applications of Python. Python data structures. List comprehension, dict comprehension. Mathematical calculations and data structures (NumPy), visualization (Matplotlib). Object oriented programming in Python. Exception handling. Python Standard Library. 2. Machine learning basics. 3. Linear regression, gradient descent. 4. Normal equation, Polynomial regression 5. Binary classification, Datasets, training, validation and test sets, K-Fold validation, Confusion Matrix 6. Classification metrics (TN, FP, FN, TP), F1 Score, precision, recall, ROC 7. Logistic regression, decision tree, structured data 8. Rosenblatt perceptron, linear separability, automatic differentiation, Backpropagation algorithm 9. Neural network basics 10. Convolutional Neural Networks, image processing algorithms: classification, detection, segmentation 11. Transfer learning 12. Optimization, Linear Programming 13. Midterm test

Labs

1. Applications of Python. Variables, basic data structures, 2. Python advanced data structures: list, tuples, set and dictionary. 3. List comprehension, dict comprehension. 4. Mathematical calculations and data structures (NumPy). Visualization (Matplotlib). 5. Object oriented programming in Python. Exception handling. Python Standard Library. 6. Linear regression in Python, Implementation of the Gradient descent algorithm. 7. MNIST binary classification, metrics. 8. Logistic regression, decision tree, structured data 9. Rosenblatt perceptron, linear separability, automatic differentiation, Backpropagation algorithm 10. Neural network basics 11. Convolutional Neural Networks, image processing algorithms: classification, detection, segmentation. Transfer learning 12. Optimization, Linear Programming 13. Misterm test

Acquired competences
Knowledge

- He/she knows the main programming paradigms, programming languages, development tools. His/her knowledge covers the modelling of IT systems, creation of database based systems, as well as the structure, operation and implementation of computer networks. His/her knowledge covers the characteristics of intelligent systems, the specificity of mobile application development, the management of state-of-the art general purpose operating systems, as well as the aspects of IT security. - He/she is familiar with the important software development methodologies, and the notation systems for IT designs and documentation. - He knows the vocabulary and special terms of the engineering profession in the Hungarian and English languages at least on the basic level.

Skills

- He/she is able to develop applications, program client-server and WEB, mobile operating systems, develop multiplatform systems. He/she can apply his/her knowledge acquired during his/her study to acquire deeper knowledge in the field of information engineering and to process special literature and solve problems related to information technology. - He/she is able to fulfill analytical, specification, planning, development and operation tasks, in addition, he/she applies the development methodology, debugging, testing and quality assurance methods in his/her field. - He/she cooperates with other computer science engineers, electrical engineers during team work, and with other experts during the analysis and solution of a problems. - He/she constantly improves his/her knowledge and keeps up with the development of the computer engineering profession.

Attitude

- He/she makes an effort to work efficiently and to high standards.

Autonomy and responsibilities

Requirements, evaluation and grading
Mid-term study requirements

Attending classes, reviewing and supplementing what you have heard at home based on the recommended literature. Completion of assigned homework. The practical grade is obtained by obtaining 20 out of 40 points in the theoretical exam and 30 out of 60 points in the project assignment. The theoretical exam may be made up once. During the semester, the lecturer will announce additional opportunities to gain extra points in the lectures.

Generative AI usage

Use of GAI tools is permitted in a limited manner (e.g., for literature search support or specific tools). In this case, the course instructor is responsible for defining where and how GAI tools may be used in assignments. The course description must specify in detail how GAI tools may be used during the course.

Study aids, laboratory background

Advanced Programming Techniques (Moodle)

Readings
Compulsory readings

Google's Python Class: https://developers.google.com/edu/python Kaggle Learn: https://www.kaggle.com/learn Andriy Burkov: The hundred-page machine learning book, http://themlbook.com/ Andriy Burkov: The Hundred-Page Language Models Book: hands-on with PyTorch, True Positive Inc. (January 18, 2025), ISBN-13:978-1778042737, On-line: https://www.thelmbook.com/

Recommended readings

François Chollet and Matthew Watson: Deep Learning with Python, Third Edition, Manning; 3rd edition (September 2025), ISBN-13:978-1633436589 Kevin P. Murphy: Probabilistic Machine Learning: An Introduction (Adaptive Computation and Machine Learning series), The MIT Press (March 1, 2022), ISBN-13:978-0262046824, https://probml.github.io/pml-book/book1.html