Data Structures & Algorithms

Faculty
Commerce & Business Administration
Department
Computing Studies & Information Systems
Course Code
CSIS 3475
Credits
3.00
Semester Length
15 Weeks
Max Class Size
35
Method Of Instruction
Lecture
Lab
Seminar
Typically Offered
To be determined
Campus
Online

Overview

Course Description
The purpose of this course is to provide the students with solid foundations in the basic concepts of programming: data structures, data abstraction and algorithms. The main objective of the course is to teach the students how to select, design and implement data structures, abstract data types and algorithms that are appropriate for problems that they might encounter. This course offers the students a mixture of theoretical knowledge and practical experience. It also develops skills of the modular approach to produce maintainable, documented and tested Java applications. Java is the programming language used for implementation.
Course Content
  • Review of Java including Classes, Interfaces, Inheritance, Exception handling and Text I/O

  • Introduction to Data Structures and Algorithm using Java

  • Algorithm Analysis

  • Recursion and efficiency

  • Search and Sorting Algorithms

  • Generics, Abstract Data Type and Java Collection Framework

  • List and Linked List

  • Stacks and Queues

  • Trees, Binary Tree, Binary Search Tree and AVL trees

  • Priority Queues and Heap

  • Hashing and Dictionary

  • Graph Algorithms

  • Algorithm Design Techniques

Methods Of Instruction

Lecture, seminars and hands-on exercises in the lab (Group work may be involved)

 

 

Means of Assessment

 

 

Quizzes/Tests

0% – 15%

Project/Assignments (Group work may be involved)

15% – 25%

Midterm Exam

30% – 35%    

Final Exam*

30% – 40%

Total

100%

 

 

 

 

 

*will contain min 50% practical hands-on computer programming exam

In order to pass the course, students must, in addition to receiving an overall course grade of 50%, also achieve a grade of at least 50% on the combined weighted examination components (including quizzes, tests, and exams).

 

Learning Outcomes

At the end of this course, the successful student will be able to:

  • Discuss the fundamentals of algorithmic complexities;
  • Carry out an elementary analysis of algorithms;
  • Determine the space and time complexity of an algorithm;
  • Identify and select the appropriate abstract data types such as queues, stacks for a small but realistic problem;
  • Demonstrate more in-depth applications of other data types such as trees and graphs;
  • Design and implement different Java programs using appropriate data structures;
  • Apply problem solving approaches such as “divide and conquer” in designing algorithms;
  • Explain and compare some of the fundamental searching and sorting techniques and algorithms;
  • Develop the skills of the modular approach to produce maintainable, documented, and tested software of a realistic size using Java.
Textbook Materials

Prichard and Carrano, Data Abstraction and Problem Solving with Java: Walls and Mirrors, Latest edition,

Or any alternative textbook approved by the Department.

Requisites

Prerequisites

Min C in (CSIS 1275 or CSIS 2175)

Corequisites

No corequisite courses.

Equivalencies

No equivalent courses.

Requisite for

None

Course Guidelines

Course Guidelines for previous years are viewable by selecting the version desired. If you took this course and do not see a listing for the starting semester / year of the course, consider the previous version as the applicable version.

Course Transfers

Institution Transfer Details Effective Dates
Kwantlen Polytechnic University (KPU) KPU INFO 2315 (3) 2019/05/01 to -
Simon Fraser University (SFU) SFU CMPT 225 (3), Q 2014/09/01 to -
Thompson Rivers University (TRU) TRU COMP 2230 (3) 2014/09/01 to -
University of Northern BC (UNBC) UNBC CPSC 281 (3) 2014/09/01 to -
University of the Fraser Valley (UFV) UFV COMP 251 (4) 2019/01/01 to -

Course Offerings

Fall 2020

CRN
Days
Dates
Start Date
End Date
Instructor
Status
Location
35306
Tue
08-Sep-2020
- 07-Dec-2020
08-Sep-2020
07-Dec-2020
Hrybyk
Michael
Waitlist
Online
This course will include synchronous on-line activities. Students should plan to be available on-line at scheduled course times.
Max
Enrolled
Remaining
Waitlist
35
35
0
1
Days
Building
Room
Time
Tue
9:30 - 12:20
CRN
Days
Dates
Start Date
End Date
Instructor
Status
Location
35337
Wed
08-Sep-2020
- 07-Dec-2020
08-Sep-2020
07-Dec-2020
Bashir
Mehwish
Waitlist
Online
This course will include synchronous on-line activities. Students should plan to be available on-line at scheduled course times.
Max
Enrolled
Remaining
Waitlist
35
34
1
2
Days
Building
Room
Time
Wed
9:30 - 12:20