====== Computer Science II: Data Structures and Algorithms ======
~~NOTOC~~
CMPU-102 Section 01 -- Syllabus / Course Wiki
// Our course syllabus is subject to update throughout the semester. //
^ Course Wiki: | http://www.cs.vassar.edu/courses/cs102-200903/top ^ |
^ Section: | 01 ^ |
^ Professor: | [[people:walter:top|Jenny Walter]] ^ |
^ Office: | OLB 124 ^ |
^ Office Hours: | Tue & Thu 10am to noon, Mon 4 to 5 pm (and by appointment) ^ |
^ Phone: | 437 7449 ^ |
^ Email: | [[walter@cs.vassar.edu]] ^ |
^ Lectures: | Mon/Wed 1:30 to 2:45 pm, OLB 105 //and// Tue/Thu noon to 1:15pm, Intro lab ^ |
^ Labs: | Thurs, 3:10 to 4:25 pm //and// Fri 11 to 12:15 pm, Asprey Lab ^ |
**Text:**\\
M. Felleisen, M. Flatt, R. Findler, K. Gray, S. Krishnamurthi, and V. Proulx, //How to Design Classes,// Copies to be provided chapter-by-chapter in class (students are required to provide their own binders)
**Overview:**\\
This course begins where Computer Science I leaves off. We will study class-based program design and abstractions that support the creation of reusable software and libraries. The principles of object oriented program design, the basic rules of program evaluation, the relationship between algorithms and data structures, and the basic techniques for analyzing algorithm complexity will be discussed.
**Course Prerequisites:**\\
The course is suitable for both CS majors and non-majors. //It assumes that student has been introduced to the basic principles of program design and computation in CMPU 101//. The course also assumes a basic familiarity with the systematic design of programs, and a moderate degree of computational and mathematical maturity.
**Attendance:**\\
Please notify me //before// any classes or labs you know you will miss. Part of your grade (5%) is based on participation,
and you must be present to participate. Excessive absences tend to hurt one's overall performance
in this class.
**Advice:**\\
Keep up with the reading and assignments. Topics tend to build on one another. Missing one lecture
or lab may preclude fully understanding the next, so do your best to attend every class meeting.
Make arrangements with a classmate to copy material you miss when you can't attend. Please contact
or visit your professor if you have any questions, or if there is anything you would like to
discuss. If you can't make it to office hours, let me know and I can arrange another time. Email
is generally the best way to reach me. I will answer emails quickly (except that anything you send me
after 9 pm at night will //definitely not// be answered until the following morning.) My e-mail
address is given at the top of this page.
**Programming Style:**\\
Writing a program to solve a problem is in many ways analogous to writing an essay. In fact, both
acts share the notion of composition and involve a problem-solving process. Therefore, just as you
would in other classes, in this class you should strive to write elegant code. One reason for this
goal is because, over time, we need to read more code than we write, and so we write code with
this realization in mind.
**Coursework and Grades:**\\
The goal is to help you understand the principles of class based program design using an object-oriented programming language. Java-like syntax is used at the beginning of the semester so we can transition to standard Java later in the course and use our design skills to write applications. In lectures, labs, and programming assignments, we will use the Java programming language and pseudocode to describe the data structures and algorithms we study.
The course web
page will be updated regularly throughout the semester with assignments, deadlines, and other
important information. Please check it frequently. You will also need to check your email
regularly for important class announcements.
To reinforce the concepts we will be studying, you will construct programs of increasing
complexity and sophistication throughout the course. In a weekly 75 to 90 minute lab session we will
cover practical issues, such as how to use the computing environment and development tools, and
we will work on practical programming exercises designed to reinforce concepts presented in lecture.
To assess your understanding of the topics presented in this course, there will be frequent written
or programming assignments, weekly labs (no lab the week of Sept 28th, or during Oct break), two
midterms (dates already tentatively set--see below and schedule), and a final exam (during the final exam
period). If you are unable to attend class on the day of an exam, it is your responsibility to
notify the instructor in advance to make other arrangements. Late assignments will be penalized.
Your final grade for the
course will be calculated according to the following distribution of coursework:
^ ^^^^^
^ | 25%^ |Weekly Assignments ^ |
^ | 10%^ |Weekly Labs ^ |
^ | 5%^ |Class Participation ^ |
^ | 20%^ |Midterm 1 (Thu, Oct 8) ^ |
^ | 20%^ |Midterm 2 (Thu, Nov 5) ^ |
^ | 20%^ |Final Exam scheduled by registrar ^ |
^ ^^^^^
Based on the weighted average of your graded coursework, your letter grade will be determined
according to the standard 90, 80, 70, 60 cutoffs. For example, 90% or above is an A; 80% or above,
but below 90%, is a B; etc. Pluses or minuses may be added at the instructor's discretion.
**Academic Integrity:**\\
Don't cheat. Read //Originality and Attribution: A guide for student writers at Vassar College//.
Copying someone else's code without attribution amounts to plagiarism. Likewise,
give proper attribution for the help you receive. School policy dictates instructors must report
all suspected incidents of cheating to their department chair. Did you read the previous sentence?
Please don't put yourself or your professor in that position. When in doubt, ask your professor
before seeking any help from another source.
**Students with disabilities:**\\
Academic accommodations are available for students with disabilities who are registered with the Office of Disability and Support Services. Students in need of disability accommodations should schedule an appointment with me early in the semester to discuss any accommodations for this course that have been approved by Office of Disability and Support Services, as indicated in your DSS accommodation letter.