0% found this document useful (0 votes)
48 views7 pages

Comp352 S24 Course Outline

The COMP 352 course on Data Structures and Algorithms for Winter 2024 is taught by Dr. Hakim Mellah and Eric Chan, covering topics such as stacks, queues, trees, and algorithm design. The grading scheme includes assignments (10%), a midterm (30%), and a final exam (60%), with strict policies on submission and academic integrity. Students are required to use Java for programming assignments and must adhere to health and safety guidelines as well as plagiarism rules.

Uploaded by

karan30375
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
48 views7 pages

Comp352 S24 Course Outline

The COMP 352 course on Data Structures and Algorithms for Winter 2024 is taught by Dr. Hakim Mellah and Eric Chan, covering topics such as stacks, queues, trees, and algorithm design. The grading scheme includes assignments (10%), a midterm (30%), and a final exam (60%), with strict policies on submission and academic integrity. Students are required to use Java for programming assignments and must adhere to health and safety guidelines as well as plagiarism rules.

Uploaded by

karan30375
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

COMP 352

Data Structures and Algorithms


Course Outline – Winter 2024

Dr. Hakim Mellah Office: H961-15


E-mail: [email protected] Tel: (514) 848-2424 ext 8060
Lecture:
Section AA Tuesday - Thursday 6:30 PM - 9:00 PM at FG C070
Office Hours:
1) Tuesday - Thursday 5:00 PM - 6:00 PM
2) By appointment anytime.
Eric Chan Office: ER-1175
E-mail: [email protected]
Lecture:
Section Monday - Wednesday 6:30 PM - 9:30 PM at FG C080
AB Office Hours:
By appointment anytime.

Tutorials & PODs:

AE TuTh 11:45 AM - 12:35 PM @ H561 Hussein Olleik


[email protected]

AF TuTh 11:45 AM - 12:35 PM @ FG B050 Ahmad Alayan


[email protected]

AI MoWe 10:15AM - 11:05AM @ FG B080 Jayati Thakkar


[email protected]

AJ MoWe 11:45 AM - 12:35 PM @ FG B055 Hamed Jafarpour


[email protected]

AK MoWe 11:45 AM - 12:35 PM @ FG B080 Abdeltif Azzizi


[email protected]

POD Times & Locations: TBA.

Please see your class schedule for more details. Please also check your professor’s website for
any further updates about the TAs.

Comp 352 – Summer 2024


Course Outline – Page 1
Pre-Requisites: COMP 232 or COEN 231; COMP 249 or BCEE 231.

Calendar Course Description: 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.

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.
Textbook/eTextbook URL: http://ca.wiley.com/WileyCDA/WileyTitle/productCd-EHEP002900.html

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.

Grading Scheme
The table illustrates the components of the course and their corresponding weights (%).

Component %
Assignments 10%
Midterm 30%
Final Exam 60%

There is no fixed, a priori relationship between the numerical percentage and the final letter grades
for this course. To pass the course, you must attempt all assignments, pass the midterm and pass
the final exam. Usually a score of 50% is required for passing the exams. There are no make-
ups/alternates for missed exams or assignments. The instructors reserve the right to modify the
grading scheme under exceptional circumstances to accommodate certain situations (e.g., medical).
In the event of extraordinary circumstances beyond the University's control, the content and/or
evaluation scheme in this course is subject to change.

The Midterm Exam, for both sections, is scheduled for Sunday, June 2, starting at 2:00PM.
Your instructor will indicate the exact location of the midterm.

Comp 352 – Summer 2024


Course Outline – Page 2
Details of the Course Components
1. Assignments: There will be 3 to 4 theory assignments and 3 to 4 programming assignments
(each weight depends on the difficulty of the assignment), all of which will be available
online. These assignments play a major role in your learning of the various topics covered
in this course. You must attempt all assignments to pass the course. Assignments must
be submitted by the due date via Moodle. There will be a 20% per day penalty for late
submissions. No assignment will be accepted after two days of delay. More detailed
information on assignments is provided below. Please read them carefully!

Important Notes
i) Assignments will consist of a theoretical assignments and a programming assignments.
Each student must independently and separately prepare and submit the theory
assignments (no groups are allowed). For the programming assignments, you are
allowed to work in a group (maximum 2 students).

ii) For the theory assignment:

• Only one or two questions will be marked at random; however, you must submit the
answers to all questions.

iii) For the programing assignments:


• In case you are working in a group, ONLY ONE copy per group is to be submitted; i.e. do not
submit 2 separate copies. You have to submit the complete source code and the compiled files,
which can be executed without changes. If this is violated, you will get a zero mark for these
parts of the assignments.
• You need to use Java version 8.0 or later. You will be using the same computing facilities and
the same computer account you used in previous courses (e.g., Comp 249). If you do not have
a computer account, you can obtain it from the help desk at H-960 or EV 7.182. This account
will give you access to the laboratories. For more information on CSE Computer accounts
please visit the following website: http://www.encs.concordia.ca/helpdesk/access.html. If you
have your own computer and prefer to use it, you may do so, but be aware that your programs
must compile and run with Java 8.0, or later version, at the Concordia laboratories.

Comp 352 – Summer 2024


Course Outline – Page 3
• IMPORTANT (Please read very carefully): Additionally, which is very important,
for the programming assignments, a demo will take place with the markers afterwards.
Markers will inform you about the details of demo time and how to book a time slot for
your demo. If working in a group, both members must be present during demo time.
Different marks may be assigned to teammates based on this demo. Now, please read
very carefully:
a. If you fail to demo, a zero mark is assigned regardless of your submission.
b. If you book a demo time, and do not show up, for whatever reason, you will be
allowed to reschedule a second demo but a penalty of 50% will be applied.
There will be no exceptions to this rule!
c. Failing to demo at the second appointment will result in zero marks and no
more chances will be given under any conditions.

iv) Submission format: All assignment-related submissions must be adequately archived in a ZIP
file using your ID(s) and last name(s) as file name. The submission itself must also contain your
name(s) and student ID(s). Use your “official” name only - no abbreviations or nick names;
capitalize the usual “last” name. Inappropriate submissions will be heavily penalized. Only
electronic submissions will be accepted. Students will have to submit their assignments (one
copy per group for the Programming Part) using Moodle. Assignments must be submitted in the
right folder of the assignments. Assignments uploaded to an incorrect folder will not be
marked and result in a zero mark. No resubmissions will be allowed.

2. Midterm and Final exams: We will have a midterm and a final exam in this course, which
will take place in-person at Concordia campus. The formats of these two exams will be
similar and include multiple choice questions (with negative marks for wrong answers),
questions with detailed answers, and True/False questions requiring a short justification.
The final exam will be identical for all sections. You must pass both midterm and final
in order to pass the course.

Tentative Course Schedule


The schedule is tentative and might change anytime.

Chapter Topic Week


- Introduction 1
4 Algorithm Analysis (4.1 to 4.3) 1
5 + 15 Recursion (5.1 to 5.6, 15.1 to 15.2) 2
6 Stacks and Queues (6.1 to 6.2) 2
3+7 Vectors, Lists, Iterators, Sequences (3.1 to 3.4, 7.1 to 7.3) 2&3
8 Trees (8.1 to 8.4) 3
9 Priority Queues and Heaps (9.1 to 9.4) 4
10 Maps, Dictionaries and Hash Tables (10.1 to 10.3) 4&5
11 + 12 Search Trees (11.1 to 11.3) & Sorting (12.1 to 12.4) 5&6
14 Graphs (14.1 to 14.7) 6

Graduate Attributes
As part of either the Computer Science or Software Engineering program curriculum, the content of
this course includes material and exercises related to the teaching and evaluation of graduate

Comp 352 – Summer 2024


Course Outline – Page 4
attributes. Graduate attributes are skills that have been identified by the Canadian Engineering
Accreditation Board (CEAB) and the Canadian Information Processing Society (CIPS) as being
central to the formation of engineers, computer scientists and information technology
professionals. As such, the accreditation criteria for the Software Engineering and Computer
Science programs dictate that graduate attributes are taught and evaluated as part of the courses.
The following is the list of graduate attributes covered in this course, along with a description of
how these attributes are incorporated in the course:

• Problem analysis: Ability to use appropriate knowledge and skills to identify, analyze, and
solve complex engineering problems in order to reach substantiated conclusions. Analyze
problems and determine their constraints in order to make a choice as to what data
structures and algorithms to use for their implementation.

• Design: Ability to design solutions for complex, open-ended engineering problems and to
design systems, components or processes that meet specified needs with appropriate
attention to health and safety risks, applicable standards, and economic, environmental,
cultural and societal considerations. Use and compose appropriate data structures and
algorithms to solve a variety of problems.

Course Learning Outcome (CLOs)


• 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.

• 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.

Web pages and other Resources

Many resources for the course (slides, assignments, example programs, ...) will be available online
through Moodle.

Additionally, the faculty web pages have a wealth of information pertaining to our computer systems
and software, which includes simple user guides, and answers to many standard questions. You

Comp 352 – Summer 2024


Course Outline – Page 5
should explore these help pages. Begin your exploration from the URL:
http://www.encs.concordia.ca/helpdesk/faq/faq.php

Health and Safety Guidelines


All health and safety rules specific to this course can be found in the lab manual. General health and
safety instructions and available health and safety trainings can be found at: Safety Programs -
Concordia University (https://www.concordia.ca/campus-life/safety/general-safety.html).

Plagiarism
The most common offense under the Academic Code of Conduct is plagiarism which the Code
defines as “the presentation of the work of another person as one's own or without proper
acknowledgement.”
This could be:
• material copied word for word from books, journals, internet sites, professors course notes,
etc.
• material that is paraphrased but closely resembles the original source.
• the work of a fellow student, for example, an answer on a quiz, data for a lab report, a paper
or assignment completed by another student.
• a solution or Java code purchased through one of the many available sources.
• ➔ You must also notice that the submission of AI-generated material is strictly prohibited. The
submission of such contents is considered as direct plagiarism and violates the University Code
of Conduct. Any such submissions, partially or fully, will result is an immediate plagiarism case
being submitted to the University.

Plagiarism does not refer to words alone; it can also refer to copying images, graphs, tables, and
ideas. Presentation is not limited to written work. It also includes oral presentations, computer
assignments and artistic works. Finally, if you translate the work of another person into French or
English and do not cite the source, this is also plagiarism.

In Simple Words:
Do not copy, paraphrase or translate anything from anywhere without saying where you
obtained it!

IP [VERY IMPORTANT: PLEASE READ CAREFULLY]:


Course contents belonging to the instructor and the TAs, including, but not limited to, lectures,
course notes, and video recordings of classes/tutorials remain the intellectual property of the faculty
member and the TAs. It must not be distributed, published or broadcasted, in any form or shape, in
whole or in part, without an explicit written permission of the faculty member or the TA. It is also
prohibited for students to use their own means of recording of any elements of a class, lecture,
tutorial, etc., without explicit written permission of the instructor. Any unauthorized sharing of
course content will constitute a breach of the Academic Code of Conduct and/or the Code of Rights
and Responsibilities. As specified in the Policy on Intellectual Property, the University does not
claim any ownership of, or interest, in any of such IPs; all university members retain copyright over
their work.

Comp 352 – Summer 2024


Course Outline – Page 6
In addition, please notice the following important information concerning the assignments and the
labs: As the assignments remain the sole property of the course instructor, you are not permitted to
post the assignments or their solutions anywhere on the Internet either during the course or at any
future point of time. Intellectual Property rights are reserved. Violation of such rules during the
course, or at any future point, will result in both academic and legal actions.

Comp 352 – Summer 2024


Course Outline – Page 7

You might also like