Winter 2017 -- Department of Computer Science, University of Western Ontario

CS2121/9643 - Data Structures and Algorithms

Course description

The purpose of this course is to provide students with foundations in the basic concepts of 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. Students will be exposed to a variety of data structures, their advantages and disadvantages, and will learn when different data structures are useful. This course is also about ensuring that students understand basic algorithms for manipulating these data structures and using them in varying informatics and analytics domains.
Topics covered in this course include:
"Computational thinking is a fundamental skill for everyone, not just for computer scientists."

(The New York Times, 2012)

This course is aiming at teaching computational skills for non-computer science students. It is a fact that people lacking such skills are and will increasingly be at disadvantage in all areas of activities. Simply put, to solve a problem using a computer one needs an algorithmic solution and a computer program implementing it. By learning a programming language (e.g., by attending CS2120, a prerequisite for this course), students took an important step towards acquiring a computational background by learning how to translate a solution into code. However, this is of little use without the ability to create the algorithmic solution to solve the problem. The crucial ability that is necessary is "computational thinking" and this course aims specifically at developing it.


Computer Science 2120a/b


Computer Science 2210a/b, Software Engineering 2205a/b


Dr. Lucian Ilie, MC368, e-mail: ilieuwo.ca

Textbook (required)

Here is a free Python book: How to Think Like a Computer Scientist.

Setting up

Download and install the (free) Enthought Canopy Distribution from https://www.enthought.com/products/canopy/. There are versions for Windows, OS X and Linux.


Class time



Yiwei Li
e-mail: yli922@csd.uwo.ca

Office hours


Appeals of Assignment Marks

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.

Adherence to Deadlines

There is no penalty for late submissions up to three days. After that the late work is no longer accepted.

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
Students who are in emotional/mental distress should refer to Mental Health@Western http://www.uwo.ca/uwocom/mentalhealth/ for a complete list of options about how to obtain help.

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.

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.csd.uwo.ca/current_students/undergraduate_students/scholastic_offences.html.
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.
If assignments are to be individual assignments: 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.
The standard departmental penalty for assignments that are judged to be the result of academic dishonesty is, for the student's first offence, a mark of zero for the assignment, 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.