Syllabus
Click on this link to open the Printable Syllabus in a new browser window/tab (Note: The printable syllabus is in plain text format)
Data Structures and Algorithms CMPS 223 - Spring 2011 Dr. Melissa Danforth Office: Sci III 338, 654-3180 Office Hours: MWF 1:45-3:00pm and MW 4:30-5:30pm (or by appointment) Email: melissa@cs.csub.edu Course web site: http://www.cs.csub.edu/~mdanfor/ under Teaching menu Course meets MWF 12:20-1:30pm and Tu 12:20-2:50pm in Sci III 315 Course Description Builds upon the foundation provided by CMPS 221 to introduce the fundamental concepts of data structures, algorithms, and algorithm analysis. The course focuses on the concepts and implementation of fundamental data structures (linked lists, stacks, queues, trees, hash tables, and graphs). Other topics include: pointers, recursion, searching and sorting algorithms, and the basics of algorithm analysis. Prerequisite: CMPS 221 Topics that were covered in CMPS 221 that you should know for this course: (Chapter numbers are from the CMPS 221 textbook) Chapter 1 Introduction to Computers and Programming Chapter 2 Introduction to C++ Chapter 3 Expressions and Interactivity Chapter 4 Making Decisions Chapter 5 Looping Chapter 6 Functions Chapter 7 Arrays Chapter 9 Pointers Chapter 10 Characters, Strings and the string Class Chapter 11 Structured Data Chapter 13 Introduction to Classes Textbook: Data Abstraction & Problem Solving with C++, 5th edition. Frank Carrano. Publisher: Prentice Hall / Pearson. ISBN: 0-321-43332-7. (Note: This is a new textbook for this quarter) Material Covered: Chapter 1 Principles of Programming and Software Engineering (brief) Chapter 3 Data Abstraction: The Walls (brief) Chapter 4 Linked Lists Chapter 6 Stacks Chapter 7 Queues Chapter 2 Recursion: The Mirrors Chapter 5 Recursion as a Problem-Solving Technique (prefix and postfix) Chapter 9 Algorithm Efficiency and Sorting Chapter 10 Trees Chapter 11 Tables and Priority Queues (heaps and heapsort) Chapter 12 Advanced Implementation of Tables Chapter 13 Graphs View the calendar on the course website to see the order in which these topics will be presented. Attendance: Students are responsible for their own attendance. The topics covered in lecture will be listed on the course website. Lab attendance is not required but is strongly encouraged. Academic Integrity Policy: Homeworks and labs may be worked on and discussed in groups. If the assignment is a group assignment, the group can turn in one assignment for the entire group. If the assignment is an individual assignment, each student must turn in their own code; no direct copying is allowed. Refer to the Academic Integrity policy printed in the campus catalog and class schedule. Computer Lab: The walk-in computer lab in Sci III 324 is available for use by students in this course outside of class time on a first come, first serve basis. Priority in the lab is given to students who are completing assignments for Computer Science courses. The lab typically closes around 5:00pm on weekdays and is closed on weekends. Tutoring is also provided on a limited basis in the walk-in lab. A tutoring schedule will be posted on the department website by the end of the first week of classes. Students in this course may ask the tutors for assistance on assignments. The tutors are not allowed to solve the assignment for you, but they can assist with problems like cryptic compiler errors. Grading: Labs/Homework 40% Midterm 30% Final 30% Grades will be posted on the Moodle website for the course. This is a new way for the instructor to distribute grades, so please contact the instructor if your overall course grade seems abnormal (too high or too low). It might be an issue with Moodle's grade calculation, which is still being ironed out. Labs: Lab assignments will be posted on the course website. Labs are worth 10 points and usually involving writing a short programs. The labs are due on the day after the lab. Partial credit will be given for incomplete labs. Late labs will not be accepted. The lowest lab grade will not be counted towards the overall lab grade. Homework: Homework assignments and due dates will be posted on the course website. Homeworks are worth 20 points and consist of implementing and using certain data structures. Plan to spend 10 - 15 hours per homework assignment as these assignments will be more complex than the assignments in CMPS 221 or CMPS 222. Programs which do not compile may be given partial credit depending on the severity of the error. No homework grades are dropped, however an extra credit assignment will be given at the end of the quarter. Late Policy for Homework: Late homework will be accepted. Late labs will NOT be accepted. Late homework will be marked down 10% for each day it is late. Saturday and Sunday combined count as only one day late (e.g. if the assignment is due Friday and you turn it in Sunday, it will be marked as one day late). If there is a late policy posted on the assignment, then that policy will apply for that particular assignment. Otherwise, homework assignments that are more than three days late will not be accepted. Labs/Homework Submission: Assignments are submitted by emailing the instructor all assignment code files from the Computer Science department server. Do not use any other email method as your email might be discarded by the Computer Science department spam filter. If you believe you submitted the assignment on time but the instructor has not received the email, contact the instructor. Allow at least one week after the assignment due date for the grade to be posted to Moodle. All coding assignments will have the Comment section of Moodle updated to say "assignment received" within a day or two of the instructor receiving the email, even if the assignment has not yet been graded. If the comment section is blank after a few days, the instructor has likely not received your email. It is your responsibility to check Moodle to see if your assignment has been received and to contact the instructor if it has not been received. If you believe you emailed the assignment on time but the instructor has not received it, contact the instructor. Midterm: Friday April 29, 2011 during the lecture time slot A make-up midterm will only be given if you have to miss this midterm for serious and compelling reasons or if you schedule an alternative time for the midterm at least ONE WEEK in advance. Final: Wednesday June 8, 2011 from 2:00-4:30pm in Sci III 315 If you cannot make the scheduled final time because it conflicts with another final or you have more than two finals scheduled that day, you MUST contact the instructor ONE WEEK in advance of the final to schedule an alternate time.