CS 211
Data Structures
Spring 2014


CS211 is the third course in the majors track for computer science. The prerequisite is CS201. This course is programming-intensive.

This course will teach you core data structure concepts and will provide you with further Java programming experience as you realize them in code. You will learn about the classic data structures, from lists and queues to trees and graphs. You will use data structures to solve problems in other areas of computer science, such as artificial intelligence and programming languages.

Learning data structures and how to choose among them to effectively organize the data of an application is fundamental to the computer science. To understand when one data structure will outperform another, some basic tools used in the analysis of algorithms will be introduced.

Instructor

    Elodie Fourquet
Office     Clapp 226
Phone 538-2241
Email efourque   mtholyoke.edu
Office Hours
Mon. 12:30 - 1:30
Wed. 2:30 - 3:30
Thu. 4:00 - 4:50
or by appointment

Teaching Assistants

Office                Clapp 222A      CS Conference Room
Office Hours
Mina Khan Sun. 8:00 P.M. - 10:00 P.M. (1st hour for concepts review)
Shehzeen Hussain Mon. 4:00 P.M. - 5:00 P.M.
Anne Frederiksen Tue. 6:00 P.M. - 8:00 P.M.
Monica Chelliah Wed. 7:00 P.M. - 8:30 P.M.
Mina Khan Thr. 7:00 P.M. - 9:00 P.M.
Shehzeen Hussain Thr. 5:00 P.M. - 6:00 P.M.
Anne Frederiksen Sat. 6:00 P.M. - 8:00 P.M.


Meeting times

Lectures Tue. & Thr. 2:40 - 3:55 Kendale 303
Fourth hour Fri. 3:15 - 5:00 Clapp 202

Websites

Course Webpage http://www.mtholyoke.edu/~efourque/cs211
Moodle https://moodle.mtholyoke.edu/

Course Objectives

Textbooks

The required textbooks are

Course Content

Grading

Assignments
55 %
Midterm
18 %
Final
22 %
Participation
5 %

In this course it is extremely important to keep up to date with

The textbook readings prepare you for both the assignments and the examinations.

The most successful approach to this course is to work regularly on readings and assignments. Don't put things off until you feel pressured by a deadline. Ask questions in class, on Moodle and during office hours.

Policies

Attendance
Assignment submission

Assignments must be handed in on the day they are due. You will lose 10% of the assignment's value for each day that it is late. The first late day is the 24 hours starting when the assignment is due, the second day the next 24 hours, and so on.

In addition you will usually give a short demonstration of your programming assignment during the fourth hour. You should rehearse the demonstration as the presentation will influence your grade. You will receive immediate feedback on your work. Your assignment work will receive a 5% penalty if you do not present it before the end of the specified fourth hour.

You are encouraged to write a design document for each assignment as you should have a plan before starting to code. Bring your design document when you come to ask questions of the TAs or of the instructor. However you are not required to submit your design document. You make it because it helps you and not for a grade: you can received 100% on a assignment without having submitted a design document. If you wish to submit a design document you have to do so before the start of the class that follows the one in which an assignment was first announced (either bring a print-out or submit electronically on royal assignment folder a file called username_design.pdf or username_design.txt). In the case your assignment receives a grade below 75%, your design document will be considered to gain up to 5%.

Your work on all assignments must be the work of the individual student unless otherwise noted.


Participation

Your participation grade will be based on participation in class, in the lab and on Moodle. By doing the textbook readings you are expected to be able to participate in lecture discussions by volunteering answers and asking questions. By doing the class activities you are expected to contribute with comments, questions and/or solutions.

We are going to be using Moodle's forum for our class discussions outside of class. Rather than emailing questions to me, you are encouraged to post the questions on Moodle's forum. On Moodle, you should feel free to ask questions and to respond to your classmates questions (and to share links to documentation and tutorials when appropriate). Replying and giving hints on Moodle's forum to a student who asked for help is useful to the rest of the class. I encourage collaboration through Moodle and doing so will positively affect your participation grade.

Announcements related to issues that arise between class meetings will be made on the News forum on Moodle. In particular, clarifications of programming assignments, changes to due dates, etc. will be posted on Moodle. You are responsible for checking Moodle and the course website on a regular basis.


Collaboration

You are allowed to discuss concepts related to programming assignments with classmates, unless explicitly forbidden (as in the warm-up assignment). However, you are expected to do your own work: any work that you hand in must to be entirely your own.

Submission of work that is not your own is considered a violation of the Honor Code. The penalty for such a violation is a zero on the assignment. In accordance with the student handbook, all such violations will be reported to the Dean of Students.


Using the Web and Other References

The Web is a marvelous source of information. However, it is not supposed to do your homework for you. First, many online posters don't know what they're talking about, so be careful what you use. Second, in hunting for an example of how to do something, you may on some occasions find a complete or close to complete solution of an assigned problem. Copying code and handing it in is plagiarism.

Assignments are your individual work, while you are allowed to use code examples provided in class or in the textbooks (as long as you attribute it to the source),

If you use more than a single line of code that you did not write on your own, attribute it to the source: all of the resources you used to help you with an assignment must be cited. The best practice is to specify all the help you received in your readme: who or which resource (specific pages) helped you and for which part of the problem. If you work in a study group, the names of your study partners must be included on all assignments.

Failing to appropriately cite all the resources used to complete an assignment is a violation of the Honor Code.

The library provides an online tutorial on the proper use of sources as well. If you have any doubt, please ask.

Caveat

Everything on this syllabus is subject to change. Changes will be announced in class and updated in this online syllabus.