You are here

Computer Science 120

Introduction to Computing Science and Programming I

Credits: 3

Length of Course: 14 weeks

Classroom Hours per Week: 4 hours lecture, 1 hour lab

Corequisites: Pre Calculus 12 or a university mathematics course, English 097

Text:
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, 3rd Edition, Michael Dawson, Course Technology PTR, 2010
Invitation to Computer Science, Third Edition:  Java Version, G. Michael Schneider and Judith Gersting , Course Technology, 2006


Course Description:

This course is an introduction to computing science and program design, suitable for students with little or no programming background.  Students will learn fundamental concepts and terminology of computing science, acquire introductory skills for programming in a high-level language, and be introduced to the diverse fields and applications of computing science.


Course Outline:

Week Topic
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
  • Mid-term review
  • See more examples and exercises.
  • Mid-term
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.
  • More practice exercises and exam preparation.

Evaluation:

Labs 10%
Assignments 20%
Mid-term Exams 30%
Final Exam 40%

Software Download:

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


Instructors:

Ken Chan, B.Sc. (Simon Fraser), M.S.E.E. (Wayne)
William Cheng, B.Sc., M.Sc. (Cal. State)

Yvonne Yang, B.Sc. (Hunan), Ph.D. (Paris)


Transferability: see www.bctransferguide.ca