Computer Science Department
Comsc 210: Program Design & Data Structures, Spring 2012, Section 8093


COURSE DESCRIPTION:
Techniques relevant to program design and selection of data structures for larger programs. Topics covered include design techniques, effective use of recursion, algorithmic efficiency and O-notation, linked lists, binary trees, B-trees, graphs, sorting, and searching techniques. Extensive programming of a variety of data structures is required. CAN CSCI 24, CSU, UC Prerequisite: Comsc 265 or equivalent. Expected student learning outcomes: www.dvc.edu/slos?comsc-210

INSTRUCTOR:
Prof. Burns, rburns@dvc.edu
Burns office hours:
  9-9:30am TTh ATC-115, by visit and email
  12:30-1pm TTh FO-227, by visit and phone, x2610
  6:30-7pm MW ATC-115, by visit and email
  5:30-6:30pm MW by online discussion group and email

TOPICS COVERED:
Arrays and linked lists
Stacks, queues, priority queues
Hash tables and hashing techniques
Tree structures and heaps
Seaching and sorting records
Abstract data types (ADTs)
Efficiency considerations and big oh
Graphs and digraphs
Recursion using stacks and queues
Traversal and iteration
The C++ Standard Template Library
CLASS DATES AND TIMES:
M Jan 23rd at 7pm - Th May 24th at noon
MW 7-9:50pm class meetings, ATC-115
Last Day To Add: Feb 3rd
Last Day To Drop with refund: Feb 3th
Last Day To Drop without "W": Feb 16th
Last Day To Drop with "W": Apr 27th
Holidays: M Feb 20, M Apr 2, W Apr 4
Midterm exam: W Mar 14th
Final exam: M May 21st
GRADING: Lab Exercises (15):  750 points
Midterm Exam: 50 points
Final Exam: 50 points
Term Project:  50 points
Online Quizzes (16): 100 points

FINAL GRADE: Strictly applied
A 900-1000 points      B 800-899 points
C 700-799 points      D 600-699 points
F 0-599 points        no extra credit

TEXT, REFERENCES, AND SUPPLIES:
C++: Classes and Data Structures by Childs (required)
Intro To Programming, Using C++ (4th Ed. Rev 1) by Burns online
Class website: http://cs.dvc.edu/
Command-line compiler: Visual C++ (avail. in computer lab)
Free PC/Mac editor: JNotePad (also avail. in computer lab)
Free PC Windows compiler: Visual C++ 2010 Express
Free Mac compiler, from the Mac App Store: XCode 4.2
Additional supported compilers: UNIX/Linux/PC g++; VC++ 2005, 2008
CLASS POLICY: Each lab must be completed correctly before the next lab is considered for grading.
Expect to spend about 12 hours per week on this course listening to lectures, doing labs, and reading.
Lab assignments are posted on the class website. Lab writeups may have accompanying YouTube videos that require Adobe Flash.
Lab assignments are due at midnight of the evening of the due date indicated on the course outline. Completed lab work must be posted to the class website for credit, into the correct folder, with correctly spelled and cased filenames.
For questions on lab assignments, anytime and anywhere, use the online discussion group (accessible via links on the class website: http://cs.dvc.edu). Students may post and reply to questions in order to help each other. The instructor monitors the discussions and answers questions when appropriate. Use this method so that all students benefit from questions, answers, and clarifications.
Lab work will be sent back for redo if not fully correct, with a 2 point penalty each time it is sent back for any of the reasons listed in the lab writeups. Labs that are not made fully correct by one month after their due date will receive zero points.
Late lab assignments and projects will be accepted with a 10 point penalty, except that work submitted one month after its due date, or after noon on Th May 24th, will receive zero points.
Contact the instructor by email or visit during their office hours (if any).
The final exam and the midterm exam are both open book and open note. Ref: http://cs.dvc.edu/HowTo_PrepareForExams.html
Arrangements for missed exams must be made with the instructor in advance. Make-up exams can only be scheduled for a time period in which the instructor is conducting another exam.
Quizzes are conducted prior the first lecture of a topic, and may be online or in-class, per the instructor's direction. No make-ups for missed quizzes. Quizzes cover the material for the indicated chapter's reading assignment in the course outline, and the corresponding lecture notes. Online quizzes are accessible on the class website via the internet, and require that Javascript be enabled in order to run in your browser. All quizzes are timed, each allowing a few minutes for 5 or fewer multiple-choice questions.
Students are expected to follow the DVC Student Code of Conduct. Accordingly, no credit will be given for work that is not original. Students MUST type their own code, and NOT share code with other students. Points awarded for lab work that is later found to be not original will be withdrawn. Points awarded for files that subsequently get deleted will be withdrawn.
Classes start at 7:00pm sharp. Do not trust classroom clocks -- check the time on the class website home page (http://cs.dvc.edu) which is synchronized to the atomic clock.

EXPECTED STUDENT LEARNING OUTCOMES:
Students completing the course will be able to:
1. create C++ templates for custom data structures, with the standard operations of insert, replace, retrieve, and remove.
2. understand the differences among the various search techniques (linear, binary, and binary trees) and can implement all of them.
3. understand the difference among various O(n log n) sorting algorithms and can implement quick sort, merge sort, Shell sort, and heap sort.
On the first day of class, take the survey at www.surveymonkey.com/s/sp2012comscPre
On or before finals day, retake the survey at www.surveymonkey.com/s/sp2012comscPost