The University of Western
Ontario
Department of Computer Science
CS 2210 -- Data Structures and Algorithms
Course Outline -- Fall 2011
Course Description
The purpose of this course is to provide the students with
solid foundations in the basic concepts of programming: data
structures and algorithms. The main objective of the course is
to teach the students how to select and design data structures and
algorithms that are appropriate for problems that they might
encounter. This course is also about showing the correctness of algorithms and
studying their computational complexities. This
course offers the students a mixture of theoretical
knowledge and practical experience.
The study of data structures and algorithms is carried out
within an object-oriented framework. When implementations are
considered, the Java programming language is used.
Topics covered in this course include:
- analysis of algorithms
- trees, binary search trees, multi-way search trees
- dictionaries, hash tables
- graphs, graph traversals, graph algorithms
- sorting.
Prerequisites
- Computer Science 1027a/b or 1037a/b, with a grade of at least
60%
- One full-course from the following, with at least 60% in each: Calculus 1000a/b, 1100a/b,
1201a/b, 1301a/b, 1501a/b, Linear Algebra 1600a/b, Applied Mathematics 1413
- Knowledge of Java. If you do not know Java, you must be aware that
you will need to spend extra time learning this language as all programming
assignments are in Java.
- Note: Students who have been admitted to this course
without the normal prerequisite of Computer Science 1027a/b or 1037a/b
may not have been exposed to some of the background material
expected for this course; it is the responsibility of these
students to gain familiarity with this material on their
own.
Unless you have either the requisites for this
course or written special permission from your Dean to enroll in it, you will
be removed from this course and it will be deleted from your record. This
decision may not be appealed. You will receive no adjustment to your fees in
the event that you are dropped from a course for failing to have the
necessary prerequisites.
Instructor
- Roberto Solis-Oba
- Office: MC417
- Email: solis@csd.uwo.ca
- Lectures: Tuesday 1:30-3:30 pm, Thursday 2:30-3:30 pm at 3M-3250.
- Office hours: Wednesday and Friday from 3:30 pm to 5:00pm.
TA Consulting Hours (to be announced)
Textbook
- Data Structures and Algorithms in Java, fifth
edition
- Michael T. Goodrich and Roberto Tamassia.
John Wiley & Sons Inc., 2010.
Supplementary Texts
-
Data Structures
- Data Structures and Algorithms with Object
Oriented Design Patterns in Java, Bruno R. Preiss,
Wiley, 2000.
- Data Structures, Algorithms, and Applications in
Java, Sahni, McGraw Hill, 2000.
- Data Structures and Algorithm Analysis in
Java, Weiss, Addison Wesley, 1999.
- A Practical Introduction to Data Structures and
Algorithm Analysis (Java Edition), Shaffer, Prentice
Hall, 1998.
Java
- The Java Programming Language, Arnold and
Gosling, Addison-Wesley, 1996.
- Java, an Object Oriented Approach, Arnow and
Weiss, Addison-Wesley, 1999.
- Java how to Program, Deitel and Deitel,
Prentice Hall, 1999.
- Javasoft web site:
http://java.sun.com.
Course Website
-
http://www.csd.uwo.ca/courses/CS210a
Lecture Notes
- Lecture notes will be available on the course web site.
Student Evaluation
Grades will be based on:
- 2 concept assignments, each worth 3 % of the final mark
- 3 programming assignments, each worth 10 % of the final mark
- a midterm exam, worth 29 % of the final mark
- a final exam, worth 35 % of the final mark
This course is an important prerequisite for CS 2212a/b
and most third year Computer Science courses. The following
rules are designed to ensure that students progressing in
honours programs, and those planning to take further CS
courses, meet certain minimum standards:
- To be eligible to pass the course, a student must
receive a weighted average of at least 45% on the midterm
and final exams, and a weighted average of at least 45%
on the assignments.
- To be eligible to receive an overall grade of 60% or
higher in the course, a student must receive a weighted
average of at least 55% on the midterm and final exams,
and a weighted average of at least 55% on the
assignments.
If for any reason the assignment schedules given below
cannot be adhered to, the assignment marks will
be pro-rated. The assignments are worth 36% of the
overall mark for the course. If an assignment has to be
cancelled for any reason, the remaining assignment weights
will be prorated to add up to 36%.
If for any reason the midterm examination has to be
cancelled, the final exam will be worth 64% of the final
mark.
Every effort will be made to have assignments marked and
handed back within 3 weeks of the hand in date.
Midterm exam marks will be available within 2 weeks of
the exam.
Schedule (Tentative,
some of these dates might change)
All assignments are due at midnight on the date indicated.
- Assignment 1 (concept) due on September 27.
- Assignment 2 (programming) due on October 18.
- Assignment 3 (concept) due on October 25.
- Assignment 4 (programming) due on November 16.
- Assignment 5 (programming) due on December 6.
- A 110-minutes midterm exam is scheduled on Tuesday
November 1 during class. Place to be announced.
- A 3-hour final exam will be scheduled by the
Registrar.
Computer-marked multiple-choice tests and/or exams may be subject to submission
for similarity review by software that will check for unusual coincidences in
answer patterns that may indicate cheating.
There will be no makeup Midterm Exam, except for
students requesting a Special Midterm Exam for religious
reasons. These students must have notified the course
instructor and filed documentation with their Dean's office
at least 2 weeks prior to the Midterm Exam.
If you miss the Midterm Exam for any other reason, follow the procedure for
Academic Accommodation for Medical Illness given below. If accommodation is
approved by your Dean's office, your Final Exam mark will be re-weighted to
include the weight of the Midterm Exam.
Concept Assignments
- Two concept assignments will be assigned in this
course. Each assignment consists of a set of exercises
related to the material covered in class. The solutions
for the exercises should be neatly written or typed.
- All assignments will be made available on the course
web site. The availability of assignments will be
announced on class and/or via e-mail. Students are
responsible for checking their e-mail on a regular
basis.
Programming Assignments
- The programming assignments require you to write Java
programs related to the data structures and algorithms
discussed in lectures.
- To be eligible for full marks, your programming
assignments must run on the departmental computing
equipment. You may develop assignments on your home
computer using an alternative version of Java, but you
must allow for the amount of time it will take to get the
final product working on Computer Science's
machines.
- All programming assignments must be handed in using
electronic submission procedures, to be described in class.
- All assignments will be made available on the course
web site. The availability of assignments will be
announced on class and/or via e-mail. Students are
responsible for checking their e-mail on a regular
basis.
Appeals of Assignment Marks
-
- Appeals of assignment marks should be addressed to
the T.A. first. If you and the T.A. cannot agree, then the
T.A. will discuss the situation with the lecturer.
- Appeals must occur within 1 week from the first day
that the marked assignments were made available to
students. After that 1 week period has gone by, no more
appeals will be considered.
Late Policy
For each assignment it is indicated above when it is due,
and for each assignment we will give details on how to hand
in the work.
Concept assignments must be handed in on the due date. No late concept assignments will be
accepted.
The late penalty for programming assignments is 2.5^i (2.5
to the i-th power, rounded up), where i > 0 is the number of
days you are late. So if you hand in your assignment 1 day
late, you will be penalized 3%, a delay of 2 days will
decrease your grade by 6%, 3 days is penalized 16% and 4
days takes 39% off your grade. You cannot be more than 4 days
late. For computing the late penalty, Saturday and Sunday
count as one day.
Extensions will be granted only by the course instructor. If
you have serious medical or compassionate grounds for an
extension, you should take supporting documentation to the
office of the Dean of your faculty, who will contact the
instructor.
Academic Accommodation for Medical Illness
If you are unable to meet a course requirement due to illness or other serious
circumstances, you must provide valid medical or other supporting documentation to
your Dean's office as soon as possible and contact your instructor immediately.
It is the student's responsibility to make alternative arrangements with their
instructor once the accommodation has been approved and the instructor has been
informed. In the event of a missed final exam, a "Recommendation of Special
Examination" form must be obtained from the Dean's Office immediately. For further
information please see:
http://www.uwo.ca/univsec/handbook/appeals/medical.pdf
A student requiring academic accommodation due to illness should use the Student
Medical Certificate when visiting an off-campus medical facility or request a
Record's Release Form (located in the Dean's Office) for visits to Student Health
Services. The form can be found here:
https://studentservices.uwo.ca/secure/medical_document.pdf
Ethical Conduct
Scholastic offences are taken seriously and students are directed to read the
appropriate policy, specifically, the definition of what constitutes a Scholastic
Offence, at the following Web site:
http://www.uwo.ca/univsec/handbook/appeals/scholoff.pdf.
Plagiarism: Students must write their essays and assignments in their own words.
Whenever students take an idea, or a passage from another author, they must
acknowledge their debt both by using quotation marks where appropriate and by proper
referencing such as footnotes or citations. Plagiarism is a major academic offence.
All assignments are individual assignments. You
may discuss approaches to problems among yourselves;
however, the actual details of the work (assignment coding,
answers to concept questions, etc.) must be an individual
effort. Assignments that are judged to be the result of
academic dishonesty will, for the student's first offence,
be given a mark of zero with an additional penalty equal to
the weight of the assignment also being applied. You are
responsible for reading and respecting the Computer Science
Department's policy on
Scholastic Offences and Rules of
Ethical Conduct.
The University of Western Ontario uses software for plagiarism checking.
Students may be required to submit their written work
and programs in electronic form for plagiarism checking.
For computer-marked multiple-choice tests and/or exams, use
may be made of software to check for unusual coincidences in answer
patterns that may indicate cheating.
Email Contact
We will occasionally need to send email messages to the whole class, or
to students individually. Email will be sent to the UWO email address assigned to
students by Information Technology Services (ITS), i.e. your email address @uwo.ca.
It is each student's responsibility to read this email on a frequent and regular
basis, or to have it forwarded to an alternative email address if preferred. See the
ITS website for directions on forwarding email.
However, you should note that email at ITS (your UWO
account) and other email providers such as hotmail.com or
yahoo.com may have quotas or limits on the amount of space
they can use. If you let your email accumulate there, your
mailbox may fill up and you may lose important email from
your instructors. Losing email that you have
forwarded to an alternative email address is not an excuse
for not knowing about the information that was sent.
If you send email to instructors from a commercial account,
send a carbon copy (cc) to your UWO email address.
The instructors will respond to your UWO address.
Computing Facilities
Each student will be given an account on the Computer
Science Department senior undergraduate computing facility,
GAUL. In accepting the GAUL account, a student
agrees to abide by the department's Rules of
Ethical Conduct.
Note: After-hours access to certain Computer
Science lab rooms is by student card. If a student card is
lost, a replacement card will no longer open these
lab rooms and the student must bring the new card to a
member of the Systems Group in Middlesex College Room
346.
Accessibility Statement
Please contact the course instructor if you require material
in an alternate format or if you require any other arrangements
to make this course more accessible to you. You may also wish to
contact Services for Students with Disabilities (SSD) at
661-2111 x 82147 for any specific question regarding an accommodation.