Course title, code: Programming Paradigms and Techniques, GAINBAN-PROPARTE-1

Name and type of the study programme: Computer science engineering, BSc
Curriculum: 2021
Number of classes per week (lectures+seminars+labs): 2+0+2
Credits: 5
Theory: 50 %
Practice: 50 %
Recommended semester: 3
Study mode: full-time
Prerequisites: Programming 1 + Algorithms and Data Structures
Evaluation type: term mark
Course category: compulsory
Language: english
Responsible instructor: Prof. Dr. Johanyák Zsolt Csaba
Responsible department: Department of Information Technologies
Instructor(s): Dr. Katona József
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.


Course content - 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.

Additional professional competences:


Requirements, evaluation, 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).
Exam requirements:

Study aids, laboratory background:

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

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.