CSC 225: Fundamental Structures of Computer Science I
Fall Semester 2004-2005
T-TH 12:50 - 2:30 (IVERS 221)


Instructor: Daniel Thureen, Ivers 234K, Phone: 299-3376
E-Mail: thureen@cord.edu
Homepage: www.cord.edu/faculty/thureen
www.cord.edu/faculty/thureen/225.htm (class web page)
Office Hours: 1:20 - 2:30 PM MWF
      Other times by appointment or discovery

PRIMARY COURSE OBJECTIVES, to learn:
       1.  More complex problem solving techniques using C++
       2.  Intermediate data structures including classes, arrays, linked lists,  stacks, queues, and trees

Textbooks
        Data Structures and Other Objects by Main & Savitch, Addison Wesley, 2005
        A Laboratory Course in C++ Data Structures by J. Roberge, Jones & Bartlett, 2003.
        You may also need a few DS/HD(1.44MB) 3.5" Diskettes or USB RAM Drive for portable data storage

OTHER MATERIALS:

Most of the sample programs and many exercises from the Savitch textbook along with a wealth of resource materials including free software, and sample exam questions ( ! Hint, Hint !) can be downloaded from the authors website.
The Lab book also uses software which will need to be downloaded and installed on your computer. The links to these sites are listed below.
http://www.cs.colorado.edu/~main/dsoc.html
http://computerscience.jbpub.com/cppdatastructures/Student_Resources.cfm

Tentative Schedule

  I.
     Review of CSC 125 concepts
     Chapter 1 - Software Engineering Principles
     Chapter 2 - Data Design & Implementation
     Chapter 3 - ADT Unsorted & Sorted List
     Chapter 4 - ADT Stack & Queue
        Exam 1 - Thursday, Feb 3

  II.
     Chapter 5 - Linked Structures
     Chapter 6 - Lists Plus
     Chapter 7 - Recursion
        Exam 2 - Tuesday, March 22 

  III.
     Chapter 8 - Binary Search Trees
     Chapter 9 - Priority Queues, Heaps, Graphs, and Sets
     Chapter 10 - Sorting and Searching Algorithms

  
     Final Exam - Wednesday, April 27 - 2:00 PM
     Final exam will be comprehensive but more heavily weighted toward most recent material

GRADING
        Exams (3):     100 pts each           =  300 pts 
       
Labs (8-10):    25 pts each           =  250 pts 
        Projects (2):    50 pts each           =  100 pts
        Miscellaneous                              =    50 pts (Attendance, participation, attitude, etc.)
        Total                                                 700 pts

LABS & PROJECTS:
       ALL Assignments are DUE at the BEGINNING OF the CLASS period on the Due Date indicated for the assignment. For each LAB exercise, use the appropriate LAB-MANUAL PAGE as a cover sheet for the materials you submit for that exercise. Be sure to fill in the DATE, SECTION, and NAME blanks on the lab sheets and also fill in the answers to ALL of the questions for that exercise. Where you have written code for that section of the lab, ATTACH a HARDCOPY of your source code and sample output following the lab manual sheet for that section. Staple all sections for a given assignment together in the proper order and submit it as one package. Print your name in the upper-right-hand corner of every page in case the staple comes loose. To receive full credit, your program must produce correct results, be well-designed, be efficient, and adhere to the programming style specified in the CSC125 Style Sheet For C++ .   It is expected that all work done for this class will be your own work. Sharing of ideas is encouraged, but copying problem solutions or programs is a form of plagiarism and will result in a zero for that assignment and possible disciplinary action by the college. In order to allow a bit of flexibility in scheduling, each student will be given 10 days of "free grace" for completing assignments. These grace days may be applied to the assignments as desired. After all the grace days are used up, any late work will be penalized 10 points for each day late. All grace expires and all assignments must be turned in by the final day of class. Plan ahead - finish early!!!


* This course REQUIRES your active participation and the use of a C++ compiler. Both Borland and Microsoft C++ are available in the computer labs in Ivers 217 and Ivers 222. THE TIME YOU SPEND learning problem solving with C++ by practice and example on a microcomputer will affect your grade. Your willingness to work hard and your persistence when difficulties arise, are other factors that will influence how well you do in this class. If you run into trouble, get help AS SOON AS possible. Make good use of the resources available to you: your textbook & manual, your instructor student computer consultants, on-line help in Windows 95, and the on-line help in the Turbo C++ IDE.

* ATTEND EVERY class and EVERY lab meeting. Attendance will be taken daily and will be considered when your course grade is determined. You must keep up in the course. It is nearly impossible to understand a later part of the course if you miss a preceding part. If a student must miss any class, it is his/her responsibility to get the missed materials and announcements from a classmate.

* KEEP ALL GRADED homework and exams to protect yourself in the rare case that a grade is misrecorded.