CS 201


Click here to download full syllabus in pdf 

Instructor: Steve Howard

Course Description:

The course is designed to teach object oriented programming techniques. It introduces algorithm and problem solving methods, emphasizes structured programming concepts, elementary data structures and the study and use of a high level programming language Python. The course includes a 3 hour lab each week.

Credit Hours:

4 semester hours

Textbook: Liang, 2013, Introduction to Programming Using Python.

Software: Python 3.2


General Course Objectives:

Upon completion of the course students will be able to:


  • utilize correct computer hardware terminology such as CPU, RAM, ROM, byte and bit
  • convert/compute numbers in decimal, hexadecimal, octal, binary, split octal and split decimal
  • define an operating system with examples
  • define a programming language with examples
  • utilize primitive data types in Python programs
  • utilize integer and real arithmetic operators
  • understand the order of operations for evaluating expressions
  • utilize selection control structures in programs including if/else
  • utilize loop control structures in programs including for and while
  • utilize function and methods with parameters passed correctly
  • understand variable scope
  • utilize Boolean variables and expression
  • utilize object oriented programming techniques to solve programming problems
  • utilize appropriate data structures and control structures to generate Python programs which implement algorithms designed to solve a given problem
  • identify and implement the steps of software development
  • document all programming projects
  • utilize List class for data storage
  • utilize classes and object oriented programming notation
  • utilize the math library methods
  • utilize string methods from the str class to manipulate strings
  • utilize standard debugging techniques when testing programs
  • test programming projects with appropriate test data so all sequences of code have been tested and input has been properly screened
  • program a GUI interface using Tkinter
  • create a simple event driven program
  • utilize overloaded methods


Instructional Methods:

Class time will be used to describe, illustrate or demonstrate the programming concepts in the course. Laboratory time will be used to complete programming projects and practice with new code structures. Outside study will be required to master the concepts in the course and to prepare for efficient use of laboratory time.


Room 106 8:25-9:15 M W Th, Room 106 7:30-10:10 T

Grading Scale:

The scale used for grading the course is shown below.

90% of possible points = A

80% = B

70% = C

60% = D

below 60% = F

Evaluation of student performance:

Student performance will be evaluated using quizzes, lab activities, tests and programming projects. The points assigned to each activity are listed below.

Tests (3) 45%

Programming Projects (4) 20%

Quizzes/lab activities 10%

Final Exam 25%

Late Assignments:

10% of the total point value of the assignment will be deducted for work turned in late. No assignments will be accepted more than one week late without approval of the instructor.

Programming Projects:

Each project must be the students own work. To be accepted for credit the project must execute. Programming projects will be graded using rubrics handed out with the project description.

Honor Code:

Students are required to pledge that all work on tests and programming projects is their own. Any work turned in without a pledge will be returned to the student. When it is resubmitted with the pledge it will be counted as late work. Any student who turns in pledged work that is not their own work will receive a zero for that assignment or test.


The student is responsible for making up any work missed during an absence. Any student who is absent the day preceding a test will still be expected to take the test as scheduled. Any student who misses only the day of a test will take the test on the day he/she returns to class. For absences of more than one day the student should make arrangements with the instructor regarding when make up work will be due. Credit will not be given for any make up work unless a note is received from home or the students parent has been contacted. When a student knows in advance that he/she will be absent (home school activities, family trips, etc.) he/she is expected to complete any test or assignments before the date of absence.

Students with Disabilities

- It is CVCCs policy to provide reasonable accommodations to qualified students with documented disabilities. Our goal is to help students succeed in this course. If you have a documented physical, mental, or learning disability and you need a reasonable accommodation to help you achieve success, please contact Student Support Services, in The Counseling Center, room 2119,

phone:(434) 832-7802or(434) 832-7299or emailADA@cvcc.vccs.edu. To best provide the accommodation you need, make this request as soon as possible, since accommodations cannot be made to change a grade you have received for course work already completed.


CSC 201 TENTATIVE Class Schedule Fall 2017


Week         Chapter/Supplement             Topic________

1                Chapter 1 & App C                        history, hardware, data types

2                Chapter 2, 3 & handout                 variables , identifiers, assignment statements,   numeric operators arithmetic, turtle graphics, floating point arithmetic

3                Chapter 3, 4                                   symbolic logic, logic operators, selection (if) statements, formatting string output, math function library

4                Chapter 4, 5                                   if and if/else, for loop, while loop

5                 Chapter 5                                       nested loops, random number generator

6                 Chapter 6                                       Project #1 due, Test #1, functions, scope

7                 Chapter 6, 10                                  parameters, lists

8                 Chapter 6                                        return statements, data validation, top/down design

9                 Chapter 10, 7                                 Project #2 due, list methods, intro to objects

10               Chapter 7                                       objects, data fields (public/private), methods, getters/setters, overloading

11               Chapter 7                                       objects cont. (matrix class and vector class examples)

12               Chapter 7                                        objects cont. (fraction class example), Project #3 due

13               Chapter 7                                        objects cont., Test #2 

14               Chapter 9 & handout                     GUI using TKinter, buttons, radio buttons, labels, packing, gridding, StringVar, Canvas, frames

15               Chapter 9                                         practice creating GUI using TKinter widgets

16               Chapter 9                                       TKinter cont., Test #3 

17               Chapter 9                                       TKinter binding mouse and key events, animations

18               Chapter 9                                       practice creating GUIs and handling mouse and key events, Project #4 due

Exam          FINAL EXAM