Programming II. (GAINBAN-PROGRAM2-1)

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

The goal of the course is to deepen students' C# knowledge acquired during the Programming 1 course, as well as to introduce the concepts and principles of object-oriented programming in C#.

Course content
Lectures

1. From C++ to C#: language transition and development workflow. 2. Data types, variables, expressions, and type handling in C#. 3. Control flow and decision structures. 4. Iteration and algorithmic patterns. 5. Methods and modular program design. 6. Classes, objects, and early object-oriented design. 7. Midterm Test 8. Arrays and algorithmic data processing. 9. Multidimensional arrays, jagged arrays, and data organization. 10. Strings, text processing, and practical input handling. 11. Exception handling and defensive programming. 12. Final Test 13. Make-up and correction week

Labs

1. Environment setup and syntax transition exercises. Creating console projects, using the IDE effectively, compiling and running programs, reviewing syntax through short tasks, and rewriting small C++-style solutions in idiomatic C#. 2. Expression-based programming tasks. Numeric computations, conversion problems, input parsing, overflow-aware thinking, formatting output, and debugging type-related mistakes. 3. Conditional problem solving. Multi-branch tasks, classification problems, validation scenarios, menu-driven logic, and rewriting overly complex conditions into cleaner forms. 4. Loop-based problem solving. Sequence processing, digit manipulation, divisibility tasks, pattern generation, nested-loop exercises, and edge-case testing. 5. Refactoring into methods. Breaking larger procedural solutions into smaller units, designing helper methods, testing with varied inputs, and improving readability and reuse. 6. Implementing simple classes. 7. Written midterm assessment covering Weeks 1–6. 8. Array algorithms in practice. Input and output of arrays, filtering, searching, counting by condition, frequency-style tasks, and comparative testing of alternative implementations. 9. Matrix and table-processing exercises. Row and column operations, traversal patterns, basic transformations, indexed computations, and debugging incorrect indexing logic. 10. Text-processing tasks. Parsing structured input, validating textual data, counting and filtering characters, tokenization, formatted output generation, and solving small real-life style problems. 11. Robust programming exercises. Safe input parsing, handling invalid data, building fault-tolerant console programs, and revising earlier solutions with better error handling. 12. Written final assessment covering Weeks 8–11. 13. Retake, correction, and make-up opportunities for previous assessments.

Acquired competences
Knowledge

- 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

There will be two written tests in lecture classes and two written tests during the lab classes. Each written tests count 25% in the final mark.

Generative AI usage

1st position: Use of GAI tools is not permitted for solving assignments. This means GAI tools cannot be used to complete formative or summative assessments, and using GAI constitutes academic misconduct. The use of AI tools for spelling and grammar checking does not fall under this prohibition.

Study aids, laboratory background

Supplementary material and laboratory background.

Readings
Compulsory readings

C# Programming by Introprogramming, https://www.introprogramming.info/wp-content/uploads/2013/07/Books/CSharpEn/Fundamentals-of-Computer-Programming-with-CSharp-Nakov-eBook-v2013.pdf

Recommended readings

Skeet, J. (2019). C# in Depth. Simon and Schuster. Miles, R. (2018). The C# Programming: Yellow Book.