CISC 3130
Data Structures
Syllabus
Text
Here is the web page of the text for the course:
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
- Overview of Data Structures
- Preliminaries
- The Classical Data Structures
- First Implementations
- Generics, Exception-Handling, Memory Management, and Other Features
- Robust Implementations
- Applications
- Object-Oriented Programming
- The Java Collection Framework
- Algorithmic Analysis
- Efficient Implementations
- Searching and Sorting
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:
- Go to turingscraft.com
- Click "Register" and follow the instructions
- When you fill out the forms, use your Best Email Address and Actual Name
- When asked for a Section Access Code, use the one you will receive from me in an email a few days before classes begin.
- To Login: Same URL, click "Login" and use your username (email) and password
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:
- you should make sure you do the assignments (and by 'you', I mean you)
- reviewing the assignments is a great way to study for the exams
- when calculating the time it will take you to complete the exam, I will be taking into account that
you have seen and coded many of the exam's questions before (as opposed to 'new' questions which would
take longer to answer).
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):
- If you are absent from the first exam, the grade on the second exam will be used in its place.
- If you are absent from the second exam, the grade on the final will be used in its place.
- If you are absent from both exams, you cannot pass the course and should withdraw.
Grading:
- 20% Labs
- 25% Each of two exams
- 30% Final exam
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:
- The student is absent from the final, but is passing the course in all other respects
- Evidence must be presented documenting the reason for the absence
- The INC may then be changed once a final is taken
- The student is passing the course and has completed most, but not all of the requirements.
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.
|