Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: THEend8_
COMP 352 Data Structures and Algorithms
1. Course Description
Topics: Abstract data types: stacks and queues, trees, priority queues, dictionaries. Data structures:
arrays, linked lists, heaps, hash tables, search trees. Design and analysis of algorithms: asymptotic
notation, recursive algorithms, searching and sorting, tree traversal, graph algorithms.
2. Learning Objectives
• Knowledge base: Demonstrate competence in fundamentals of data structures and
algorithms.
• Problem analysis: Analyze and state model limitations and elements of uncertainty.
Formulate and calculate qualitative and quantitative qualities of the problems’ inputs and
outputs. Estimate computational complexity. Evaluate and pick the most appropriate approach
based on relevant criteria.
• Design:
– Critique/evaluate many possible diverse solutions and use techniques to evaluate different
solutions with sound arguments related to the problems’ requirements and constraints.
Demonstrate thinking outside the box to create innovative solutions.
– Develop a system architecture adapted to the systems application context and its
requirements and constraints. Development and specification of internal and external
software interfaces at different modularity levels. Describe a solution that presents
enough details for implementation.
– Write code according to design. Validate implemented systems against system
requirements, specifications and constraints, as well as interface specifications.
• Use of Engineering tools: Demonstrate appropriate operational use of tools (e.g.,
algorithms, abstract data types, data structures, asymptotic complexity analysis) for specific
tasks in a laboratory environment.
• One credit represents, for an average student, a minimum of 45 hours of workload spread
across the various academic activities (Source: Article 16.1.2 of the Undergraduate Calendar.)
For an average student, this suggests a minimum of 135 hours of workload for a 3-credit
course, including the time spent in lectures, tutorials, laboratories, examinations, and
personal and team work.
3. Course Materials
Textbook M.T. Goodrich, R. Tamassia, Michael H. Goldwasser. Data Structures and Algorithms
in Java, 6th edition. John Wiley & Sons, 2014. ISBN 978-1-118-77133-4. (Note: 5th edition is ok.)
The book is available at the bookstore or can be rented as eTextbook.
From the textbook we shall study these sections: 3.1 to 3.4, 4.1 to 4.3, 5.1 to 5.6, 6.1 to 6.2, 7.1 to 7.3,
8.1 to 8.4, 9.1 to 9.4, 10.1 to 10.3, 11.1 to 11.3, 12.1 to 12.4, 14.1 to 14.7, and 15.1 to 15.2. You also need to
study chapters 1 and 2 that will not be covered in provided lectures.
Web Page Many resources for the course (slides, assignments, example programs, …) will be
available online through Moodle; , or through the instructor’s website. Your instructor will inform you of the
exact link to access the materials.
In specific, depending on your section, the lectures will either take place live over Zoom (where
coverage of the material will take place during class time), or they will be pre-recorded. Your
instructor will inform you about the way the class will be conducted. In case the lectures are pre-
recorded, you will need to view these video lectures before class time. In such case, only discussions
about the covered materials will take place during class time, where you will be able to get
clarifications to any questions that you may have.
All tutorials will be available online over Moodle/Yuja (accessible from Moodle) as video lectures
prior to tutorial time. You will need to view these videos before tutorial time. While the tutors may
very well elaborate further on the materials discussed on the videos, you need to view these video
recordings ahead of tutorial time.