Fundamentals of object-oriented programming.
Classes, objects, access protection. Principles of encapsulation, inheritance, interfaces, polymorphism.
Class and instance attributes and methods, static and virtual methods, abstract classes and methods.
Functions as parameters and as variable values.
Object-oriented design – general principles (SOLID), examples (discrete simulation).
Event-driven programming – basic ideas and techniques.
Working in a development environment, creating programs with a graphical interface.
Solving larger problems – programming hygiene, version control, creating documentation.
The language labyrinth – comparing major object-oriented languages (C#, C++, Java, Python).
A continuation of the basic programming course for students in the first year of Computer Science program. This course expands on the material from NPRG030 Programming I by discussing additional algorithms and their implementation, as well as methods and techniques used in constructing programs. Students will become acquainted with the basics of object-oriented programming, with the programming language C# and with working in modern programming environments. The course presupposes knowledge of material covered in NPRG030
Programming I, and this knowledge is necessary for the exam.