Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit


COMP 2402AB Fall 2021 − Abstract Data Types and Algorithms

Course Outline


The course will cover object-oriented programming concepts; the design and implementation of data structures (stacks, queues, lists, trees, heaps, hash tables, and graphs), and related algorithmic techniques (searching, sorting, recursion); and algorithm analysis. Students will be expected to complete several programming projects (using Java) illustrating the concepts presented. Precludes additional credit for SYSC 2100.

Prerequisite(s): (COMP 1006 or COMP 1406 or SYSC 2004) with a minimum grade of C-.


Course Delivery

This course will be delivered online. Students of both sections (A and B) will share the same website and will have access to the same materials, recordings, live links, and so on. All students are welcome to attend the live lectures (delivered via Zoom during Section B class times), but if you are unable to attend for various reasons, the lectures will be recorded and posted on the course website.

This course is hosted on Brightspace. Brightspace is effectively our online classroom, and so you are required to be familiar with everything posted on it. Be sure to check out our course page at least 3 times a week.

The instructor and TAs will be available via Discord during scheduled hours to answer questions about course content and assignments. Students will be required to use an alias that includes their first and last name, as listed on Brightspace, in the course Discord, and any other course meetings or activities (Zoom, etc.).


Required Textbook

The textbook for the course is Pat Morin's “Open Data Structures”. Free PDF and HTML versions of the book are available at opendatastructures.org. We will use the Java version.


Necessary Equipment and Software

There will be a lot of Java programming throughout the course. You will need a Java compiler and your favorite editor. If you do not have Java installed on your computer, you can download it for free from Oracle Java.

In addition to a desktop or laptop with access to reliable high-speed internet, you will also need a microphone to be able to communicate orally during synchronous components and, preferably, a webcam.


Learning Outcomes

By the end of this course, successful students will have demonstrated their ability to:

Discuss the basic types of data structures, their implementation, application, strengths, and weaknesses.

Analyze the pros and cons of various solutions to the given problem and make educated decisions as to which code is best for the given situation.

Design better code (code that is efficient, reliable, fast, and elegant) leading to software that runs faster and consumes less memory.


Assessment Scheme

Your performance in this course will be assessed using several components:

There are 5 programming assignments (in Java). The best 4 are worth 65% of your final grade. The lowest assignment grade will be dropped. The assignments are marked by an automatic submission server. This means that you will get instant feedback and you can submit as often as you want - your best grade is recorded. The solutions will be posted shortly after the deadline. No late assignments are accepted.

Weekly quizzes give you high-level practice on the lecture-specific course material. They are not timed and will be open for several days. You will be given two attempts on each quiz.

The midterm and final exam will be multiple-choice questions on Brightspace. The midterm for sections A and B of the course will be on Monday, October 18, 13:05-14:25. To accommodate students of both sections the midterm will be available within the range 12:00-17:00. The moment you start your midterm you will have one hour and twenty minutes to complete it. The final exam is cumulative. There is no double-pass rule.

The grades you achieve on these components will be weighted using the following scheme:

5 Programming Assignments (4 best are counted)                  65%

Weekly quizzes                                                                   10%

Midterm                                                                             10%

Final Exam                                                                         15%


Attendance

Attendance is optional for everything except the midterm and final exam.

Note that class times will be opportunities to ask the instructor questions and get real-time feedback.


Topics Covered

Below is a summary of topics the course will cover:

Interfaces and Implementation (The Java collections Framework)

Sequences: lists, stacks, queues, deques

Array-based implementations of sequences

Linked-list based implementations of sequences

Unordered sets - hash tables

Ordered sets - balanced search trees, skiplists

Priority queues - heaps

Sorting algorithms

Applications of data structures

Graphs

Performance issues

A detailed breakdown of topics together with a tentative calendar is available on the course website.


Important Dates

  ASSIGNMENT 1
  Sunday
  September 26
  by 23:59
  ASSIGNMENT 2
  Sunday
  October 10
  by 23:59
  MIDTERM EXAM
  Monday
  October 18
  13:05-14:25
  ASSIGNMENT 3
  Sunday
  November 7
  by 23:59
  ASSIGNMENT 4
  Sunday
  November 21
  by 23:59
  ASSIGNMENT 5
  Friday
  December 10
  by 23:59
  FINAL EXAM
  scheduled by the University during exam period


Course Copyright

All materials created for this course (i.e., video recordings, course notes, coding examples, PowerPoint slides, assignments, quizzes, assignment code bases, tests, and exams) remain the intellectual property of the instructor and are protected by copyright. They are intended for the personal and non-transferable use of students registered in the course. Reproducing, reposting, and/or redistributing any course materials, in part or in whole, without the written consent of the instructor, is a copyright violation and is strictly prohibited.


Academic Integrity

Everything you submit for marks in this course (i.e., assignments, quizzes, examinations, etc.) must be the result of your own work. You are never permitted to copy (or copy and modify) solutions (even if incomplete) from anyone or from the Internet. It is also a serious offense to help someone else commit plagiarism. You are never permitted to provide another person access to the rough work, assignment specifications, or source code that you or anyone else has written. If you suspect that someone has been able to acquire a copy of your work, then you must inform the instructor of the course immediately. Please also note that electronic tools may be used to analyze and compare submissions to ensure that no instances of academic misconduct have been committed.

If you are unsure of the expectations regarding academic integrity (how to use and cite references, how much collaboration with classmates is appropriate), ask your instructor. Sharing assignment or quiz/exam specifications or posting them online (to sites like Chegg, CourseHero, OneClass, etc.) is considered academic misconduct. You are never permitted to post, share, or upload course materials (including lecture slides and recordings) without explicit permission from your instructor. Academic integrity offences are reported to the office of the Dean of Science. Penalties for such offences can be found on the ODS webpage: https://science.carleton.ca/academic-integrity/.


Important Considerations

Late assignments are never accepted for any reason. Assignment submissions are handled by an automatic submission server and there is no "grace period" with respect to a deadline. Technical problems do not exempt you from this requirement, so if you wait until the last minute and then have issues with your connection, you will still receive a mark of zero. Consequently, you are advised to:

periodically submit your progress (assignments consist of several parts and you can receive partial marks even if some of the parts are incomplete),

attempt to submit your final submission at least one hour in advance of the due date and time.

For each assignment, you will be given a skeleton code and files with very specific names – if you change any of these names or a package your class is in, then the server will not be able to compile your submission. If your submission is improperly packaged, or your code is not compiling for whatever reason, you will get a mark of zero.


Undergraduate Academic Advisor

The Undergraduate Advisor for the School of Computer Science is available in Room 5302C HP; or by email at [email protected]. The undergraduate advisors can assist with information about prerequisites and preclusions, course substitutions/equivalencies, understanding your academic audit and the remaining requirements for graduation. The undergraduate advisors will also refer students to appropriate resources such as the Science Student Success Centre, Learning Support Services and Writing Tutorial Services.


SCS Computer Laboratory

SCS students can access one of the designated labs for your course. The lab schedule can be found at: https://carleton.ca/scs/tech-support/computer-laboratories/. All SCS computer lab and technical support information can be found at: https://carleton.ca/scs/technical-support/. Technical support is available in room HP5161 Monday to Friday from 9:00 until 17:00 or by emailing [email protected].


University Policies

For information about Carleton's academic year, including registration and withdrawal dates, see Carleton's Academic Calendar.

Pregnancy Obligation. Please contact your instructor with any requests for academic accommodation during the first two weeks of class, or as soon as possible after the need for accommodation is known to exist. For more details, visit Equity Services.

Religious Obligation. Please contact your instructor with any requests for academic accommodation during the first two weeks of class, or as soon as possible after the need for accommodation is known to exist. For more details, visit https://carleton.ca/equity/focus/discrimination-harassment/religious-spiritual-observances/.

Academic Accommodations for Students with Disabilities If you have a documented disability requiring academic accommodations in this course, please contact the Paul Menton Centre for Students with Disabilities (PMC) at 613-520-6608 or [email protected] for a formal evaluation or contact your PMC coordinator to send your instructor your Letter of Accommodation at the beginning of the term. You must also contact the PMC no later than two weeks before the first in-class scheduled test or exam requiring accommodation (if applicable). After requesting accommodation from PMC, meet with your instructor as soon as possible to ensure accommodation arrangements are made. For more details, visit the Paul Menton Centre website.

Survivors of Sexual Violence. As a community, Carleton University is committed to maintaining a positive learning, working and living environment where sexual violence will not be tolerated, and survivors are supported through academic accommodations as per Carleton's Sexual Violence Policy. For more information about the services available at the university and to obtain information about sexual violence and/or support, visit: carleton.ca/sexual-violence-support

Accommodation for Student Activities. Carleton University recognizes the substantial benefits, both to the individual student and for the university, that result from a student participating in activities beyond the classroom experience. Reasonable accommodation must be provided to students who compete or perform at the national or international level. Please contact your instructor with any requests for academic accommodation during the first two weeks of class, or as soon as possible after the need for accommodation is known to exist. For more details, see the policy.

Student Academic Integrity Policy. Every student should be familiar with the Carleton University student academic integrity policy. A student found in violation of academic integrity standards may be awarded penalties which range from a reprimand to receiving a grade of F in the course or even being expelled from the program or University. Examples of punishable offences include: plagiarism and unauthorized co-operation or collaboration. Information on this policy may be found here.

Plagiarism. As defined by Senate, "plagiarism is presenting, whether intentional or not, the ideas, expression of ideas or work of others as one's own". Such reported offences will be reviewed by the office of the Dean of Science. Standard penalty guidelines can be found here.

Unauthorized Co-operation or Collaboration. Senate policy states that "to ensure fairness and equity in assessment of term work, students shall not co-operate or collaborate in the completion of an academic assignment, in whole or in part, when the instructor has indicated that the assignment is to be completed on an individual basis". Please refer to the course outline statement or the instructor concerning this issue.