CMPT/ISYS 140 Fall 2010 Syllabus

Instructor

Dr. Sean Ho
twu@seanho.com
(604) 513-2121 x3209, Neufeld 5
Office hours: WRF 14:00-16:00
TR 11:40-13:00 Neu36
cmpt140.seanho.com
TA: Ian Trick (sqwishybon at gmail)
Ian's hours: W 17:30-21:30 in the lab
TA: Jason Reves (jason.reves at mytwu)
Jason's hours: TF 14:00-16:00 in the lab

Objective

This course is designed to provide an introduction to programming and to a modern high level language (Python) so that the student becomes a competent programmer. Emphasis is placed on structured programming techniques. By the end of this course the student will be able to define a problem, determine the necessary input/output requirements, prepare an algorithm to solve the problem, write structured Python code, debug the program, and produce documentation specifying how the program can be used and the methods by which the program achieves its objectives.

Prerequisites

No programming experience is needed, but basic familiarity is expected with Windows, navigating directories/files, email/web, etc. This course is about problem-solving, developing software tools to help others. It is NOT about hacking together web sites or the like. You must have excellent English skills and the ability to concentrate for long periods of time on problem solving.

Text

  • John M. Zelle, Python Programming: An Introduction to Computer Science, 2nd ed., Franklin, Beedle & Associates, 2010. ISBN 978-1-59028-235-9.
    The text should be available in the campus bookstore.
  • From time to time we may also refer to text and/or exercises from our supplemental text: Modula-2: Abstractions for Data and Programming Structures, by TWU's own Prof. Rick Sutcliffe. It is also available in the campus bookstore, as well as online at http://www.csc.twu.ca/rsbook/ or http://www.modula-2.com.

Marking

Letter grade assignment follows the TWU percentage to grade equivalents except that >=85% and <95% is an A; 95% and above is an A+.
Labs 25%
Quizzes 5%
Homework 10%
Major Paper 10%
Midterms 10% (x2)
Final Exam 30%

Topics

  • Main topics (subject to revision):
    • Problem solving process, toolsmithing, the attitude of the computer programmer
    • Software development process
    • Programs, data, literals/constants/variables, types (static vs. dynamic)
    • Expressions, operators, precedence, Boolean logic, shortcut operators
    • Documentation: comments, design-by-contract, writing help text
    • Branching (if, switch), looping (while, for)
    • Functions: parameters, call-by-value vs. call-by-reference, local variables, scope, recursion
    • File I/O
    • Arrays, lists, dictionaries, sets
  • Applications: math, physics, finance, text processing, encryption, pseudo-random numbers
  • Additional topics:
    • Exceptions
    • Namespaces, scope
    • Introduction to Object-Oriented programming: classes, methods
    • Pointers and indirection, dynamic data structures (linked lists, trees, etc.)

Notes

  1. A big part of this course is hands-on learning through programming lab assignments (about 5-7 total). Enrolment in this course grants you access to the CSI computer lab (Neu20), which is reserved for CSI(CMPT) students only. CMPT140 satisfies the natural science but NOT the lab-science requirement for a degree at TWU.
  2. ALL labs and homeworks must be done on time. Homeworks will not be accepted after the day they are due. Late labs are penalized 10% per calendar day (or portion thereof), and are not accepted after 10 days. The timestamp on MyCourses will be used. You need to complete all labs; if you miss more than one lab, you automatically fail the course.
  3. Policy on laptops in class: Laptops are allowed to be used in class only for course-related work, e.g., following lecture notes online, trying out Python code interactively, researching add-on libraries pertinent to the subject, etc. That means no Facebook, IM, personal email, WoW, Halo, etc.! Students are expected to abide by this on the honour system.
  4. Academic integrity is a core value of the entire TWU community. This includes, but is not limited to, avoiding all forms of plagiarism and cheating. Plagiarism is using someone else's work without attribution. In this course, if you do it once you will get a zero, if you do it again you will automatically fail the course. Any such cases also go into the University's files for future reference. A tutorial describing plagiarism and how to avoid it has been prepared by TWU Librarian William Badke: (PPT file), (14 min flash), (8 min flash)
  5. Students who miss more than 25% of class sessions may be barred from taking the final exam [2010-2011 Academic Calendar p.38].
  6. In case of inclement weather, the TWU campus conditions will be announced on local radio stations and posted at www.twu.ca/conditions.