Douglas College wordmark
Facebook logo Twitter logo Instagram logo Snapchat logo YouTube logo Wordpress logo

Registration for the Fall 2019 semester begins June 25.  Watch your email for more details.

back to search

Data Structures & Algorithms

Course Code: CSIS 3475
Faculty: Commerce & Business Administration
Credits: 3.0
Semester: 15 weeks
Learning Format: Lecture, Lab, Seminar
Typically Offered: TBD. Contact Department Chair for more info.
course overview

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%

*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

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

course prerequisites

Min C grade or better in (CSIS 1275 or CSIS 2175)

Corequisites

None

Equivalencies

None

curriculum 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 schedule and availability
course transferability

Below shows how this course and its credits transfer within the BC transfer system. 

A course is considered university-transferable (UT) if it transfers to at least one of the five research universities in British Columbia: University of British Columbia; University of British Columbia-Okanagan; Simon Fraser University; University of Victoria; and the University of Northern British Columbia.

For more information on transfer visit the BC Transfer Guide and BCCAT websites.

assessments

If your course prerequisites indicate that you need an assessment, please see our Assessment page for more information.

noticecurriculum notice

There is an upcoming curriculum change scheduled for .
View upcoming changes