Advanced Programming

Foundation Upper

Lectures

3 hrs/wk

Lab

1 hrs/wk

Language

English

Delivery

In person

Self-study

78 hrs

PREREQUISITES

- Introduction to Computing - Introduction to OO Programming

Course Content

Collections and Essential Data Structures - Linear structures: List, Queues, Stacks. - Implementing data structures using generics. Advanced OOP - Tree (in-order, pre-order, post-order) - Graphs: traversals (BFS, DFS). - Design patterns: creational and behavioral. - Testing objects with mocks. Functional Programming - First-class functions: functions as values, higher-order functions - The operators map(), filter() and reduce() - Lazy Evaluation: Iterators and Generators - Property-based testing Concurrent and Asynchronous Programming - Event-driven programming: observers, event listeners, callbacks, publisher/subscriber. - Futures and promises - Async/await, Async IO.

Learning Outcomes

- Implement and manipulate data structures. - Apply creational and behavioral design patterns to produce flexible, maintainable object-oriented code. - Treat functions as first-class values and compose higher-order functions to build expressive, reusable logic. - Write unit tests using mocks and apply property-based testing to isolate and validate program behavior. - Design event-driven systems. - Write non-blocking asynchronous code and asynchronous I/O to build responsive, efficient programs.