Course: Advanced Programming

« Back
Course title Advanced Programming
Course code AUIUI/AE8PO
Organizational form of instruction Lesson
Level of course Master
Year of study not specified
Semester Summer
Number of ECTS credits 3
Language of instruction Czech, English
Status of course unspecified
Form of instruction Face-to-face
Work placements This is not an internship
Recommended optional programme components None
Course availability The course is available to visiting students
Lecturer(s)
  • Vařacha Pavel, Ing. Bc. Ph.D.
Course content
In the area of clean code, the course covers the following concepts: Meaningful names Function Comments Formatting Objects and data structures Error handling Boundaries Unit tests Classes Systems Emergence Concurrency Successive refitment In the area of professionalism, the subject discusses the following concepts: Saying No Saying Yes Coding Test Driven Development Practicing Accptance Testing Testing Strategies Time Management Estimation Pressure Collaboration Teams and Projects In the field of applied design patterns, the subject mainly discusses: Command Flyweight Observer Prototype Singleton State Double Buffer Game Loop Update Method Bytecode Subclass Sandbox Type Object Component Event Queue Service Locator In the field of the open-source engine Godot, students practically learn to work with the following concepts: Basic engine architecture Godot editor GDScript Signals Scenes Animation A broad family of nodes used for developing 2D applications Final project Students develop a final project on a given topic, which is unique for each year. Using practical programming in Godot engine environment and GDSript or C# languages. As a natural part of their work, students practically apply the theoretical knowledge contained in the previous four sections.

Learning activities and teaching methods
Exercises on PC
  • Participation in classes - 42 hours per semester
prerequisite
Knowledge
Knowledge of algorithms, programming, and orientation in C++, C# and Python is a prerequisite. English at least at the upper intermediate level (B2) is expected. The knowledge and skills of a student must correspond to the minimum level necessary to pass all the following subjects: AE1PA Programming and Algorithmization AE1DS Database Systems AE1VS Tools for Software Project Development AE2OP Object Programming and Design Examples AE3AF Application Frameworks AE4TS Software Testing
Knowledge of algorithms, programming, and orientation in C++, C# and Python is a prerequisite. English at least at the upper intermediate level (B2) is expected. The knowledge and skills of a student must correspond to the minimum level necessary to pass all the following subjects: AE1PA Programming and Algorithmization AE1DS Database Systems AE1VS Tools for Software Project Development AE2OP Object Programming and Design Examples AE3AF Application Frameworks AE4TS Software Testing
learning outcomes
Rules for writing clean code
Rules for writing clean code
Godot open-source engine architecture
Godot open-source engine architecture
GDScript scripting language
GDScript scripting language
Professional ethics of a programmer
Professional ethics of a programmer
Design patterns applied in computer games
Design patterns applied in computer games
Skills
Write change-resistant software according to the rules of clean code
Write change-resistant software according to the rules of clean code
Program a 2D application using the open-source Godot engine
Program a 2D application using the open-source Godot engine
Create scripts in the GDSrcipt language
Create scripts in the GDSrcipt language
Apply design patterns in practical situations
Apply design patterns in practical situations
Adopt legacy code into own team project
Adopt legacy code into own team project
teaching methods
Knowledge
Analysis of a presentation
Analysis of a presentation
Individual work of students
Individual work of students
Students working in pairs
Students working in pairs
Skills
Students working in pairs
Students working in pairs
Exercises on PC
Exercises on PC
Teamwork
Teamwork
assessment methods
Knowledge
Analysis of a presentation given by the student
Analysis of a presentation given by the student
Analysis of the student's performance
Analysis of the student's performance
Grade (Using a grade system)
Grade (Using a grade system)
Recommended literature
  • Erich GAMMA, Richard HELM, Ralph JOHNSON, John VLISSIDES. Design Patterns: Elements of Reusable Object-Oriented Software. 1994. ISBN 0201633612.
  • Michael C. FEATHERS. Working Effectively with Legacy Code. 2004. ISBN 9780131177055.
  • Robert C. MARTIN. Clean Agile: back to basics.. Boston, 2020. ISBN 978-0-13-578186-9.
  • Robert C. MARTIN. Clean architecture: a craftsman's guide to software structure and design.. London, 2018. ISBN 978-0-13-449416-6.
  • Robert C. MARTIN. Clean Code: A handbook of agile software craftsmanship.. Upper Saddle River, 2009. ISBN 9780132350884.
  • Robert C. MARTIN. The clean coder: a code of conduct for professional programmers.. Upper Saddle River, 2011. ISBN 978-0-13-708107-3.
  • Robert NYSTROM. Game Programming Patterns Autor Robert Nystrom. 2014. ISBN 0990582906.


Study plans that include the course
Faculty Study plan (Version) Category of Branch/Specialization Recommended year of study Recommended semester