Essentials for Advanced Python Programming

 

The course is a continuation of Fundamentals in Python (Intermediate). It covers more in depth Python’s Object Oriented Programming and some common graph algorithm. It shows how to use Object Oriented Programming to represent various data structures. Particularly, it uses Object Oriented Programming to represent Graph data structure and its algorithm. It also covers Python’s feature for functional programming. This includes higher order function, iterator and decorator.


Course Details

Course Dates: 
Currently not available


Duration: 
5 days, 9:00am - 5:00pm
 
 

Who Should Attend

Working professionals who are familiar with Python programming, computing or software engineering. This course is suitable for professionals with a small technical background who plan to enter into software engineering field. It is designed as a continuation for Fundamentals in Python (Intermediate) to cover more topics in Object Oriented Programming, Algorithm and Functional Programming in Python. 

Prerequisites

Participants should possess a good understanding of the Python programming language and should have gone through the Fundamentals in Python (Intermediate)  course or equivalent.

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%

Course Fees and Funding

Full course fee inclusive of prevailing GST

You pay
S$5,995.00

SkillsFuture Course Fee subsidy (70%)

  • For Singapore Citizens < 40 years old /
  • For Permanent Residents

You pay
S$1,798.50

Mid-Career Enhanced Subsidy (90%)

  • For Singapore Citizens ≥ 40 years old

You pay
S$698.50

Enhanced Training Support for SMEs (90%)

  • For SME - Sponsored employees

You pay
S$698.50

The above module fee payable is inclusive of 9% GST.
This course is not eligible for the $4,000 credit under SkillsFuture Credit (Mid-Career) top-up scheme.

Instructor

Oka Kurniawan
Senior Lecturer, ISTD
Singapore University of Technology & Design (SUTD)

Dr Oka Kurniawan is a Senior Lecturer of Information Systems Technology and Design at SUTD.

He graduated from NTU with a PhD in Engineering. He has been teaching computing for the past 13 years. He was also entrusted as the subject lead for the largest programming course in SUTD, a core subject in computer science degree and a software studio for Design and AI degree. He managed to introduce machine learning into the first year programming course in SUTD. He was also awarded SUTD Teaching Excellence in 2018 and his teaching was recognized internationally as Fellow by Advance HE in 2020.

Read more.


Register your interest

What are you interested in?:








 
Subscribe to our mailing list :

*By subscribing to this mailing list, I agree that SUTD may collect, retain and utilise my Personal information, as furnished herein, for SUTD Academy’s communications including programme information, invitation to events, news updates and other related purposes, in accordance with the Personal Data Protection Act 2012.

Policies and Financing Options

SSG Funding Terms and Conditions

Use of Personal Details

In consideration of the subsidy provided by SkillsFuture Singapore Agency (“SSG”) through the SUTD Academy for the Course,
 

I consent to:

The collection, use and disclosure to relevant third parties of my personal data by the SUTD Academy including but not limited to personal particulars, attendance records, assessment/performance records, for the following purposes:

  1. Reporting of national statistics and conducting of holistic continuing education training research and analysis;

  2. Facilitate the conduct of the relevant surveys and audits in relation to the Course;

  3. General administration of the Course including but not limited to processing of the subsidy provided by SSG;

  4. Publicity and marketing of the Course or other Courses to be provided by SSG or SUTD Academy; and

  5. SSG or its Appointed Auditors or Nominated Representatives to directly contact Course Participant to obtain information deemed necessary for the purposes of conducting effectiveness survey or audits in relation to the Course.
     

I agree to:

  1. Attend and complete all lectures, class exercises, workshops and assessments;

  2. Complete the Course feedback at the end of the Course;

  3. Complete the post Course survey sent about 3 to 6 months after class attendance; and

  4. Sign up for a personal email account.

SUTD Privacy Statement

For more information on SUTD's privacy statement, please visit https://sutd.edu.sg/Privacy-Statement.

SUTD Terms and Conditions

Methods of Payment

Learn more about the available payment modes.

Cancellation & Refund Policy

  1. If a written notification is sent to sutd_academy@sutd.edu.sg within 24 hours after course registration deadline there will be no cancellation charges. A full refund will be made. 

  2. No refund is provided if written notification is more than 24 hours after course registration deadline. SUTD Academy reserves the rights to collect the full fee amount from the participant.

Replacement Policy

Companies may replace participants who have signed up for the course by giving a 3-working day notice before the course commencement date to sutd_academy@sutd.edu.sg. Terms and conditions apply.

Registration Policy

  1. Course may be cancelled due to insufficient participants. SUTD Academy will not be responsible or liable in any way for any claims, damages, losses, expenses, costs or liabilities whatsoever (including, without limitation, any direct or indirect damages for loss of profits, business interruption or loss of information) resulting or arising directly or indirectly from any course cancellation.

  2. Course enrolment is based on a first-come, first-served basis.

  3. SUTD Academy reserves the right to change or cancel any course or instructor due to unforeseen circumstances. 

Types of Funding

Funding under Mid-Career Enhanced Subsidy ("MCES")

  1. MCES is an enhanced Subsidy to encourage mid-career individuals to upskill and reskill, thereby helping them to remain competitive and resilient in the job market. With this, all Singaporeans aged 40 and above will receive higher subsidies of up to 90% course fee subsidy for SSG-funded certifiable courses.

  2. Individuals/employers are not required to submit an application for the MCES. Those pursuing SSG-funded programmes will be charged the appropriate subsidised fees by SUTD Academy if they are eligible MCES. Individuals/employers will only need to pay the nett fee (full course fee after SSG's grant).

    For more info, please visit SkillsFuture website at https://www.skillsfuture.gov.sg/enhancedsubsidy

Funding under Enhanced Training Support for SMEs ("ETSS")

  1. ETSS is an enhanced funding to enable SMEs to send their employees for training.

  2. SMEs will enjoy subsidies of up to 90% of the course fees when they sponsor their employees for SSG-funded certifiable courses.

  3. In addition to higher course fee funding, SMEs can also claim absentee payroll funding of 80% of basic hourly salary at a higher cap of $7.50 per hour. SMEs may apply for the absentee payroll via the SkillsConnect system.

  4. To qualify, SMEs must meet all of the following criteria:
    - Organisation must be registered or incorporated in Singapore
    - Employment size of not more than 200 or with annual sales turnover of not more than $100 million
    - Trainees must be hired in accordance with the Employment Act and fully sponsored by their employers for the course
    - Trainees must be Singapore Citizens or Singapore Permanent Residents

    For more info, please visit SSG website at https://www.ssg.gov.sg/programmes-and-initiatives/funding/enhanced-training-support-for-smes1.html


Funding under Union Training Assistance Programme ("UTAP")

UTAP is a training benefit for NTUC members to defray their cost of training. This benefit is to encourage more union members to go for skills upgrading.

NTUC members enjoy 50% unfunded course fee support for up to $250 each year when you sign up for courses supported under UTAP (Union Training Assistance Programme).

For more info, please visit https://e2i.com.sg/individuals/ntuc-education-and-training-fund/.
 


Funding under Post-Secondary Education Account ("PSEA")

The Post-Secondary Education Account (PSEA) is part of the Post-Secondary Education Scheme to help pay for the post-secondary education of Singaporeans.

This is part of the Government’s efforts to encourage every Singaporean to complete their post-secondary education. It also underscores the Government’s commitment to support families in investing in the future education of their children and to prepare them for the economy of the future. PSEA is not a bank account.

It is administered by the Ministry of Education (MOE) and is opened automatically for all eligible Singaporeans.

Account holders can use their PSEA funds to pay for their own or their siblings’ approved fees and charges for approved programs conducted by approved institutions.

However, you will have to check your eligibility and balance by contacting MOE first.

Contact MOE at (65) 6260 0777

E-mail to MOE at contact@moe.edu.sg

Click here for MOE website.