Download as pdf or txt
Download as pdf or txt
You are on page 1of 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-specic content of this document is decided tentatively at the beginning 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 representation. 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 ecient 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 completion 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 applications 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 rst year. It is intended to be of benet to those wishing to understand the source of potential improvements and eciencies 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 whiteboard 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.

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 nal examinations (http://www.registrar.uwaterloo.ca/exams/finalexams.html) and various course drop deadlines (http://quest.uwaterloo.ca/undergraduate/dates.html).

Grade calculation
Assignments: 25% ve assignments each worth 5% Midterm Exam: 25% covering material of approximately the rst half of course Final Exam: 50% cumulative exam to be scheduled by the Registrars Oce There will be a way for current grades to be viewed through the course webpage and these should be checked periodically for accuracy.

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. Jeromes and DC libraries.

Course Sta Contact Information


J.P. Pretti (Instructor) Oce: STJ 3014 and MC 5101 E-mail: jpretti@uwaterloo.ca Barbara Daly (Instructional Support Coordinator) Oce: DC 3111 E-mail: bmzister@uwaterloo.ca Shehroz Khan and Baiyu Li (Instructional Assistants) Nika Haghtalab and Nan Hu (Teaching Assistants) Instructor and IA/TA Oce 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 specied time. Late submissions will be marked for feedback but not earn any credit. Accommodations for a missed quiz, midterm or nal exam will only be considered if documentation (e.g. veried Verication 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 rst returned in lectures and then available from the instructor during oce 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 rst 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.

Other Important Information


Academic Integrity: In order to maintain a culture of academic integrity, members of the University of Waterloo community are expected to promote honesty, trust, fairness, respect and responsibility. Check the Oce of Academic Integritys 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 identies 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 aecting 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 assistant who will provide further assistance. Discipline: A student is expected to know what constitutes academic integrity, to avoid committing academic oenses, and to take responsibility for his/her actions. A student who is unsure whether an action constitutes an oense, or who needs help in learning how to avoid offenses (e.g., plagiarism, cheating) or about rules for group work/collaboration should seek guidance from the course professor, academic advisor, or the Undergraduate Associate Dean. For information on categories of oenses and types of penalties, students should refer to Policy 71, Student Discipline, http://www.adm.uwaterloo.ca/infosec/Policies/policy71.htm. For typical penalties check Guidelines for the Assessment of Penalties, http://www.adm.uwaterloo.ca/ infosec/guidelines/penaltyguidelines.htm. Avoiding Academic Oenses: 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 oenses 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, http://www.adm.uwaterloo.ca/infosec/Policies/policy72.htm. Note for students with disabilities: The Oce 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.

You might also like