Essentials for Advanced Python Programming

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
  1. Introduction of course
    • Introduce students to the course outline and pre-requisite knowledge including Python programming.
  2. 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.
  3. Encapsulation
    • Covers the idea of encapsulation and how it can be implemented in Python. Getter and Setter function and Property feature in Python.
  4. OOP Exercises
    • Use OOP for various programming examples and tasks.
Day 2
  1. Linear Data Structure
    • Implementing Stack and Queues using OOP.
  2. Object Composition
    • Explain object composition and has-a relationship. Create queue using double stack.
  3. Inheritance
    • Explain Inheritance and Open-Close principle.
  4.  OOP Exercises
    • Using Inheritance in OOP examples.
Day 3
  1. Graph data structure
    • Introduce graph data structure and how to represent graph.
  2. Using OOP to represent graph data structure
    •  Creating Vertex and Graph class.
  3. Graph Traversal algorithm
    • Breadth-first search and Depth-first search algorithm
  4. OOP Exercises
    • Using OOP to implement BFS and DFS in graph algorithm.
Day 4
  1. Functional Programming basic concept
    • Basic idea of data, action and computation
  2. Higher order function
    • Passing function as input and returning function as output. Abstraction using function.
  3. Python features for functional programming
    • Iterators, map, filter and reduce function.
  4. 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%
What’s next

Find out more

Mailing list

Subscribe to our mailing list and learn about the latest developments in SUTD Academy.

Get in touch

Submit an enquiry or schedule a call with our friendly team at +65 6499 7171.