COMPUTER SCIENCE I - CSC 201
Instructor: Steve Howard
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.
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
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 205 9:20-10:10 M W Th, Room 202 7:30-10:10 T
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%
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.
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.
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 2013
Week of Chapter/Supplement Topic________
8/12 Chapter 1 & App C history, hardware, data types
8/19 Chapter 2, 3 & handout variables , identifiers, assignment statements, numeric operators arithmetic, turtle graphics, floating point arithmetic
8/26 Chapter 3, 4 symbolic logic, logic operators, selection (if) statements, formatting string output, math function library
9/2 Chapter 4, 5 if and if/else, for loop, while loop
9/9 Chapter 5 nested loops, random number generator
9/16 Chapter 6 Project #1 due, Test #1 (Sept 17), functions, scope
9/23 Chapter 6, 10 parameters, lists
9/30 Chapter 6 return statements, data validation, top/down design
10/7 Chapter 10, 7 Project #2 due, list methods, intro to objects
10/14 Chapter 7 objects, data fields (public/private), methods, getters/setters, overloading
10/21 Chapter 7 objects cont. (matrix class and vector class examples)
10/28 Chapter 7 objects cont. (fraction class example), Project #3 due
11/4 Chapter 7 objects cont., Test #2 (Nov 7)
11/11 Chapter 9 & handout GUI using TKinter, buttons, radio buttons, labels, packing, gridding, StringVar, Canvas, frames
11/18 Chapter 9 practice creating GUI using TKinter widgets
11/25 Chapter 9 TKinter cont., Test #3 (Nov 26)
12/2 Chapter 9 TKinter binding mouse and key events, animations
12/9 Chapter 9 practice creating GUIs and handling mouse and key events, Project #4 due
12/16 FINAL EXAM