CSC 101: Fundamentals of Computer Science I
Course Syllabus
Gene Fisher
Office: Building 14, Room 210
Email: gfisher@calpoly.edu
WWW home page: http://www.csc.calpoly.edu/~gfisher
Phone: (805) 756-2416
Office hours: MWF 11AM-12PM, Tu 9-11AM
The following textbooks are required. In the online WWW version of this syllabus, there are links for online textbook purchase (at amazon.com).
The online course files are available in following formats:
When accessing files from the web, all links will go to the HTML versions of the files. To access the PostScript, PDF, or plain text version of a document, go to the desired directory and view or copy the desired file with the ".ps", ".pdf", or ".txt" extension.
There will be six programming assignments, due Mondays starting on the third week of class. The class schedule below gives the exact due dates. These programming assignments constitute the main focus of the class in terms of your learning experience. They are worth 45% of your total grade.
There are three hours of lab each week. The labs are held in a room with computers where you will do your work in groups of two people.
Each week there will be a set of lab exercises assigned for you to work on. For the first couple weeks, the labs will involve familiarizing yourself with the UNIX operating system and a UNIX text editor. Starting in the third week, lab exercises will focus more on programming.
The lab exercises are not graded. You are expected to work on the exercises during the normal class lab times, and as much outside of class as necessary to complete the work. The purpose of the labs is to familiarize you with the concepts necessary to complete the programming assignments and do well on the quizzes and exams.
There will be two lab quizzes, three lecture quizzes, one midterm, and one final exam. The lab quizzes will cover some of the basic concepts of computing not directly related to programming and problem solving (e.g., UNIX concepts). Lab quizzes will be twenty minutes each. The lecture quizzes and exams will cover the concepts of programming and problem solving that you will use in your work on the programming assignments. Each quiz will be twenty minutes, the midterm fifty minutes, and the final one hour and fifty minutes. The final will be cumulative.
All quizzes and exams are open book and open note. In general, if you keep up with the programming assignments, you should not have to spend a lot of additional time studying for the quizzes and exams.
Late work on the programming assignments will not be accepted after the due
date. You may turn in a partially completed program to receive partial credit.
In general, it is far better to turn in something as a solution than
nothing, since substantial partial credit can be given for programs that do not
run correctly because of some minor problem.
Grading
The following is a complete point breakdown for all graded items. The percentages are based on 100% of the total grade for the class.
Attendance is not required, except on the days of quizzes and exams. As long as you can successfully complete all programming assignments, quizzes, and exams, you may choose to attend the lectures and labs as you see fit. Obviously, your instructor thinks it's a pretty good idea for you to attend.
You are expected to complete each of the programming assignments individually. During labs, you will work with a lab partner on the lab exercises. In general, you are free to consult with anyone on lab exercise work. You are also free to discuss general class concepts with others inside and outside of the class, including tutors. However, when in comes time to do the specific work on the programming assignments, you must do so on your own.
Any programming assignment that is discovered to be the work of more than one
student will be considered plagiarism. The CSC department has a computer
program that can reliably detect similarities among several student program
files, and this program will be used if necessary. Suspected plagiarism will
result in a zero on the assignment for all students (the one copied from as
well as the copiers) and a request to visit the instructor in office hours for
a discussion of how to resolve the problem and possibly to reinstate the
deserved grade. A second violation of this policy may result in handling by
the University Judicial Affairs Officer, being failed from the course, or being
dismissed from the university.
Class Schedule
The following is the class schedule for the quarter. The abbreviation "DWH" in
the reading column refers to the Dale, Weems, and Headington text. The "Emacs
Primer" in the reading column refers to a handout that will be distributed with
the second week lab notes.
Week
Lecture Topics
Reading
Quiz or Exam
Assignment Due
1
Intro to the course
Overview of programming
& problem solving
DWH Ch 1
Hahn Ch 1-4,13,15,16,17
2
C++ Syntax & semantics
Program development
DWH CH 2
Hahn Ch 6,8,9,10
Emacs Primer
Lab Quiz 1 (Fri)
3
Arithmetic expressions,
functions, input/output
DWH Ch 3, Ch 4 pp 132-136
Hahn Ch 19,20,24,25,26
Program 1 (Mon)
4
More on input/output
Logical expressions
& conditionals
DWH Ch 4 pp 132-152,
Ch 5 pp 185-212
Quiz 1 (Wed)
Program 2 (Mon)
5
Intro to software design
More on functions
DWH Ch 5
Ch 7 pp 323-341
Lab Quiz 2 (Wed)
Program 3 (Mon)
6
Looping & other
control constructs
DWH: Ch 6, Ch 9
Midterm (Wed)
7
More on functions
& design
DWH Ch 7, 341-376
Program 4 (Mon)
8
Program scoping
DWH: Ch 8
Quiz 2 (Wed)
9
Simple data types
Intro to arrays
DWH Ch 10,
Ch 11 pp 591-610
Quiz 3 (Wed)
Program 5 (Mon)
10
More on arrays
DWH Ch 11 pp 610-637,
Ch 12 pp 647-653
finals
Final (per class
schedule)
Program 6 (Mon)