Syllabus F12


The course description lists CS307 and CS313E/ECE322C as pre-reqs. Whether you've taken these courses or not, you must have basic programming skills to take this course. Programming experience in an object-oriented language will be helpful.


  • The Python Language:
    • Lexical Conventions and Syntax
    • Types and Objects
    • Operators and Expressions
    • Flow Control and Exceptions
    • Modules
  • Python's Programming Paradigms:
    • Imperative/Procedural/Scripting
    • Functional Pogramming
    • Object Oriented Programming
  • Working with Python: Tools and Environment
  • Selected Topics / The Python Library:
    • String and Text Handling
    • Data Structures and Algorithms
    • Threading
    • Networking
    • Web Programming
    • Graphical Programming
    • Database Access


Scores will be posted on Blackboard.

If you believe there has been a grading error for one of your assignments, you have one week from the time the grade is made available to you to submit a complaint to the instructor, by email, along with any supporting evidence or arguments. Any grade change requests made in person or after the one week period has elapsed will not be considered.

Your final grade will be calculated as follows:

Programming Assignments70%
Class Participation10%

There will be a small reading assignment to be completed in advance of each class meeting (see Schedule), and one short in-class quiz each week (except the first week when the quiz is a take-home). The quiz questions will be based on the reading and on material covered in previous classes and the answers will be explained immediately following each quiz as part of the day's lesson. The quizzes are deliberately tricky (except Quiz1) in order to cover interesting material, so to compensate, one third of the credit for each quiz is given automatically just for turning it in. If you miss a quiz due to absence or lateness your score will be zero.

Class participation is a measure of your involvement in class meetings in asking/answering questions, and also on the class discussion board on Blackboard. There are no exams.

Late Work Policy

Each programming project will be posted as the previous project becomes due. The due dates are explained on the Assignments page and also listed on the Schedule page so that you can work around any planned events (e.g. religious holy days) that would interfere with your completing the assigned work on time. However, in order to account for unforeseen or extenuating circumstances, you will be given three (3) "slip days" for the semester. Here, a "slip day" is defined to be a 24-hour period after the assignment is due, during which you may submit the assignment without penalty. You may distribute your slip days however you like across the first 4 projects, but none may be used for Project5. Slip days will be deducted when you submit a late assignment. You do not need to contact the instructor or get permission before submitting late work but if you don't have enough slip days to 'pay' for the lateness, it will not be graded and you will receive a score of zero.

Academic Honesty

Any work you submit should be entirely your own. You are permitted and encouraged to discuss concepts, algorithms, and ideas with one another, in person or on the course newsgroup. However, you may not under any circumstances view, read, copy, or in any way access source code that is not your own unless it is provided to you by the instructor. You are also responsible for maintaining the privacy of your own source code — if you share your code with another student, you will be held responsible. You may not get outside debugging help with your code. For the most part, you should know whether what you are doing is dishonest or not. If you have any questions, ask the instructor before doing it. Students found in violation of this academic honesty policy will receive a failing grade in the course and be referred to the Dean of Students for possible further disciplinary action. Don't cheat.