HAMBER COMPUTER SCIENCE

WHAT IS COMPUTER SCIENCE?

Computer science is fun. It's the closest thing to having a super power.

Computer scientists use a mix of math, logic, and problem-solving strategies
in order to write instructions that computers can follow.

WHY TAKE COMPUTER SCIENCE?

You will need to take computer science courses if you plan to study:

  • Mathematics
  • Engineering
  • Science
  • Commerce
Taking a computer science course in high school can help you get a head start and a solid foundation.

However, regardless of your future career choice, you can still benefit from learning how to code. Computers are used everywhere in society, and understanding how to program computers is a useful skill. There’s a growing demand for people who can program computers to solve new challenges. In addition, studying computer science will teach you valuable problem solving skills applicable to other areas.

NATIONAL RECOGNITION

Because of its success, Hamber has received nationwide media attention. Global News has TV footage showcasing the program and The Globe and Mail has published an article.

The Globe and Mail's article about Hamber

CANADIAN COMPUTING COMPETITION

Every year, the top computer science students in Canada compete in the prestigious Canadian Computing Competition, hosted by the University of Waterloo. Students work to solve five problems by writing computer programs. The problems vary in complexity, and the top students in each national region are awarded champion status recognition.

As of June 2018, Hamber has won the Western Canadian Junior Championship eight times.
In the 2013 competition, Hamber broke a national record with four perfect scores.
In the 2014 competition, Hamber broke its own record with eleven perfect scores.

HAMBER'S JUNIOR CCC CHAMPIONS

  1. 2018


    Nicholas Tan
  2. 2014


    Brennan Wilkes
    Rhys Rustad-Elliott
    Cheuk Yin Ng
    Benjamin Moir
    Heather Li
    Nicholas Hu
    Devin Gibson
    Paul Froese
    Ben CHapman-Kish
    Ryan Carrusca
    Tim Barry
  3. 2013


    Jasper Chapman-Black
    Phillip Wong
    Emmanuel Sales
    Ari Blondal
  4. 2012


    Ulysses Zheng
  5. 2011


    Leon Jiang
  6. 2010


    Kevin Luo
  7. 2008


    David Woods
  8. 2007


    Sanae Rosen

We offer three courses, all of these courses are taught in the Linux Computer Lab (Room 307).

The programming languages and libraries used in class are all cross-platform,
so students are able to run their applications on all operating systems (Windows, Mac, Linux)

JUNIOR PROGRAMMING

COURSE CODE: INT10/ICTP11A

Junior Programming is designed for students without any previous experience in computer science. Students will be introduced to fundamental concepts of programming using the wonderful Python language. Students will also learn the basics of how to use a Linux operating system, as well as basic hardware concepts such as logic gates and the binary number system. Many concepts will be covered, and students should be prepared to learn something new every class.

  • Python Language Fundamentals
  • Simulations/Games
  • Simple Encryption
  • Binary Number System and Logic gates
none
none

INTERMEDIATE PROGRAMMING

COURSE CODE: ICTP11B / ICTP12A

Intermediate Programming is intended for students who have successfully completed the junior course. Students will learn how to write GUI (Graphical User Interface) applications using the pyFLTK library. Students will learn how to create arcade-style video games using the pygame library. Students will be introduced to the paradigm of object-oriented programming (OOP). Students will also be introduced to network programming.

  • Creating games with libraries Pygame and pyFLTK
  • Object Oriented Programming using Python
  • Network programming using Python

SENIOR PROGRAMMING

COURSE CODE: ICTP12B

Senior Programming is intended for experienced students interested in further computer science study. Students will be introduced to complex concepts through the C/C++ language, such as pointers, dynamic memory, classes, inheritance and polymorphism. In addition, students will learn how to create video games in C++ using the SFML library. Students will also be exposed to higher level mathematics such as integral calculus and matrix algebra.

  • C/C++ Language Fundamentals
  • Pointers and Dynamic Memory Allocation
  • Linked Lists and Binary Trees
  • Exposure to post-secondary level Mathematics
  • Introduction to SFML video game library
  • Introduction to GIT version control
none

How to Think like a Computer Scientist

Web-book - Python 3.0

A great web-based book with runnable examples on the topic of problem solving using python.

Problem Solving with Algorithms and Data Structure

Web-book - Python 3.0

An amazing book that exposes readers to the importance of algorithms and data structure.

Byte of Python

PDF Book - Python 2.7+

A concise and to-the-point python book, this book is also used for the junior programming course.

Python Tutor

Code Visualizer - Python 2.7+

A web-based code visualizer capable of producing step-by-step visual representation of program execution.

Official Python tutorial

Documentation - Python 2.7+

The official documentation and tutorial from the python website.

Code Abbey

Click on the Problems Tab on the website

A popular web site to test your python programming skills.

Python Module of the Week

Documentation - Python 2.7+

An in-depth documentation with code examples for some of Python's secret but powerful modules.

Python for You and Me

Web-book - Python 2.7+

Another python web-book with highlighted code example, a great resource to utilize in your learning.