The course meets 2:30-3:20 pm Monday, Wednesday, and Friday at the Main Library (SHAM LIB). Each student is also registered for and will attend a weekly discussion section conducted by one of our TAs.
Benton McCune, email:email@example.com
In programming, one often needs to store, query, and update large amounts of information. There are usually many ways in which a program might do this information processing. The choice of the right data structure is often more important than the hardware available. Your choices could determine whether your program is efficient or even works at all. It is at the heart of good programming.
We will begin in a modest way, by first acquiring familiarity with the constructs in Java, the programming language we will use. We will use the NetBeans Integrated Development Environment (IDE). This is free and you can download it bundled with Java. You can download it here.
We will examine several data structures. Among them will be stacks, queues, lists, trees, priority queues, hash tables, and binary search trees. Each of these is a good way of processing information in some contexts, as we will see. Hopefully we will have time to cover graphs and basic algorithms on graphs as well. Only through learning these basic data structures does one develop the ability to choose the right data structure for the right problem. The aim of the course is to give you a solid, theoretically grounded understanding of basic data structures. The hope is the work that you put in this course will increase your sensitivity to the importance of choosing the right data structures as well as your ability to choose them when confronted with new problems. The foundation laid here should serve you well in future coursework and programming endeavors.
For our textbook, we will use "Data Structures and Algorithms in Java", by Goodrich, Tamassia and Goldwasser, ISBN-13: 978-1118771334 .
Computer Science I (22C:016). Discrete Structures (22C:019) is a corequisite if not taken as a prerequisite.
The grading will be based on several homework assignments and some quizzes (20%), two in-class midterms (20%), and the final (20%). The remaining 20 percent will be the highest of your homework/quiz average or your exam average.
Roughly speaking, there will be a homework every week, and I will try to make these due on Monday. This way, you may make greater use of the TA discussion sections. Most of the homework will involve programming in Java. The quizzes will usually be in discussion rather than lecture and may be announced or unannounced. A missed quiz will result in a zero and there will be no accomodation outside of a documented emergency.
The policy on late homework is that you have a quota of three days for the entire semester that you may use for late submissions. So for example, there will be no penalty if you submit the fifth homework a day late, the seventh two days late, and the rest of the homework on time. Once you use up your quota of three days, any homework submitted late will not be accepted and you will get 0 points for that homework.
When you submit a homework X days late, your quota gets decreased by X irrevocably. You can only be late by an integer number of days -- if you submit 10 hours after the deadline, for example, your quota is depleted by one day.
The first midterm exam will be on Wednesday, February 25th. The second midterm exam will be held on Wednesday, April 8th. The midterm exams will be held in our classroom at our regularly scheduled time. The final exam will be given on Thursday, May 14th 5:30 pm at VAN LR2.
Section Time Location TA Email A01 8:30-9:20 Th 31 SH Charlie Shi firstname.lastname@example.org A02 9:30-10:20 Th 213 MLH Charlie Shi email@example.com A03 9:30-10:20 Th 210 MLH Shivam Tomar firstname.lastname@example.org A04 11:00-11:50 Th E138 AJB Aishwarya Murali email@example.com A05 12:30-1:20 Th 116 MH Aishwarya Murali firstname.lastname@example.org A06 5:00-5:50 Th 346 JH Shivam Tomar email@example.com
Office hours are below. Note that you can also meet any of us at times other than those listed below by appointment.
Name Time Location Benton 10:00-12.00 Tue, 3:30-4:30 Wed. 101B MLH Charlie 11:30-12:30 Wed, 10:30-12:30 Fri. 301 MLH Shivam 3:30-5:00 & 6:00-7:30 Tue 301 MLH Aishwarya 3:30-5:00, Mon. and Wed 301 MLH
Your TA will be the best person to contact for questions and programming help. If you have any problems with regards to your coursework, please do not hesitate to contact them. You are also welcome to contact me with course related questions. I will attempt to be prompt in my replies. I would strongly encourage you to always include CS:2230 within the subject of your message.
The main source of information for the course will come through this website. Homework submission and grades will done through ICON.
Please follow this link for information on general University policies.
We will keep a brief summary of what we cover each week here.