Computer Science 120

Course Outline

Length of Course: One semester (14 weeks)
 
Classroom Hours Per Week: 3 hours lecture, 2 hour lab
 
Number of Credits: 3 credits
 
Corequisites: Principles of Mathematics 12 or a university mathematics course, English 097
 
Description of Course:
 
An introduction to computer science and program design, suitable for students with little or no programming background. Students will learn the fundamental concepts and terminology of computer science, acquire introductory skills for programming in a high-level language, and be introduced to the diverse fields and applications of computer science.
 
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:

Quizzes 10%
Assignments 20%
Midterms 30%
Final exam 40%
 
SOFTWARE DOWNLOAD

Python can be downloaded from official web site: http://www.python.org/download/

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)