27534 CSC 1071A - 0 - Data StructuresSpring 2004 |
This web page is http://www.bernstein-plus-sons.com/.dowling/CSC1071S04/CSC1071_Syllabus.html
Copyright © 2002 -- 2004 Herbert J. Bernstein and other parties. All rights reserved.
This is the syllabus for CSC 1071A for Spring 2004. As the course moves forward, students should return to this page frequently for updated material.
4 credits
A study of data structures for computer science. This course will cover
theory and practice. Stacks, queues, lists, trees, graphs, sorting,
searching, and recursion will be examined.
Prerequisite: CSC 1012.
Corequisite: MTH 1017.
Offered:
2003-2004.
This Fall 2003 section is:
CRN | Subj | Crse | Sec | Credits | Title | Campus | ||
Start Date | End Date | Days | Times | Bldg | Room | |||
27534 | CSC | 1071A | 0 | 4.00 | Data Structures | Oakdale | ||
Feb 01, 2001 | May 17, 2004 | TR | 04:00 pm - 06:00 pm | KSC | 102A | |||
Instructor(s): Herbert J. Bernstein | ||||||||
Note that, in general, Dr. Bernstein will be at the Oakdale campus on Monday, Tuesday, Wednesday and Thursday afternoons and many times late on Wednesday evenings for Computer Club meetings. Meetings at the Brookhaven campus are by appointment only. If at all possible, please use email to schedule meetings in advance to avoid conflicts with other students and other obligations of the instructor.
For more information see http://www.bernstein-plus-sons.com/.dowling/HJB_Contact_Info.html.
The first text has excellent explanations of data structures but presents examples in Pascal, a language no longer popular for Computer Science. The second text is not as clearly written, but provides a rich source of examples in Java. Students will have to work with both text books, and are advised to bring both required texts to every meeting of the class to help them in answering the daily quiz questions.
This three volume set is an essential reference for any serious computer scientist. There will be no specific assignments from Knuth, but reading it may well help in understanding the required texts and the lectures.
Keeping clear written records is an important part of working in any scientific field. It is particularly important in Computer Science, where there are very complex, non-obvious decisions to make.
Students are expected to have their text books no later than the second week of class.
Attendance will be taken at all class meetings. All absences must be explained in writing (or via email). Students who miss 2 or more lectures must meet with the instructor to review their progress in the course. Midterm warings will be issued for students who miss 2 or more lectures before the midterm. Grades will be reduced for unexcused absences (see grading policy, below).
All students will be required to actively particpate in classroom discussions and to work problems at the board in class. Many assignments will be given for drill. All completed assignments must be posted on the web on the due date. Students will be required to "turn in" some of those assigments for grading by sending an email with the appropriate URLs. Students will be given daily brief quizzes related to, but not necessarily identical to, earlier assignments. Quizzes will often be based on the assigned readings, asking questions that have not yet been discussed in class. This is intended to encourage students to do the assigned readings. Even though the quizzes are open-book quizzes, you are more likely to be able to find the answers if you have done the readings before coming to class. There will be no makeups for these quizzes.
Every student will be required to maintain a contemporaneous hardbound notebook recording all significant activities related to this course. The notebook should record the major topics discussed, questions about the subject matter of the course and the answers when they are found, and all activites related to the course project (see below). The instructor will borrow the notebooks several times during the year and grade them for thoroughness, clarity and relevance to the course. Only the portions of the notebook that are dated, written in the student's own hand and on the permanent pages of the notebook will be considered in the grading.
Students will be required to complete a course-related programming project, which is to be done as a group programming effort. The "default" project is to create a package to perform arithmetic on polynomials with rational coefficients.
An open-book midterm and an open-book, open computer/calculator final will be given. In general, no assignments will be accepted late and no makeups will be given for missed quizzes or examinations. Requests for exceptions to this policy will be considered only for the most pressing reasons (illness requiring hospitalization, death in the family, reserve call-up, etc.), must be submitted in writing in a timely manner, and will be granted only if the instructor has sound reason to believe that the student is highly likely to master the material of the course within the current semester.
The syllabus and the course objectives that follows are derived in part from the IEEE/ACM "Computing Curricula 2001 Computer Science" - Final Report - (December 15, 2001) by the Joint Task Force on Computing Curricula, IEEE Computer Society, Association for Computing Machinery.
Each student will be expected to display a solid grasp of data structures by working on a suitable project. Students are encouraged to work in groups. Each member of each group will be required to explain to the class some major aspect of the group project, and to respond to questions from the class and from the instructor on the project. Students may propose their own project no later than the 4th week of class. If no project is proposed, the instructor will assign a project involving the design and creation a program that will accept polynomials with rational coefficients and perform arithmetic operations on them.
Some students may not have an adequate preparation in programming to undertake the homework assignments and the course project. There will be an ungraded diagnostic quiz given during the first lecture to help students understand how well prepared they are for the work in this course. If you know java, C or C++ and can sucessfully write moderate-sized programs in one of them, you should be able to cope, but you will have the least trouble if you are well-grounded in java.
If your programming preparation is weak or nonexistent or your preparation is in Pascal, Fortran or some other language that is very different from java, C and C++, you may have serious difficulty doing the assignments for the course. In that case, intensive tutoring and/or delaying taking this course until your programming skills are better aligned to the demands of the course may be worth considering. Please discuss the matter with the instructor.
Please consult the course assigments page frequently.
Using VNC via SSH: vnc.html
If you're interested in joining with your fellow students in developing and maintaining a web site, or pursuing your exploration of computer hardware or software, you might want to consider joining the Dowling Computer Club. Just follow the link for further details:
Dowling College Computer Club Web Site