CISC 3130
Data Structures
Syllabus


Text

Here is the web page of the text for the course:

Think Data Structures, 2nd edition, Downey

I stumbled across this text at the end of this past semester, and for the most part, the author's philosophy mirrors mine — almost down to the order of presentation,. It is highly readable, informative, and best of all, free (though you can buy a hardcopy or Kindle version from Amazon for under $30).

The previous (and more comprehensive and traditional) text is : The text is Data Structures and Abstractions with Java, 5/E, Carrano & Henry. You can find more information about this text here I find this text to be the best of all the 'mainstream' data structures book, but not as informative as the Downey text. It's a good reference for data structures once you are familiar with the basic material covered in this class.

Topic Overview

Class Calendar

The Class Calendar is the main resource for all material related to the course: lecture notes, exams, lab, and administrative dates, etc. It is the 'official' repository of all such information for the course.

Lectures

You are expected to attend all lectures; simply reading the lecture notes will probably not provide sufficient information for you to perform well on the exams, or complete the assignments. As with everything else, the lecture notes can be found on the Class Calendar

Labs

Although this is a course in computer science, there is a substantial amount of programming in the way of data structure implementation and applications of the various data structures we will be covering. While you should develop your code in your choice of IDE, you will be submitting your working results to CodeLab — an online, interactive programming exercise system — that will also test your code, and provide (hopefully) informative feedback as to any problems or issues. There may also be an occasional non-full program exercise that you may be asked to write; I will often provide driver code, so you can develop it in your IDE as well (or in that case, you can usually simply submit it to CodeLab directly). You can find more about CodeLab here

CodeLab Information

To Register:

Grading of Assignments

When you submit an assignment to CodeLab, it checks that your code is correct, by running it against various test cases. If your code fails, CodeLab will often provide feedback or hints to help you correct your mistake.

For several of the assignments, I may mark the exercise as 'For Approval', which means that I will be performing a final review and check of your code after CodeLab has determined that it passes the test cases. This 'instructor check' looks for style, format, and documentation of your code — i.e., things that the checking engine does not verify. I will then approve or deny your submission; in the latter case that means you must fix your code based on my comments, and resubmit. Once approved, you are done with the assignment.

Your score on assignments will be straight percentages of the number of labs completed.

The labs are assigned deadlines which are posted within CodeLab as well as on the Class Calendar. We will talk more about deadlines in class.

You can find out more about CodeLab's feedback, and Approval Exercises on the Labs Home page here.

Multiple Choice Exercises

I have upon occasion (this past semester being one of them) included multiple choice questions on the exam, and while students in advance prefer them, they often prove to be quite challenging. This course contains a substantial amount of conceptual information, and while many students may 'master' the practical portions of the class, they are often fuzzy about the underlying concepts and their implications. As such, I am going to try to compile a substantial set of multiple choice questions that will be placed in CodeLab for you to work on. They are not hard, nor adversarial in nature; i.e., you can try as many of the choices as you wish (there will usually be four) until you get it right. I will try to add short feedback comments for the wrong answers, but you can always ask me about any of them in class; in fact. I urge you to do so.

The Exams and Assignments

A substantial portion of of each exam will be taken directly from the assignments and multiple choice problems. This means several things:

The Exams

The exams will be on paper, closed book. Please make sure to come on time, and place all books, paper, phones, watches in your bag. You should go to the bathroom prior to the exam. If you have an accommodation from Disability Services, please inform me of that in advance of the exam.

The format of the exam will be multiple choice questions (primarily taken from the ones assigned in CodeLab), as well as questions that involve writing and/or analyzing code, and answering conceptual questions about the material covered. There will also be exercises in which you work out various algorithms in class on presented data (a simple example of this would be to carry out a linear or binary search on a presented array and value). I will be providing some sample questions before the exam.

Missing an Exam Other Than the Final

There are no makeup exams. If you miss an exam, you must provide some form of written reason (simply deciding not to take the exam is not an acceptable reason):

Grading:

Remember, you must receive a C or better to continue onto any course for which this course is a prerequisite.

Incompletes (INC)

Paraphrasing from the Bulletin (page 57), a grade of incomplete (INC) may be assigned at the discretion of the instructor under one of two conditions: For the past several years, students have been permitted to withdraw from a course without grade penalty up to the last day of class. By that time, you have had sufficient exam and assignment feedback to have some idea of your standing. Please do not ask me to give you an INC because you have not completed your assignments.

If an INC is not resolved, a grade of FIN is eventually assigned.

The faculty and administration of Brooklyn College support an environment free from cheating and plagiarism. Each student is responsible for being aware of what constitutes cheating and plagiarism and for avoiding both. The complete text of the CUNY Academic Integrity Policy and the Brooklyn College procedure for implementing that policy can be found at this site: http://www.brooklyn.cuny.edu/bc/policies. If a faculty member suspects a violation of academic integrity and, upon investigation, confirms that violation, or if the student admits the violation, the faculty member MUST report the violation.


In order to receive disability-related academic accommodations students must first be registered with the Center for Student Disability Services. Students who have a documented disability or suspect they may have a disability are invited to set up an appointment with the Director of the Center for Student Disability Services, Ms. Valerie Stewart-Lovell at 718-951-5538. If you have already registered with the Center for Student Disability Services please provide your professor with the course accommodation form and discuss your specific accommodation with him/her.