California State University, Chico
Department of Computer Science

CSCI 311 - Data Structures and Algorithm in C++

Syllabus/Course Requirements

http://www.ecst.csuchico.edu/~melody/courses/Spring2007CSCI311/bd10308_.gif

Course Number: CSCI 311

Course Title: Data Structures and Algorithms in C++

Prerequisite: A grade of C- or better in CSCI 112- Programming and Algorithms II or equivalent

Course Times and Locations:

·         LECTURE: TuTh 12:30M-1:45PM in OCNL 254

·         SECTION 2 LAB:Tu 200PM- 250PM OCNL 340

·         SECTION 3 LAB:Th 200PM -250PM OCNL 340

 

Instructor: Dr. Melody Stapleton

Instructor's Office Hours: TuTh 2-3:30 and Wed. 3-5 pm in OCNL 208

Faculty Phone: (530) 898-5617 , message 898-6442, fax 898-5995

Email: mjstapleton@csuchico.edu or melodystapleton@digitalpath.net (use this address if you have large attachments or zip files to send me)

Textbooks:

Course Description: This course focuses on object-oriented methodologies in designing and implementing a variety of data structures and algorithms.  Coverage includes recursion, trees, search structures, hashing, heaps, sorting algorithms, and graph algorithms.  Data structure and algorithm combinations will be studied and analyzed along with their relative merits using both mathematical and empirical measurements.  The course includes a number of large programming assignments focusing on object-oriented software engineering and algorithm development.  Students will be required to design, implement, test, and analyze their programs.   The language of focus for this incarnation of the course is C++. 

Course Goals: Students will be able to understand the role of several advanced data structures in programming object-oriented solutions to practical problems.  Students will be able to successfully design, code, analyze and test several large programming projects, covering a variety of data structures.  Students will understand time and space complexity issues as they relate to various algorithms and data structures.

Course Notes: To be posted on the web as the course develops.

Dr. Stapleton’s Main Web Page: www.ecst.csuchico.edu/~melody/  . Look for the current semester’s CSCI 311 link.

COURSE POLICIES:  Dr. Stapleton views this course as being the most important course you will take to gain employment in your field.  It is to be viewed as a job/employment in all aspects.  This includes maintaining an attitude of respect and consideration for your fellow employees and your supervisors/employers.  All interactions in the course need to reflect this attitude.  Policies that will be strictly adhered to include:

·       Attendance is mandatory – just as with employment.  If you are ill or there is some other emergency you need to contact Dr. Stapleton via email prior to missing the class.  Very few exceptions would merit failing to do so.  Your course grade will be decremented should you have unexcused absences and you may be dropped from the course.

·       Turn off all cell phones/PDAs prior to walking in the classroom.  Laptop computers are allowed only for the purpose of accessing/generating notes and other related course materials.  No messaging or contact of fellow students is allowed.  Any disruption to the class will result in loss of the “laptop privilege”.

·       Homework due dates are firm.  Since attendance is mandatory, you will always be aware of when an assignment is due as it will be announced in class.  Homework is to be photocopied by the student prior to turning it in.  The instructor will go over the solution to the homework in class.  Take notes while the solution is being developed.  The process of writing has been demonstrated pedagogically to enhance learning.  From time to time, solutions will be posted on the web at the instructor’s discretion.

·       Plagiarism/Cheating Policy:  Programming assignments and homework assignments are to be an *individual* effort.  You are not to share your code with your fellow students in any version of that code.  Anyone who as determined by the Instructor/TA has copied any part of another students work will automatically receive a grade of "F" for the course.  Anyone cheating on an exam will receive a grade of "F" for the course.  Anyone who alters their exam answers after receiving the exam back will receive a grade of "F" for the course.  Dr. Stapleton will also pursue your removal from the University.  Please note:  From time to time, your TA and Dr. Stapleton may share partial solutions to programming problems with you or you may be asked to use pre-existing code in your text or on the web.  You are allowed to use this code provided it has been approved by Dr. Stapleton and the TA.  You may be asked to use some code as a base for modification and this is allowable.  You are to cite in your documentation whenever you use the code from another source.

Course Assignments:

There will be three large programming assignments for the course as well as some smaller homework assignments.  The topics of the programming problems will be selected from: Trees, Graphs, Patricia Trees, Heaps, Hashing, Data Compression, Memory Management

Policy on Turning in Programs and Homework Assignments:   Due dates are firm.  No late assignments will be accepted unless serious illness or other excused absences merit allowances in the judgment of the instructor.

Grade Evaluation Procedures :  Students will be graded based on their performance in the following course components -

Students need to receive at least 60% credit in *each* component of the course in order to pass the course.  Exams are the property of the instructor and may be reviewed by the students after completed and graded, but will be kept by the instructor.