Alexander College Logo

Overview

Learning MethodsMajor FocusThe AC DifferenceCareer Outlook

Learning Methods

All components of every Computer Science design have some active learning strategies incorporated into them such as think-pair share, debate, programming or research projects, and multimedia presentations.

Major Focus

A major focus of the courses is on the development of skills in computational thinking and programming through practice, critical thinking, and innovation.

The AC Difference

Provide high quality education in the areas of Computer Science to a diverse student population in a supportive environment. We offer courses that provide our students with the skills necessary for transfer, career success, and lifelong learning. A primary goal for every Computer Science class is to actively engage students with the material through practice, practice and practice.

Career Outlook

Alexander College introduces Computer Science courses for students who are looking to enhance their skills with technology, from the basics of computers, to the skills and knowledge required to become a Software developer.

Course Descriptions

Select a course below to see full descriptions. (#) Indicates amount of credits per course

CPSC 100 Elements of Computer Science (4)

An introduction to elementary concepts in Computer Science. Topics include: history, hardware, software, user applications, networks, and programming.

Prerequisite(s):

ENGL 088 (formerly EASL 089, ENGL 097), MATH 12 is recommended

Transfers to:

SFU CMPT 1XX (4)
UVIC CSC 100 (1.5)
UNBC CPSC 1XX (3)
TRU COMP 1000 (3)

CPSC 111 Introduction to Computation (4)

Basic programming constructs, data types, classes, interfaces, protocols, and the design of programs as interacting software components.

Prerequisite(s):

ENGL 088 (formerly EASL 089, ENGL 097), MATH 12 (C) or MATH 099 (C) or MATH 100

Transfers to:

UBC CPSC 1st (4)
SFU CMPT 120 (3), Q/B-Sci
UVIC CSC 110 (1.5)
UNBC CPSC 110 (3), CPSC majors see Academic Advisor
TRU COMP 1130 (3)

CPSC 112 Introduction to Programming (4)

Continues the introduction of programming begun in CPSC 111, with a particular focus on the ideas of data abstraction and object-oriented programming. Topics include object-oriented programming, fundamental data structures, recursion, programming paradigms, principles of language design, virtual machines, and an introduction to language translation.

Prerequisite(s):

ENGL 098, CPSC 111

Transfers to:

UBC CPSC 1st (4), Exempt UBC CPSC 260
SFU CMPT 125 (3), Q & SFU CMPT 127 (0), Exemption & SFU CMPT 128 (0), Exemption
UVIC CSC 115 (1.5)
UNBC CPSC 101 (4)
TRU COMP 1230 (3)

CPSC 115 Discrete Structures I (3)

Offers an intensive introduction to discrete mathematics as it is used in computer science. Topics include functions, relations, sets, propositional and predicate logic, simple circuit logic, proof techniques, elementary combinatorics, and discrete probability.

Prerequisite(s):

ENGL 088 (formerly EASL 089, ENGL 097), MATH 12 (C) or MATH 100 (C)

Preclusion:

Students with credit for MATH 115 may not take CPSC 115 for further credit.

Transfers to:

UBC CPSC 1st (3), Exempt UBC CPSC 121; ALEX CPSC 115 (3) & ALEX CPSC 150 (3) = UBC CPSC 121 (4) & UBC CPSC 1st (2)
SFU MACM 101 (3), Q/B-Sci
UVIC MATH 122 (1.5)
UNBC CPSC 141 (3)
TRU COMP 1380 (3)

CPSC 150 Computer Organization and Logic Design (3)

This course introduces the internal operation of computer systems. Topics include: Boolean algebra and combinational and sequential logic design, basic computer system organization, processor, memory, and input/output, information representation: number systems, integer floating point representation and character encoding, and an introduction to assembly language programming.

Prerequisite(s):

ENGL 098, CPSC 111 (CPSC 115/MATH 115 is strongly recommended)

Transfers to:

UBC CPSC 1st (3); ALEX CPSC 115 (3) & ALEX CPSC 150 (3) = UBC CPSC 121 (4) & UBC CPSC 1st (2)
SFU CMPT 1XX (3)
UVIC CSC 1XX (1.5)
UNBC CPSC 230 (3)
TRU COMP 1XXX (3)

CPSC 165 Introduction to Internet Concepts and Web Design Principles (4)

This course introduces students to basic planning and designing of effective web pages; implementing web pages using HTML (Hypertext Markup Language) and CSS (Cascading Style Sheets); enhancing web pages with the use of page layout techniques, text formatting, graphics, images, and multimedia; and producing a functional, multi-page website. It does not require nor expect any prior knowledge of HTML or Web design.

Prerequisite(s):

ENGL 088 (formerly EASL 089, ENGL 097), 3 credits first-year CPSC

Transfers to:

SFU CMPT 165 (3), B-Sci
UVIC CSC 1XX (1.5)
UNBC CPSC 1XX (3)

CPSC 215 Discrete Structures II (3)

This course is a continuation of CPSC 115 – Discrete Structures. It covers widely applicable mathematical tools for computer science. Topics include: inclusion-exclusion, generating functions, recurrence relations, graphs and trees, cycles and paths, shortest-path algorithms, minimal spanning trees, tree transversal and applications of trees and graphs.

Prerequisite(s):

ENGL 098, CPSC 115 or MATH 115

Transfers to:

UBC CPSC 2nd (3); ALEX CPSC 215 (3) & ALEX CPSC 225 (4) = UBC CPSC 221 (4) & UBC CPSC 2nd (3)
SFU MACM 201 (3), Q
UVIC MATH 222 (1.5)
UNBC CPSC 242 (3)
TRU MATH 1700 (3)

CPSC 225 Data Structures and Object-Oriented Programming (4)

This course is intended for students who plan to major in Computer Science, Computer Information Systems, Engineering, or any Management and Systems Science (MSSC) majors. It introduces computer program design and development with a primary focus on analysis and design of a variety of fundamental data structures and abstraction using a popular object oriented programming language. Particular emphasis is given to fundamental computing algorithms for searching, sorting, hashing, and string processing; elementary abstract data types including lists, stacks, queues, heaps, sets, and trees; and time and space efficiency analysis.

Prerequisite(s):

ENGL 098, CPSC 112, CPSC 115 or MATH 115

Transfers to:

UBC CPSC 2nd (4), Exempt UBC CPSC 221; ALEX CPSC 215 (3) & ALEX CPSC 225 (4) = UBC CPSC 221 (4) & UBC CPSC 2nd (3)
SFU CMPT 225 (3), Q
UNBC CPSC 281 (3)
TRU COMP 2230 (3)

CPSC 250 Introduction to Computer Architecture (3)

This course introduces the fundamental computer organization and instruction set architecture concepts. Particular emphasis is given to the organization and design of the major components of modern digital computers. Topics include: processor organization, control logic design, pipelining, memory hierarchy, input/output control and devices, instruction set design, and architectural support for operating systems and programming languages. A hardware description language will be used as a tool to express and work with design concepts.

Prerequisite(s):

ENGL 098, CPSC 150

Transfers to:

UBC CPSC 2nd (3)
SFU CMPT 2XX (3), Q
UVIC CSC 230 (1.5)
UNBC CPSC 231 (3)
TRU COMP 1XXX (3)

CPSC 276 Introduction to Software Engineering (3)

This course covers the theory and major processes of software development and project management.
Topics include requirements analysis, software design, implementation, testing, maintenance, and ethics as related to software. Students will gain practical experience with software development tools and working in a team with other students to create applications.

Prerequisite(s):

ENGL 099, CPSC 225, CPSC 115 or MATH 115, MATH 151 or MATH 104 (B)

Transfers to:

SFU CMPT 276 (3)
UNBC CPSC 300 (3)
UVIC SENG 2XX (1.5)

CPSC 295 Introduction to Computer Systems (3)

This course introduces the fundamental computer organization and instruction set architecture concepts. Particular emphasis is given to the organization and design of the major components of modern digital computers. Topics include: processor organization, control logic design, pipelining, memory hierarchy, input/output control and devices, instruction set design, and architectural support for operating systems and programming languages. A hardware description language will be used as a tool to express and work with design concepts.

Prerequisite(s):

ENGL 099, MATH 115 or CPSC 115, CPSC 111, CPSC 112

Transfers to:

SFU CMPT 295 (3)
TRU COMP 2130 (3)

Faculty

Ahmed Malki (PhD, Ingénieur en informatique)

Instructor

Ahmed Malki (PhD, Ingénieur en informatique)

Instructor

Dr. Ahmed Malki, Adjunct Professor, holds a Ph.D. in Computer Science from New Mexico State University in the U.S.

He has taught courses at undergraduate and graduate levels such as Programming Fundamentals using C++, Java and Python, Data structures using C++ and Java, Operating systems, Computer Architecture, Concurrency and distributed systems, Computer Algorithms, Discrete Mathematics, Management Information Systems and E-Commerce Web Design and Systems Analysis and Design.

He joined the Science Department at Alexander College in September 2010.

Muntaseer Salahuddin (MSc, BSc)

Instructor

Muntaseer Salahuddin (MSc, BSc)

Instructor

I am an instructor in Computing Science with a MSc from Simon Fraser University.

I have taught programming courses at various levels to undergraduate students as well as gaming professionals.

I have been at Alexander College since 2017.

Radwa Hammad (MSc, BEng)

Instructor

Radwa Hammad (MSc, BEng)

Instructor

My name is Radwa Hammad. I hold a M. Sc. in Computer Science from University of Northern British Columbia in Canada.

I have taught courses at undergraduate, such a Systems Analysis and Design, Programming Fundamentals using C++, Java, C#, and Python, linear algebra, differential equations.

My research interests are image compression, image retrieval and indexing, digital image forgery detection, and data mining.

Seva Lynov (MCS)

Instructor

Seva Lynov (MCS)

Instructor

Seva joined our Alexander College team in 2022. He received his MCS (BGKU, Ukraine) in social computer science. Prior to Alexander College, he taught at Okanagan College, UBC (Okanagan), and various educational institutions in Ukraine. His focus is on clarity and simplicity as well as students’ involvement and self-reflection.

Kelly Cheung (PhD, MSc, BASc)

Math and Science Department Head, Instructor

Kelly Cheung (PhD, MSc, BASc)

Math and Science Department Head, Instructor

Dr. Cheung has been teaching at Alexander College since 2011. He received his MSc (University of British Columbia) and PhD (Simon Fraser University) in computational condensed matter physics. In addition, he obtained his BASc in Engineering Physics: computer science stream with math honors (University of British Columbia). Prior to teaching at Alexander College, he completed research for PMC-Sierra (now Microsemi), TRIUMF, and D-Wave Systems. His focus is always on how to make course material as easy as possible to understand and applying this knowledge in different situations.

Resources

Google for Education

Open Textbook Library

Your Blown to Bits

Important Role of Digital Information – A Bit About Bits

Information Technology

Hour of Code Activities

Programming Languages

Python

Python Tutorial

Beginning Python Programming

Codingbat

The Python Standard Library

Python Tutor

Turtles

Turtle graphics

Notes on using Python’s turtle built-in commands

Turtle Power

Want more fun with turtles?

Java

Oracle Java Tutorials

API Specifications

Codingbat

Java Tutor

An Interdisciplinary Approach

Sorting Algorithms

Sorting Algorithms Animations

HTML & CSS

HTML Tutorial – W3Schools

CSS Tutorial – W3Schools

JavaScript

JavaScript Tutorial – W3Schools

JavaScript Tutor

More Information

Other Languages

Preparing for a technical interview?

Looking to start the application process? Apply to AC here
You can apply online above or request additional information below.

Request Enrolment Information