Instructor 

Description 
Data Structures and Algorithms
Basic organization of programs, optimizing program
structure, modularization. Data structures, searching
and sorting algorithms, handling large data sets, analysis
of algorithms.

Prerequisites 
CMPT 140 or 141 or instructor's consent.
It is expected that the student has at least one standard programming language
(e.g., C/C++, Java, Python) in which he/she is fairly comfortable.
Some level of mathematical reasoning, e.g., CMPT/MATH 150 (Discrete Math),
will help the student to succeed.

Text 
Required:
Introduction to Algorithms,
Cormen, T., Leiserson, E., Rivest, R., and Stein, C.,
3rd ed., MIT Press (2009). ISBN 0262033844.
This text is available in the campus bookstore.

Topics 
The exact set of topics covered will vary depending on instructor and semester.
The following is a tentative planned set of topics for Fall 2012
(chapters from CLRS3):
 Algorithmic complexity (ch15)
 Sorting algorithms (ch68)
 Fast data structures (ch1013)
 Dynamic programming and greedy algorithms (ch1516)
 Graph algorithms (ch2224)
 Linear programming (ch29)

Marking 
Letter grade assignment follows
the standard TWU grade scale,
except that >=85% and <95% is an A; 95% and above is an A+.
HW Assignments(6)  40%  Every other week 
Exams (3)  30%  Inclass; see schedule 
Final Exam  30%  Set by Provost's Office 

Notes 
 Homeworks are expected to be individual work. If you find inspiration from
fellow students or online resources, cite them in your report; indicate how
they helped you.
 Late policy for homeworks is a penalty of 10% per calendar day,
up to a week late. More than a week late and it will not be accepted unless
there are extenuating circumstances
(which must be communicated promptly with the instructor).
The final assignment (HW6) will not be accepted late.
We will use the timestamp on myCourses.
It is your responsibility to make sure all parts of your assignment are
uploaded to the right place in myCourses by the deadline.
 If you turn in your HW ontime, you can expect it to be
marked within a week. If you turn in your HW late, you forfeit the
privilege of getting prompt feedback.
 You should have a programming language and development environment
in which you are fairly comfortable; get this sorted out in the first week of
the semester. You may use any programming language you like for
all assignments in this course, subject to the following:
 Ask the instructor first if it's not C/C++, Java, or Python
 Refrain from using library functions which defeat the purpose of
the given assignment (e.g., if the assignment is to implement QuickSort,
don't use the builtin sort function in Python or C++ STL).
 Laptops are permitted inclass only for courserelated work.
This means no Facebook, YouTube, Halo, etc., (unless directly related
to coursework)!
 During inclass quizzes/exams, all of the following are not
permitted and should be left in your closed/zipped bag and put on the floor:
 Books, notes, cell phones, laptops, PDAs, iPods, dictionaries.
Your desk should be clear except for your pencil/pen.
 All
academic policies
in the Academic Calendar are in effect, including
"Academic Dishonesty and Plagiarism", "Attendance", and
"Students with a Disability".
 In case of inclement weather, call (604) 5132147 or
see www.twu.ca/conditions
for official campus conditions.
