Sei sulla pagina 1di 4

CS 234 - Data Types and Structures

Fall 2011 Course Outline

Last revised: September 12, 2011 Course website: http://www.student.cs.uwaterloo.ca/~cs234/ Course e-mail: cs234@student.cs.uwaterloo.ca Course newsgroup/message board: uw.cs.cs234 Please note that any term-specific content of this document is decided tentatively at the be- ginning of the term, and is subject to change. See the course website for current, up-to-date information.

Formal Undergraduate Calendar Description

Top-down design of data structures. Using representation-independent data types. Introduction to commonly used data types, including lists, sets, mappings, and trees. Selection of data representa- tion. Prerequisites: One of CS 116, 126/124, 134, 136, 138, 145 taken fall 2010 or earlier, CS 146 Not open to Computer Science students. Antirequisites: CS 240

Objectives

To study efficient algorithms and data structures in a language-independent setting. To become familiar with a number of standard data structures and algorithm design approaches. To gain additional experience in program design and implementation, and to appreciate the formal analysis of algorithms. This course combines many of the highlights of CS 240 and CS 341, but does not treat topics as thoroughly. The course material is core to the subject with relevance to every subdiscipline. Upon com- pletion of the course, students’ understanding of its major themes will help them understand the importance of giving careful thought to how data is organized and represented. This has applica- tions well beyond programming and the use of computers.

Intended Audience

This course is aimed at students who are not CS majors but are interested in continuing their study of computer science beyond first year. It is intended to be of benefit to those wishing to understand the source of potential improvements and efficiencies in programs. Most students will have previously taken CS 116 or CS 136. This is a required course for all CS minors. It is also valuable for students considering computer science as a second teachable.

Course Delivery

Class attendance is critical. Course delivery will consist mostly of traditional lectures on a white- board with occasional use of slides and technical demonstrations. There are no labs or tutorials. The implementation language of choice is Python. All assigned work will be individual.

1

Fall 2011 Weekly Calendar

Lectures are Tuesdays and Thursdays from 10:00 to 11:20 in STJ 3014. Related sections of the text are given in parenthesized italics.

Week 1 (Sept 12): course introduction, Python introduction/review [Appendix A]

Week 2 (Sept 19): abstract data types and arrays [Chapters 1, 2, 3]

Week 3 (Sept 26): algorithm analysis [Chapter 4] (Assignment 1 due Tuesday, September 27 at 09:30)

Week 4 (Oct 3): linked lists [Chapters 6, 9]

Week 5 (Oct 10): ADT Stack, ADT Queue, ADT Priority Queue [Chapters 7, 8, 13] (Assignment 2 due Tuesday, October 11 at 09:30)

Week 6 (Oct 17): sorting and searching [Chapters 5, 12]

Week 7 (Oct 24): hashing [Chapter 11] (Assignment 3 due Tuesday, October 25 at 09:30)

Week 8 (Oct 31): search trees [Chapter 14] (Midterm on Thursday, November 3 16:30-18:20)

Week 9 (Nov 7): self-organizing lists, external memory model [not covered in text]

Week 10 (Nov 14): graphs, graph data structures, graph search [not covered in text] (Assignment 4 due Tuesday, November 15 at 09:30)

Week 11 (Nov 21): graph algorithms [not covered in text]

Week 12 (Nov 28): specialized algorithms and data structures [not covered in text] (Assignment 5 due Tuesday, November 29 at 09:30)

Students are expected to check the appropriate UW websites for details concerning final ex- aminations (http://www.registrar.uwaterloo.ca/exams/finalexams.html) and various course drop deadlines (http://quest.uwaterloo.ca/undergraduate/dates.html).

Grade calculation

Assignments: 25% – five assignments each worth 5% Midterm Exam: 25% – covering material of approximately the first half of course Final Exam: 50% – cumulative exam to be scheduled by the Registrar’s Office

There will be a way for current grades to be viewed through the course webpage and these should be checked periodically for accuracy.

2

Textbook

Data Structures and Algorithms Using Python by Rance D. Necaise is an optional text that will complement lectures well. Several copies are on reserve at the St. Jerome’s and DC libraries.

Course Staff Contact Information

J.P. Pretti

Shehroz Khan and Baiyu Li

(Instructor)

(Instructional Assistants)

Office:

STJ 3014 and MC 5101

Barbara Daly

(Instructional Support Coordinator)

Office:

DC 3111

Nika Haghtalab and Nan Hu (Teaching Assistants)

Instructor and IA/TA Office Hours (Please see course webpage.)

Course Work Policies

Assignment Submission

Solutions to written assignment questions must be submitted to the paper drop boxes located outside MC 4065. Electronic solutions to programming questions must be submitted electronically following instructions and links available from the course website.

Missed or Late Work

Assignments are due at the specified time. Late submissions will be marked for feedback but not earn any credit. Accommodations for a missed quiz, midterm or final exam will only be considered if documentation (e.g. verified Verification of Illness Forms (VIF), counselling letters, etc.) is promptly submitted by the individual to the Instructional Support Coordinator.

Obtaining Marked Work

Marked work will be first returned in lectures and then available from the instructor during office hours. Any student submissions that remain unclaimed by January 31, 2012 will be destroyed.

Remarking Policy

Bring concerns about the marking of submitted work to the attention of the instructor within two weeks of the date it was first returned to students.

Use of the Newsgroup

Use the newsgroup/message board for general questions about assignments, course material, or any other questions that may be of interest to other students in the course. Do not use it to discuss implementation details (such as code particulars) here.

3

Other Important Information

Academic Integrity: In order to maintain a culture of academic integrity, members of the Univer- sity of Waterloo community are expected to promote honesty, trust, fairness, respect and responsi- bility. Check the Office of Academic Integrity’s website, www.uwaterloo.ca/academicintegrity/, for more information. All members of the UW community are expected to hold to the highest standard of academic integrity in their studies, teaching, and research. This site explains why academic integrity is important and how students can avoid academic misconduct. It also identifies resources available on campus for students and faculty to help achieve academic integrity in – and out – of the classroom. Grievance: A student who believes that a decision affecting some aspect of his/her university life has been unfair or unreasonable may have grounds for initiating a grievance. Read Policy 70, Student Petitions and Grievances, Section 4, http://www.adm.uwaterloo.ca/infosec/Policies/ policy70.htm. When in doubt please be certain to contact the departments administrative assis- tant who will provide further assistance. Discipline: A student is expected to know what constitutes academic integrity, to avoid committing academic offenses, and to take responsibility for his/her actions. A student who is unsure whether an action constitutes an offense, or who needs help in learning how to avoid of- fenses (e.g., plagiarism, cheating) or about rules for group work/collaboration should seek guid- ance from the course professor, academic advisor, or the Undergraduate Associate Dean. For information on categories of offenses and types of penalties, students should refer to Policy 71, Student Discipline, http://www.adm.uwaterloo.ca/infosec/Policies/policy71.htm. For typ- ical penalties check Guidelines for the Assessment of Penalties, http://www.adm.uwaterloo.ca/ infosec/guidelines/penaltyguidelines.htm. Avoiding Academic Offenses: Most students are unaware of the line between acceptable and unacceptable academic behaviour, especially when discussing assignments with classmates and using the work of other students. For information on commonly misunderstood academic offenses and how to avoid them, students should refer to the Faculty of Mathematics Cheating and Student Academic Discipline Policy, http://www.math.uwaterloo.ca/navigation/Current/ cheating_policy.shtml. Appeals: A decision made or penalty imposed under Policy 70, Student Petitions and Grievances (other than a petition) or Policy 71, Student Discipline may be appealed if there is a ground. A student who believes he/she has a ground for an appeal should refer to Policy 72, Student Appeals,

Note for students with disabilities: The Office for Persons with Disabilities (OPD), located in Needles Hall, Room 1132, collaborates with all academic departments to arrange appropriate accommodations for students with disabilities without compromising the academic integrity of the curriculum. If you require academic accommodations to lessen the impact of your disability, please register with the OPD at the beginning of each academic term. See http://www.studentservices.uwaterloo.ca/disabilities for more information.

4