Meetings: Tue & Thu 3-4:15, Hackerman B17
Instructor: Professor Gregory Hager
Office: Hackerman 121, Ph 410 516 5521
E-mail:
hager -at- cs.jhu.edu
Office Hours: by appointment
Course Web Page:
http://www.cs.jhu.edu/~hager/Teaching/cs226
This is a VERY important source of course information and must be checked
regularly!!
Prerequisites: Students are expected to be proficient in a high level object oriented programming language, preferably Java.
Text: Mark Allen Weiss, Data Structures and Algorithms Analysis in Java, Pearson Education, 3rd edition, 2011.
Course Content: The goal of the course is to teach fundamental data structures, which allow one to store collections of data with fast updates and queries. We will cover most of chapters 1-9, and parts of 10-12 as time permits. A detailed schedule will evolve as the semester progresses. Key topics will definitely include: JAVA refresher & generics, analysis tools, linked lists & iterators, stacks and queues, search trees, maps, hashing, priority queues, sorting, graphs.
Grading: Students will complete written homework assignments, programming projects, a midterm and a final. Each will be assigned a point value. Homework and program averages will be computed as total points earned divided by total points possible. These grading components will be weighted as follows. Letter grades for the course will be subject to my evaluation of your overall class performance. Please keep your own record of your grades so that you will know your standing in the course and can double-check my records. All grades will be available on webCT.
Programming Logistics: All programming assignments must compile with the standard Java compiler, which is freely available to download for any system. NO CREDIT WILL BE GIVEN FOR CODE THAT DOES NOT COMPILE! This means that all components of a program must compile together or you will not receive any credit for any of them!! Many students prefer to write their programs on their own computers. However, students will be given access to the CS Lab in NEB 225 in order to meet with course assistants and will have the option to use either a unix or windows account from the CS department. If you don't already have an account or access, you must fill out a request form and return it to me. You will then need to see Steve in NEB 226 (hours posted on the door) with your Jcard in order to get it validated. You are welcome to use any development environment you like, as long as it uses the standard java compiler. Popular choices are jGRASP and Eclipse.
Late policy: No late homework or programs. If a program is not working perfectly, turn it in as is with detailed comments as to which parts are complete, and which are not. NO CREDIT WILL BE GIVEN FOR CODE THAT DOES NOT COMPILE! Exceptions for illness will be given only by Prof. Hager (not by any TAs). Exceptions for poor planning will NOT be given. Now is a good time to develop incremental coding skills, so that you always have a working program to turn in, even if parts are incomplete.
Collaboration: You must solve your written assignments without consulting other students. Some programming assignments will be individual, others will require colloboration with a specified partner or small team. For homework help you may only consult the instructor, the teaching and course assistants, or tutors. You must abide by the Computer Science Academic Integrity Code (see below), as well as the University's Ethics Code.
Miscellany: You are expected to attend and actively participate in all class sessions. Inevitably, students who do not attend regularly do poorly on tests and assignments. You are responsible for all material presented while you are absent. If you have trouble or need extra help, don't hesitate to contact a teaching assistant or me. Please don't wait until you're hopelessly behind.