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 |
- 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.
- 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.
- 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.
- 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)
- Students who miss more than 25% of class sessions may be barred from taking
the final exam [2010-2011 Academic Calendar p.38].
- In case of inclement weather, the TWU campus conditions will be announced
on local radio stations and posted at
www.twu.ca/conditions.
|