|
Data Structures in Java Fall 2008 |
|
[Course Requirements] [Policies] [Syllabus and Homework]
DescriptionData types and structures: arrays, stacks, singly and doubly linked lists, queues, trees, sets, and graphs. Programming techniques for processing such structures: sorting and searching, hashing, garbage collection. Storage management. Rudiments of the analysis of algorithms. Taught in Java. (Not intended for Computer Science majors.)(Courtesy CS Bulletin) Instructor: David Elson
TA #1: Thomas Berg
TA #2: Vivian Wang
TA #3: Vamsi Narla
TA #4: Nipun Arora
Lectures
Prerequisites
Important Web Pages
Grade Breakdown
More formally, you're invited to write one or two questions about the lecture on a sheet of paper and give it to the instructor after class. We'll keep these sheets, and they will count positively toward your grade in case you are on the edge. Be sure to write your name if you want the credit (though anonymous feedback is also valuable). Required Textbook
Homework Style PolicyThere are 5 assignments. Each has a theory component and a programming component.The programming component must be written in Java alone, and it must compile on a standard Cunix (CUIT) account, under Java 1.6. Programming submissions that do not compile get a zero. (On the other hand, partial credit will be given if a program compiles but is incomplete.) Code must be well documented with comments; not only is it an essential habit to get into, but in case the TAs need to track down a problem, it's going to keep you on their good side. Use descriptive variable names, and make sure indentation is correct (Eclipse has a "format source" command to fix all indentation). The output format of your programs should match the sample output format given for each respective assignment. Points will be deducted for serous deviations from the output format. Each programming submission must include a README file with the following information: (a) The student's name and email, (b) the assignment number, (c) a general description of the program, (d) a complete listing of each file and its purpose, (e) usage instructions (i.e., how to compile and run the program), (f) and additional comments as needed. The name of the main "driver" class, and the usage in which it can be run from the command line, should not deviate from the description given in the homework assignment. In other words, the TAs should be able to run your program using the exact same command as in the sample output. Do type and range checking on the arguments. Use multiple classes as needed. Any idea or concept that has associated data that differs from instance to instance should be modeled as its own class. Class structure will typically be suggested by the assignment. Do not do everything in the main() function of your driver class. Instead, move to the constructor or to other functions. Homework Submission PolicyTo submit your homework, follow these steps:
Homework Timing and Lateness PolicyThe theory component of each homework is due at the beginning of class on the due date, in 833 Mudd. The programming component is due at 12:01 AM on the due date, that is, well before the beginning of class.Each student is given 5 late days at the beginning of the semester. These late days may be used for any homework assignment. When one late day is applied to a homework, both theory and programming components are due at 5:40 the day after the due date (24 hours after the beginning of lecture), with no score penalty. If a second or third late day is applied to an assignment, the assignment is still due at 5:40 PM on the appropriate day. For days where there is no class, take the theory portion to the instructor's office (702 CEPSR) and slide it under the door. Every weekday is counted in the late day policy. Weekends and University holidays are automatically given. For example, if an assignment is due on Thursday, you can turn it in on Friday at 5:40 with one late day, or Monday at 5:40 with two late days. Late days cannot be prorated -- if a programming or theory component is turned in only a few hours late, it still counts as a late day. Once the three late days are expired, late homework receives a score penalty of 10% for each day late. This, too, is rounded up to the nearest day. Extra credit, if any, is also penalized accordingly. The lateness policy is not broken down across programming and theory components; if one is on time but one is late, the entire assignment is considered late. The number of late days given for an assignment is thus the maximum of theory and programming late days. The late days are not designed to be "procrastination days" but, rather, extensions available in the case of conflicts such as family obligations, extracurricular conflicts, and illnesses. Students should take care to not spend them frivolously. Special circumstances should be discussed with the instructor as soon as possible. Extra credit may come up periodically and will be awarded to your score outside the curve. Homework Grievance PolicyIf you believe that a TA has given you an unfair grade on an assignment, your first step is to contact the TA and present your case. If you and the TA are unable to come to an agreement about a grading issue, present your case to the instructor in writing. (Writing does not include e-mail.) Mention all the circumstances surrounding the issue and why you believe the grade should be adjusted.Academic Honesty PolicyThis is an important course in your CS education, and it will introduce you to both practical tools and ways of thinking that you will use often in the field. If you need help, feel free to make full use of lectures, office hours, and the Web board. However, both programming and theory assignments are for individual work only, not for pairs or groups, and your grade should reflect your own work only. It's acceptable to discuss homework questions with fellow students at a high level, but it is not acceptable to copy another student's answers, collaborate on writing specific answers or programs, or turn in multiple copies of work as though done individually.Copying or paraphrasing homework in part or in whole, whether theory or code, or allowing your own work to be copied or paraphrased, in part or in whole, is not allowed, and all parties involved will receive a zero for the entire assignment (both theory and programming). Posting homework answers, or significant portions of answers, on the Web board is also not allowed. Copying or paraphrasing during the midterm or exam will result in a zero for the test and referral to the Dean's office. Repeated infractions may incur additional penalties. (If you haven't already, please read the Department policy on academic honesty, which applies to this course.) Open Door PolicyFeel free to make use of our office hours, both the instructor and the TAs. Content-related questions and comments or suggestions about the course itself are both welcome.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||