Welcome to Higher level python

 Object-Oriented Programming in Python


For students with basic understanding of programming concepts, this course will provide more advanced topics in Python. In this course, we will emphasize Object Oriented Programming and its use in Python. Using classes,  method, and inheritance will also be discussed. Students who attend this class will also acquire hands-on experience in preparation for University of Waterloo CCC tests. 


This course is also good preparation for students are aiming computer science or computer engineering in University of Waterloo or University of Toronto

image158

Useful Links and downloads

You can download Python 3 and Wing 101 here

You can download your Python starting code here

You can download starting code for stack.py here

You can download starting code for queue.py here

Lectures and course materials

Lecture 1


Set up Python if you do not have it installed. A quick review for Python programming language. Students will understand double for loop, using break and continue to control loops, how to loop list and some important technique. 


Lecture 2


Using Python functions. In this lecture, students will learn some important Python built in function like Python math. After this, students will learn how to define function.


Lecture 3


More on user defined function. After this, a introduction of recursion will be addressed. Student will learn how to implement recursive function, 


Lecture 4


More on recursive function, students should be able to implement recursive function like factorial, recursive power,  reverse string, and permutation. CCC contest from University of Waterloo using recursion will be addressed. 


Lecture 5


Concept of ordered list. The advantage and disadvantage of ordered list and non ordered list. Sorting algorithm and recursive binary search.  CCC contest from University of Waterloo using recursion will be addressed. 


Lecture 5


Introduction of object oriented programming (OOP). Definition of Abstract Data Type (ADT) and how to define ADT. Students should know what is class and how to define class in Python.


Lecture 6


In lecture 3, we will introduce a procedure for object oriented analysis (OOA). A project for modeling will be used. Students should be able to identify attributes and behaviors. Universal Modeling Language (UML) diagram will be addressed.


Lecture 7


Based on case study, students should be able to define class, attributes and behaviors. Students also be able to implement class. 


Lecture 8


Introduction of data structure. Students will learn the basic concept of data structure and what is linear structure. An implementation of Stack will be addressed. Please ask a copy for stack.py from your class instructor.


Lecture 9


Problem solving in linear data structure. A CCC contest question from University of Waterloo using data structure, please ask copy UW_CCC_S1.py from your class instructor.


Lecture 10


Linear data model, queue. The concept of queue will be addressed in this lecture. Students should understand what is difference between stack and queue. 


Lecture 11


Students should be able to implement Queue.py after this class. Please get starting code for Queue.py from your class instructor.


Lecture 12


Event simulation project using queue. A modeling project very practical and widely used as assignments in many universities. Event simulation assignment was on cs major course in University of Waterloo