CSC 101: Fundamentals of Computer Science I
Course Syllabus




Instructor

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

Prerequisites

Course Objectives

Textbooks and Other Class Materials

The following textbooks are required. In the online WWW version of this syllabus, there are links for online textbook purchase (at amazon.com).

In addition to these texts, other course materials are available online in the master class directory at http://www.csc.calpoly.edu/~gfisher/classes/101. Online materials are organized in the following subdirectories:

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.

Programming Assignments

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.

Labs and Lab Exercises

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.

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 Assignments

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.

for a grand total the 100%. If you receive 90% or above you are guaranteed an "A" (or "A-") in the course, between 80% and 89% a "B" (or "B-"), between 70% and 79% a "C" (or "C-"), between 60% and 69%" and "D" (or "D-"). At the end of the course, the grading curve may be lowered, so that it may be possible to score a lower percentage for a given grade. Under no circumstances will the curve be raised; i.e., 90% or above guarnatees an "A", etc.

Lecture and Lab Attendance

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.

Limits on Collaboration

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)




index | lectures | labs | handouts | assignments | solutions | grades | help