Programming Paradigms and Techniques (GAINBAN-PROPARTE-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
5 credits
Theory – Practice
Theory: 50%, Practice: 50%
Recommended semester
Semester 3
Study mode
full-time
Prerequisites
Algorithms and Data Structures + Programming I
Evaluation type
Mid-term evaluation
Course category
Compulsory
Language
English
Instructors
Responsible instructor
Prof. Dr. Johanyák Zsolt Csaba
Responsible department
Department of Information Technologies
Instructor(s)
Dr. Katona József
Checked by
Kovács Márk
Course objectives

The aim of this course is to introduce the most important principles of the object oriented programming through specific examples written in .NET/C#. Besides, the students get knowledge about the programming tools most frequently used in C#.

Course content
Lectures

The Visual Studio IDE and the console application template. The console input/output tools of the C# language. Basic data types and variables. Objects: classes and instances. Members: variables and methods. The role of the constructor and instantiating. Access levels: public and private members. Static members and their usage. Dynamic arrays. Mathematical tools in C#. Strings and string manipulation. The enum type. File input/output tools in C#. Inheritance, and the protected access level. Overriding virtual functions, abstract functions and abstract classes. Interfaces and their implementation. Polymorphism. Generic classes and methods. Generic list and dictionaries. Reference and value types, the copy-constructor.

Labs

The Visual Studio IDE and the console application template. The console input/output tools of the C# language. Basic data types and variables. Objects: classes and instances. Members: variables and methods. The role of the constructor and instantiating. Access levels: public and private members. Static members and their usage. Dynamic arrays. Mathematical tools in C#. Strings and string manipulation. The enum type. File input/output tools in C#. Inheritance, and the protected access level. Overriding virtual functions, abstract functions and abstract classes. Interfaces and their implementation. Polymorphism. Generic classes and methods. Generic list and dictionaries. Reference and value types, the copy-constructor.

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 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 constantly improves his/her knowledge and keeps up with the development of the computer engineering profession.

Attitude

- He/she genuinely represents the professional principles of engineering and information technology fields. - He/she is open to acquire new methods, programming languages and develop skills to use them. - He/she makes an effort to work efficiently and to high standards.

Autonomy and responsibilities

- He/she feels responsible for IT systems analysis, development and operation, both individually and as part of a team.

Requirements, evaluation and grading
Mid-term study requirements

Writing all mid-term exam (not necessarily successful) and attending at least 85% of lab sessions. Mid-term exams: Two mid-term exams from the theory and two mid-term exams from the laboratory also. Date: 1st mid-term exam: it is recommended on the 6th week. 2nd mid-term exam: the week before the last week during term-time. Replacement/Correction: Each mid-term exam can be replaced or repaired separately, but only one timetable (lecture or laboratory) is available for the two theoretical mid-term exams and only one for the two laboratory mid-term exams. In each case, the replacement or repair overwrites the previous result. Final grade: <=50% (<=100 point): Fails (1) 51-60% (101-120 point): Pass (2) 61-70% (121-140 point): Satisfactory (3) 71-80% (141-160 point): Good (4) 81-100% (161-200 point): Excellent (5) Points available / to be achieved: Lecture: 1. test (50 point) + 2. test (50 point) = 100 point, each min. 51%, total min. 51% (51 point) Laboratory: 1. test (50 point) + 2. test (50 point) = 100 points, each mid-term exams min. 51% (26 point), total of two mid-term exams min. 51% (51 point).

Generative AI usage

Not specified

Study aids, laboratory background

Electronic curriculums are associated with C# available in an electronic system such as Moodle or CooSpace.

Readings
Compulsory readings

John Sharp, Microsoft Visual C# Step by Step (9th Edition), Microsoft Press, 2018. Troelsen and P. Japikse, Pro C# 7: With .NET and .NET Core. Berkeley, CA: Apress, 2017. M. Seidl, M. Scholz, C. Huemer, and G. Kappel, UML @ classroom an introduction to object-oriented modelling. Cham: Springer, 2015.

Recommended readings

Any written or online literature related to C # and UML.