| Assignments | Contact Info | Computer Club |

27534 CSC 1071A - 0 - Data Structures

Spring 2004
Tuesday, Thursday, 4:00 pm - 6:00 pm , Kramer Science Center 102A
Herbert J. Bernstein ( )



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.

Catalog description:

CSC 1071A. Data Structures

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  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 


Office Hours:

Students in the Tuesday/Thursday afternoon class who cannot attend the early afternnon office hours should make an appointment with Dr. Bernstein by email or during a class break to talk at a mutually convenient time.

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.

Required Texts:

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.

Recommended Reading:

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.

Required Supplies:

A hard bound laboratory notebook. An inexpensive back-and-white covered composition book will suffice but it must be bound (not looseleaf).

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).

Grading Policy:

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.

Course Syllabus

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.

Course Objectives


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.

Review of Java

Click here for a review of java.

Secure Remote Access with GUI

Using VNC via SSH: vnc.html

Dowling Computer Club

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

Updated 2 February 2004.