Data Structures & Algorithms
Overview
-
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
Lecture, seminars and hands-on exercises in the lab (Group work may be involved)
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).
Students may conduct research as part of their coursework in this class. Instructors for the course are responsible for ensuring that student research projects comply with College policies on ethical conduct for research involving humans, which can require obtaining Informed Consent from participants and getting the approval of the Douglas College Research Ethics Board prior to conducting the research.
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.
Prichard and Carrano, Data Abstraction and Problem Solving with Java: Walls and Mirrors, Latest edition,
Or any alternative textbook approved by the Department.
Requisites
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
These are for current course guidelines only. For a full list of archived courses please see https://www.bctransferguide.ca
Institution | Transfer Details for CSIS 3475 |
---|---|
Kwantlen Polytechnic University (KPU) | KPU INFO 2315 (3) |
Langara College (LANG) | LANG CPSC 1160 (3) |
Simon Fraser University (SFU) | SFU CMPT 225 (3) |
Thompson Rivers University (TRU) | TRU COMP 2230 (3) |
University of Northern BC (UNBC) | UNBC CPSC 281 (3) |
University of the Fraser Valley (UFV) | UFV COMP 251 (3) |
Course Offerings
Winter 2025
CRN | Days | Instructor | Status | More details |
---|---|---|---|---|
CRN
14822
|
Tue | Instructor Last Name
Bashir
Instructor First Name
Mehwish
|
Course Status
Open
|