Programme outline
Learning Objectives
By the end of this course, participants should be able to:
- Create class definitions with initialization and other methods
- Create stored property and computed property
- Draw Unified Modeling Language (UML) class diagram of a class with attributes and methods
- Explain has-a relationship
- Discuss object aliasing and copying
- Draw Unified Modeling Language (UML) class diagram for has-a relationship
- Implement abstract data type for Stack, Queue using Object Oriented paradigm
- Apply Stack and Queue for some applications
- Implement Queue using double Stack and discuss implementation impact on computation time
- Define graph, vertices, edges and weights
- Differentiate directed and undirected graphs
- Define paths
- Create a Vertex class and a Graph class
- Represent graphs using adjacency-list representation or adjacency-matrix representation
- Explain and implement breadth first search algorithm
- Explain and implement depth first search algorithm
- Inherit a class to create a child class
- Explain is-a relationship
- Draw Unified Modeling Language (UML) diagram for is-a relationship
- Override operators to extend parent’s methods
- Implement Deque data structure as a subclass of Queue
Day 1
- Introduction of course
- Introduce students to the course outline and pre-requisite knowledge including Python programming.
- Revising Object Oriented Programming
- Revise some basic concept in OOP such as class definition, object instantiation, attribute and methods. How to work with object using dot operator.
- Encapsulation
- Covers the idea of encapsulation and how it can be implemented in Python. Getter and Setter function and Property feature in Python.
- OOP Exercises
- Use OOP for various programming examples and tasks.
Day 2
- Linear Data Structure
- Implementing Stack and Queues using OOP.
- Object Composition
- Explain object composition and has-a relationship. Create queue using double stack.
- Inheritance
- Explain Inheritance and Open-Close principle.
- OOP Exercises
- Using Inheritance in OOP examples.
Day 3
- Graph data structure
- Introduce graph data structure and how to represent graph.
- Using OOP to represent graph data structure
- Creating Vertex and Graph class.
- Graph Traversal algorithm
- Breadth-first search and Depth-first search algorithm
- OOP Exercises
- Using OOP to implement BFS and DFS in graph algorithm.
Day 4
- Functional Programming basic concept
- Basic idea of data, action and computation
- Higher order function
- Passing function as input and returning function as output. Abstraction using function.
- Python features for functional programming
- Iterators, map, filter and reduce function.
- Functional Programming Exercises
- Programming exercises using functional programming features of Python.
Day 5
- Project Consultation
- Project Presentation
Assessment
- Problem Set,40%
- Quizzes, 10%
- Project, 50%