Request Enrolment Information

Submit the form to request information about enrolment.

We may have your questions answered already! Have you tried these helpful links?


Looking to start the application process?
An online application is now available on Alexander College’s new student portal, myAC. Continue to the application process here: Apply to AC

Overview

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
A major focus of the courses is on the development of skills in computational thinking and programming through practice, critical thinking, and innovation.


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 097

Transfers to:
UBC NO CREDIT
SFU CMPT 1XX (3)
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 097, MATH 12(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 Advising
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
UVic CSC 115 (1.5)
UNBC CPSC 101 (4)
TRU COMP 1230 (3)

CPSC 115 Discrete Structures (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 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
SFU MACM 101 (3) Q/B-Sci
UVic MATH 100 Lev (1.5)
UNBC CPSC 141 (3)
TRU COMP 1380 (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 097, 3 credits first-year CPSC

Transfers to:
SFU CMPT 165 (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:
SFU CMPT 225 (3)-Q
SFU CMPT 165 (3)

Enrico Tanafranca

Instructor

Enrico Tanafranca

Instructor

I am a data analytics professional with a double degree in Bachelor of Arts in Economics and Bachelor of Science in Education Major in Mathematics. I have a Master’s in Business Administration with a specialization in Operations Management. I also graduated from the Provincial Instructor’s Diploma Program of Vancouver Community College.

I am an Internet and Computer Core Certified (IC3) professional and an authorized computer and internet instructor of Certiport. Likewise, I am a Certified Microsoft Office Specialist.

My professional experiences include operations management, risk and investment analysis, portfolio management, banking and credit, e-commerce, data analytics and database development. I also conducts corporate training on planning and strategic management, and am currently pursuing my specialization in Database Development and Design.

Ahmed Malki

Instructor

Ahmed Malki

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

Instructor

Muntaseer Salahuddin

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

Instructor

Radwa Hammad

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.

The Nature of Scientific Thinking

Lessons Designed to Develop Understanding of the Nature of Science and Modeling

The Understandings of Consequence Project: Project Zero, Harvard Graduate School of Education


Google for Education

Computational thinking (CT) is a problem solving process that includes a number of characteristics, such as logically ordering and analyzing data and creating solutions using a series of ordered steps (or algorithms), and dispositions, such as the ability to confidently deal with complexity and open-ended problems.

Exploring Computational Thinking (ECT)


Open Textbook Library

Free online books for all subjects

www.open.umn.edu


Your Blown to Bits

by Hal Abelson, Ken Ledeen, and Harry Lewis

www.bitsbook.com

Important Role of Digital Information -
A Bit About Bits

Different representation of numbers such as decimal, binary, octal, and hexadecimal

Number Systems


Information Technology

Tomorrow’s Technology and You, 10/edition

wps.prenhall.com

Using Information Technology - A Practical Introduction to Computers and Communications, 5/e

highered.mheducation.com


Hour of Code Activities

Please note that the activities at the site are designed for all ages, but the content is solid computer science content that relates to what you will be learning.

www.code.org


Programming Languages


Python

Python Tutorial

Everything you want to know about Python

www.w3resource.com


Beginning Python Programming

Python open book

www.openbookproject.net


Codingbat

A useful site full of Python practice problems

www.codingbat.com


The Python Standard Library

This library reference manual describes the standard library that is distributed with Python

docs.python.org


Python Tutor

helps students overcome a fundamental barrier to learning programming: understanding what happens as the computer runs each line of code (Visualizing code)

www.pythontutor.com

Turtles

You’ll learn how to use a ‘turtle’ to draw different shapes and patterns


Turtle graphics

A popular way for introducing programming to kids

docs.python.org


Notes on using Python's turtle built-in commands

www.eg.bucknell.edu


Turtle Power

You’ll learn how to use a ‘turtle’ to draw awesome shapes and patterns.

projects.codeclubworld.org


Want more fun with turtles?

PythonTurtle strives to provide the lowest-threshold way to learn (or teach) software development in the Python programming language.

www.pythonturtle.org/


Java

Oracle Java Tutorials

docs.oracle.com


API Specifications

Java® Platform, Standard Edition & Java Development Kit Version 10 API Specification

docs.oracle.com


Codingbat

A useful site full of Java practice problems

www.codingbat.com

Java Tutor

helps students overcome a fundamental barrier to learning programming: understanding what happens as the computer runs each line of code (Visualizing code)

www.pythontutor.com


An Interdisciplinary Approach

a textbook for a first course in computer science for the next generation of scientists and engineers

introcs.cs.princeton.edu

Sorting Algorithms

Learn through YouTube videos folk dance

Select-sort with Gypsy folk dance

Quick-sort with Hungarian folk dance

Insertion sort – Insert-sort with Romanian folk dance

Bubble-sort with Hungarian folk dance

Merge-sort with Transylvanian-saxon (German) folk dance


Sorting Algorithms Animations

The following animations illustrate how effectively data sets from different starting points can be sorted using different algorithms.

www.toptal.com


HTML & CSS

HTML Tutorial - W3Schools

This tutorial teaches you everything about HTML

www.w3schools.com

CSS Tutorial - W3Schools

This tutorial will teach you CSS from basic to advanced

www.w3schools.com


JavaScript

JavaScript Tutorial - W3Schools

This tutorial will teach you JavaScript from basic to advanced

www.w3schools.com

JavaScript Tutor

helps students overcome a fundamental barrier to learning programming: understanding what happens as the computer runs each line of code (Visualizing code)

www.pythontutor.com


More Information


Other Languages

Visualize Code And Get Live Help

www.pythontutor.com

Preparing for a technical interview?

Check out our interview guides. (Check at the bottom of the page for Java, JavaScript, C++, PHP, Python, Ruby, C#)

www.toptal.com

Still can't find what you're looking for?

Submit the form and we'll get back to you as soon as we can.

We may have your questions answered already! Have you tried these helpful links?


Looking to start the application process?
An online application is now available on Alexander College’s new student portal, myAC. Continue here: Apply to AC