CSC 103: Fundamentals of Computer Science III
Course Syllabus




Instructor

Gene Fisher
Office: Building 14, Room 210
Email: gfisher@calpoly.edu
Web home page: http://www.csc.calpoly.edu/~gfisher
Phone: (805) 756-2416
Office Hours: MW 9-10:30, TTh 1:30-2:30

Prerequisites

CSC 102 and CSC 141, both with a C- or better.

Course Objectives

These objectives will be achieved by writing computer programs and analyzing their behavior.

Textbooks and Other Class Materials

There is one required textbook for the course: Data Structures and Algorithm Analysis in Java, by Mark Allen Weiss, Addison Wesley, 1999, ISBN 0-201-35754-2. You should also have a book on the Java programming language (from CSC 102) and a book on discrete mathematics (from CSC 141).

You also need the Cal Poly users guide on Fundamental UNIX Commands (AIX20102), available at http://www.calpoly.edu/~ias/userguides/CentralUNIX.

In addition to these texts, other course materials are available online in the master class directory at http://www.csc.calpoly.edu/~gfisher/classes/103. Online materials are 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.

Assignments

There will be six work assignments, due on Mondays starting on the third week of class. The class schedule below gives the exact due dates. All assignments will be handed in electronically, using a turn-in program we will discuss in the early labs.

The assignments entail both program development and analysis. These assignments constitute the main focus of the class in terms of your learning experience. They are worth 50% 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 lab work in groups of two people, and work on your assignments individually.

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 Sun machines in the lab and the available Java tools. Starting in the third week, lab exercises will focus more on programming and analysis.

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 assignments and do well on the quizzes and exams. If you complete the lab exercises early, you are free to work on your homework assignments during lab.

Quizzes and Exams

There will be two lab quizzes, three lecture quizzes, one midterm, and one final exam. The lab quizzes will cover details of lab activities, including Java and UNIX tool details. The lecture quizzes and exams will cover the concepts of programming and analysis that you will use in your work on the assignments. Each quiz will be twenty minutes, the midterm eighty minutes, and the final three hours. The final will be cumulative.

All quizzes and exams are open book and open note. In general, if you keep up with the assignments, you should not have to spend a lot of additional time studying for the quizzes and exams.

Late Assignments

Late work on the assignments will not be accepted after the due date. You may turn in partially completed work to receive partial credit. In general, it is far better to turn in something as a solution rather than nothing. Substantial partial credit may be given for programs that do not run correctly because of some minor problem, or for analyses that are substantially correct but missing some details.

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 guarantees 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 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 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 assignments, you must do so on your own.

Any 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.

Week Lecture & Lab Topics Reading Quiz or Exam Assignment Due
1 Intro to the course
Intro to algorithm analysis
Chs 1,2    
2 Lists, stacks, and queues Ch 3 Lab Quiz 1 (Th)  
3 Trees I Ch 4 Lec Quiz 1 (Th) Assmnt 1 (Mon)
4 Trees II Ch 4    
5 Hashing Ch 5 Lab Quiz 2 (Tu) Assmnt 2 (Mon)
6 Sorting Ch 7 Mdtm (Th) Assmnt 3 (Mon)
7 Sorting II
Priority queues
Ch 7
Ch 6
   
8 Graph algorithms I Chs 8,9 Lec Q2 (Tu) Assmnt 4 (Mon)
9 Graph algorithms II
Advanced data structures I
Ch 9
Ch 12
Lec Q3 (Th) Assmnt 5 (Mon)
10 Advanced data structures II
Algorithm design
JFC library
Ch 12
Ch 10
   
finals     Final Assmnt 6 (Mon)




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