Course Outline
Week 1
• Computer system introduction
• Learn how to convert integers to binary and vice versa.
• Learn and practice how to use two’s complement notation for representing negative integers.
• Practice using the interactive Python interpreter.
• Learn and practice how to use basic data types.
• Learn how to declare variables.
• Learn and practice how to use assignment statements.
• Operators and order of operations
Week 2
• Learn and practice how to use library modules.
• Learn and practice how to write functions
• Type conversion and type coercion
• Parameters and arguments
• Variable scope
• Learn and practice how to write pseudocode for Python functions.
Week 3
• Learn how to use if-else statements.
• Nested if statements
• Recursion and recursive functions
• Learn how to design and use functions that return numbers or strings.
Week 4
• Learn how to design and use loops.
• Compare for loop and while loop
• Learn and practice how to use Boolean expressions.
• Nested loop
Week 5
• Compound data type
• String slicing and string comparison
• Looping and counting with string
• List introduced
• List slicing
• String and list comparison
• Mutability of string and list
Week 6
• Tuple
• Mutability of tuple
• Tuples and list comparison
• Dictionaries
• Dictionaries used in sparse matrices
Week 7
• Midterm review
• See more examples and exercises.
• Midterm
Week 8
• Learn and practice how to read text files
• Write to text files
• Pickling
• Learn and practice how to use throw and catch exceptions.
Week 9
• Learn and practice how to design and use basic searching and sorting algorithms.
• Use O-notation to describe the running time of simple algorithms.
• Classes and objects introduced
• Object-oriented programming features
Week 10
• Class attributes
• __str__ method and initialization method
• Method overloading
• Inheritance
Week 11
• Card game analysis
• Data structure
• Linked lists
• Lists and recursion
• Lists as collection
Week 12
• Abstract data types
• Stack ADT
• Implement stacks with Python lists
• Queue ADT
• Improved linked queue
Week 13
• Overall course review.
Evaluation:
Assignments 20%
Midterms 30%
Final exam 40%
TEXTBOOK
• How to Think Like a Computer Scientist--Learning with Python, Allen Downey, Jeffrey Elkner, Chris Meyers, Green Tea Press,
•http://www.openbookproject.net/thinkcs/python/english2e/
• http://greenteapress.com/thinkpython/html/
• CMPT 120 Study Guide, Greg Baker, SFU, 2010: http://www.cs.sfu.ca/CC/120/ggbaker/guide/guide
Recommended References:
Python Programming for the Absolute Beginner, 2 nd Edition, Michael Dawson, Course Technology PTR, 2005
Invitation to Computer Science, 3 rd Edition, Java Version, G. Michael Schneider and Judith Gersting, Course Technology, 2006
Transferability:
SFU: CMPT 120(3) Q/B-Sci
UBC: CPSC 1 st (3)
Note that:
Columbia College CSCI 101 & 120 transfer to CPSC 101(4) and CPSC 1 st (2)
Columbia College CSCI 101, 120 & 125 transfer to CPSC 101(4), CPSC 111(4) & CPSC 1 st (1)
UVic: CSC 100 (1.5 units)
Instructors:
Ken Chan, B.Sc. (Simon Fraser), M.S.E.E. (Wayne)
William Cheng, B.Sc., M.Sc. (Cal. State)
