CSCI 260: Data Structures and Algorithms


Fall 2022
Course Outline

Professor Gara Pruesse
Vancouver Island University

Prerequisites:

Math 123 and CSCI 161 are prerequisites for this course. If you do not have the prerequisites, you will be deregistered. In rare cases where there is a demonstrated background, the instructor may waive a prerequisite, but only in cases where the student demonstrates they have the prerequisite knowledge. These two courses are prerequisites for a good reason!

Course Motivation and overview


This course develops the topics of algorithms, their data structures, and their analysis; it builds on the Abstract Data Types (ADT's) introduced in CSCI 161, and techniques of efficiency analysis, utilizing Big-O notation introduced in Math 123.

It is assumed the student has a reasonable mastery of C++ or a similar high level language, as the course will involve substantial work implementing the data structures under discussion. C++ will be the language of implementation. Students whose previous experience has been in Java or another imperative language are advised to familiarize themselves with C++, with memory allocation and pointers in particular. As well, the student should have a familiarity with the discrete mathematical concepts introduced in Math 123, such as graphs, Big-O notation, logarithms and powers, counting, and logic.

The course will focus on the concepts of abstract data types (ADTs), developing correct and efficient algorithmic solutions to computational problems, analysis of time and space efficiency, and proving correctness of algorithms.

Course materials

Timetable

Assessment:

To pass the course, the student must:
  1. achieve an average of 50% or greater on the weighted average of the midterms, submitted material (labs and assignments) and the final exam; and
  2. achieve a grade of 50% or greater on the final exam; and
  3. attend the labs and submit the lab work, and pass the graded lab assignments.
Note that it is a requirement of Science courses that students attend the labs -- a student will not pass the course if they do not attend the labs. This means all the labs. Furthermore, lab submissions have marks associated with them that form part of their grade calculations.
There will be three midterms, each worth 15%; the lowest mark will be dropped, and the total midterm mark will comprise 30% of the course mark. All midterms will be given in tutorial (i.e., in the Thursday class time).
  1. Midterm 1: October 6
  2. Midterm 2: October 27
  3. Midterm 3: November 24
Grade:

Submitting material
Programs must work on the csci linux platform. Students should submit their text files containing their code according to the procedure that will be given in the lab. Git will be used.

Topics to be covered

Throughout the course, we will be using, with increasing sophistication, methods of: analyzing problems; devising Abstract Data Types (ADT's) to capture the problem; devising algorithms and data structures to implement solutions to the ADT's; proving the correctness of the algorithms; and analyzing the time- and space-complexity of the resulting algorithms. This will involve mathematical proof techniques, which will be summarily reviewed in the tutorial.

We will also be developing an understanding and facility with (a) common and useful data abstraction structures, such as graphs, trees, and lists; and (b) algorithmic approaches to solve problems.

Specific algorithms and data structures topics to be covered are:

See the week by week topics schedule, which will also provide links to web materials.

Attendance:

Students are expected to attend scheduled lectures, laboratories, field trips, seminars, examinations, practica and work experience. The University reserves the right to cancel registration in any course or program because of lack of attendance (where attendance is deemed by the Department to be important). VIU reserves the right to cancel any student’s registration in a course if the student does not attend the first scheduled session of a course and does not notify the instructor or area secretary.
Absenteeism
Students are responsible for all material presented and discussed in lecture, in addition to assigned readings and homework problem. It is entirely the students' responsibility to recover any information or announcements presented in lectures from which they were absent by speaking to their fellow students.

Students who are absent should contact their instructors as soon as possible and report to their instructors again on return to classes. Extended absence from courses or program should be discussed with each instructor or program coordinator involved. Students are responsible for contacting their instructors, either directly or through the assistance of staff in the office of the appropriate Dean, as soon as an extended absence becomes apparent.

Specific regulations exist for absences due to illness, death in the family, religious observances, and VIU official sporting teams. In cases of religious observance and sporting events, discussion on the impact of your absence with your instructor need to occur at least two-weeks in advance of the absence.
Absence Due to ...
Attendance
Policy 96.05

Academic Integrity Statement
It is expected that students will know and abide by the VIU's policy on Student Academic Code of Conduct (Policy 96.01)

Standards of Academic Integrity
Include, but are not limited to:



Any academic misconduct will be dealt with in accordance with policies in effect at VIU (96.01) and may result in a final grade of F, a report to the Dean and a permanent record in the student’s academic file. Multiple records may result in suspension from the University.

Academic Integrity
Student Academic Code of Conduct
Policy 96.01

Lab & Lecture Pass Requirement
Students will receive a single, final grade assessing their performance in the lab and lecture components combined. Students must achieve separate passing grades in the laboratory component and in the lecture component of the course in order to be able to earn an overall passing grade in the course.
As per Policy 95.05, if all laboratory grades are known prior to the final examination, students who have not obtained a grade of at least D may not be permitted to write the examination.
Laboratory Work
Policy 95.05

Gara Pruesse's Homepage
Computing Science Homepage
Vancouver Island University Homepage