FI2DEAP10 Advanced Programming

FI2DEAP10 Advanced Programming

  • Course description
    • Course Code
      FI2DEAP10
    • Level of Study
      5.2
    • Program of Study
      DevOps Engineering
    • Credits
      10
    • Study Plan Coordinator
      Frederick Johannes Botha
Teaching Term(s)
2026 Spring
2026 Autumn
2027 Spring
2027 Autumn
About the Course

This course expands candidates’ programming skills by teaching them a second programming language optimised for back-end or front-end service delivery. This deepens each candidate’s understanding of diverse programming paradigms and allows them to select between two programming languages for specific tasks. Additionally, candidates will learn additional technical topics such as network programming, objected-oriented design, complex data structures, user documentation, database connectivity, and test-driven development using version control.

Course Learning Outcomes
Knowledge

The candidate…

  • has knowledge of concepts, theories, models, processes, and tools used in advanced programming for backend and frontend service delivery.
  • has knowledge of object-oriented design principles, software architecture, and their application in complex systems.
  • has knowledge of network programming concepts and protocols, including TCP, UDP, and REST.
  • has knowledge of complex data structures and their role in solving computational problems efficiently.
  • has knowledge of backend services, database connectivity, and integration techniques.
  • has knowledge of test-driven development, unit testing, and the integration of testing into version control workflows.
  • has knowledge of user documentation best practices for technical products.
  • can assess his/her own advanced programming work in relation to applicable norms, performance requirements, and industry standards.
  • is familiar with the history, evolution, and role of programming paradigms in modern software development.
  • has insight into his/her own opportunities for development in specialised programming, architecture, or software engineering roles.
Skills

The candidate…

  • can explain his/her vocational choices in selecting programming languages, paradigms, and architectures for specific DevOps-related tasks.
  • can reflect over his/her own vocational practice in advanced programming and adjust it under supervision to meet technical and quality standards.
  • can find and refer to information, documentation, and vocational material related to programming and assess its relevance to specific development challenges.
General Competence

The candidate…

  • can plan and carry out advanced programming tasks and projects alone or as part of a group, in accordance with ethical requirements and professional coding practices.
  • can exchange points of view with others in the trade/discipline and participate in discussions about the development of good practice in programming and software architecture.
  • can contribute to organisational development by designing, implementing, and maintaining robust, scalable, and well-documented software solutions.
Learning Activities

Digital Learning Resources
The learning management system (LMS) is the primary learning platform where students access most of their course materials. The content is presented in various formats, such as text, images, models, videos or podcasts. Each course follows a progression plan, designed to lead students through weekly modules at their own pace. Exercises and assignments (individual or in groups) are embedded throughout the courses to support continuous practice and assessment of the learning outcomes.

Campus Resources
In addition to the digital learning resources, campus students participate in physical learning activities led by teachers as part of the overall delivery.

Guidance
Guidance and feedback from teachers support students' learning journeys, and may be provided synchronously or asynchronously, individually or in groups, via text, video or in-person feedback.

Reading List

Teaching materials, reading lists, and essential resources will be shared in the learning platform and software user manuals where applicable.