CSCI-UA 102 (Data Structures)

Textbook(s)


Data structures books

Data Structures and Algorithms in Java, 6th edition,
Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser,
Required, earlier editions of the book should be fine.
Open DSA

Highly recommented - available online
OpenDSA is an open source project whose goal is to provide online course materials for a wide range of Data Structures and Algorithms courses. It is currently funded by two National Science Foundation grants: TUES program grant DUE-1139861 and EAGER program grant IIS-1258571 .

Java reference books

Introduction to Java Programming, any edition
Daniel Liang,
This is your cs101 textbook. It is a good resource for refreshing the Java material.
Think Java: How To Think Like a Computer Scientist,
Chris Mayfield, Allen Downey,
Optional Java resource
Open book - available online
Java, Java, Java: Object Oriented Problem Solving,
Ralph Morelli, Ralph Walde,
Optional Java resource
Open book - available online

Prerequisites


Passing CSCI.UA.0101 with a grade of C or better.

You are expected to know and remember the material from CSCI.UA.0101 course. If you took the course a few semesters ago and/or do not remember parts of the material, start reviewing it during the summer/winter break.

If you took an equivalent of this course at a different school, you need to make sure that you are familiar with Java. We assume you know enough Java to write fairly large programs right at the beginning of the semester.

Grading


Your grade will be based on:

Grades will be determined using the following scale:

    A 	95-100
    A- 	90-95
    B+ 	87-90
    B 	83-87
    B- 	80-83
    C+ 	76-80
    C 	72-76
    D 	65-72
    F 	less than 65

The grade of Incomplete is reserved for students who, for legitimate and documented reason, miss the final exam. The grade of Incomplete will not be given to student who started falling behind in class. Those students should withdraw from the class or switch to Pass/Fail option.

Absences (excused and unexcused)


I generally do not take attendance.

The missed quizzes and recitation activities cannot be made up. Four lowest scores on quizzes and recitation will be dropped at the end of the semester. This is to account for any excused or unexcused absences.

The exams can be made up only in case of an excused absence with appropriate documentation.

If you will miss an exam due to a religious observance, please familiarize yourself with University Calendar Policy on Religious Holidays and talk to me well in advance to come up with alternative arrangements.

Recitations


Recitations for the course are used to answer your questions regarding the material and posted projects.

During recitations you will also get some hands on practice by participating in (usually group) activities. It may be a good idea to bring a laptop to recitations (although it is not a requirement since you will only need one laptop per group).

Assignments


There will be two different types of assignments in this course:

  1. programming projects, and
  2. do not hand-in homeworks (DNHI).

Programming projects (30% of your final grade) will be given on a regular basis. In general, they will be due one-two weeks after they are assigned. They will require you to write and, often, read significant amount of code.

No programming projects can be accepted after the last day of classes.

Late and missed programming projects:

For each project you will have a 5 hour buffer window after the due date. You can submit or resubmit the project during this time without any point penalty. The late project submissions lose 30% of their value for each day they are late. If you submit the project 5-24 hours late, the maximum score is 70 (instead of 100). If you submit the project 24-48 hours late, the maximum score is 40 (instead of 100).

Broken programming projects:
If you hand in a program that does not compile or crashes when it is run, you will get a grade of zero on it. As you are working on your code, make sure that it compiles and does what you expect it to do. Test frequently, not only after you write hundreds of lines of code.

Do not hand-in homeworks (DNHI) will be given to encourage you to practice the material that we discuss in class. The problem sets will be posted as separate homeworks or inicated in the lecture notes. They will serve also as review questions for exams.
Recitations are the good place to have them discussed!

Academic Integrity Policy


I use MOSS (a system for detecting software plagiarism) to make sure that the submitted assignments are not duplicates of one another. Your code has to be your own.

I follow the department's academic integrity rules.

In short, it is fine to talk to other students about your ideas and your programs, but it is not fine to work together on assignments or copy someone else's assignment. You cannot copy other people's work without giving them a proper credit (and part of your grade).
Any sharing or copying of assignments will be considered cheating. By the rules of the College of Arts and Science, I am required to report any incidents of cheating to the department.
If you have any doubt if something that you are doing qualifies as academic dishonesty, talk to me!

So what is cheating?

What is NOT cheating?

Exams


There will be a midterm and a final exam. All exams are cumulative.

Missing an exam: There will be no make-up exams. Failure to take an exam counts as a zero grade on that exam. The only exception to this rule is for students who have a legitimate serious medical or personal emergency (documented). These students need to talk to me as soon as possible (trying to excuse an exam absence three weeks after it happened will not work).

Topics Covered


Additional topics (time permitting):

For detailed schedule, see the Daily tab of this page.

Academic Email Etiquette