Programming 11/12: Course Outline

Teacher: Mr. Colin Kam
Room: 142
Blocks: 1-1, 1-2, 1-4

Indigenous Acknowledgement: We acknowledge that we live, work, play, and learn on the unceded and traditional territory of the xʷməθkʷəy̓əm (Musqueam), sel̓íl̓witulh (Tsleil Waututh) and sḵwx̱wú7mesh (Squamish) Coast Salish peoples.

Indigenous knowledge and perspectives are an important part of the historical foundation of both B.C. and Canada and are integrated into every subject in the new curriculum. All students will have opportunities to better understand and respect a variety of cultures, both their own and others.


  • Programming 11:
    • Grade 10/11 student who has taken Computer Studies 10
    • Grade 11/12 student with solid math background.
  • Programming 12:
    • Grade 11/12 student who has taken Programming 11
    • Grade 12 student with strong math background.

Programming 11/12 is a full-year programming course in which students learn logic, algorithm, debugging, design and analysis through language. More important than the language though is the understanding of programming constructs such as data types, control statements, arrays and classes, and object-oriented programming concepts. This year will focus on Python and Visual C#.

It is recommended that students take Programming 11 and Programming 12 in consecutive years, since these courses run on two-year cycles. See Programming 11/12: App Development for next year’s curriculum.


Big Ideas:

  • User needs and interests drive the design process.
  • Complex tasks require different technologies and tools at different stages.

Curricular Competencies:

  • Make decisions about premises and constraints that define the design space
  • Identify and apply sources of inspiration and information
  • Identify feedback most needed and possible sources of feedback
  • Develop an appropriate test of the prototype
  • Collect feedback to critically evaluate design and make changes to product design or processes
  • Identify appropriate tools, technologies, materials, processes, and time needed for production


  • Advanced programming structures and user-interface design
  • Problem decomposition and management of complexity
  • Uses of pre-built libraries and data structures
  • Computational thinking processes

All courses also emphasize the Core Competencies, a set of intellectual, personal, and social and emotional proficiencies that all students need to develop to engage in deep and life-long learning. The three core competencies are:

  • Communication: competencies encompass the knowledge, skills, processes, and dispositions we associate with interactions with others. The communication core competency has two interrelated sub-competencies: Communicating and Collaborating.
  • Thinking: competencies encompass the knowledge, skills and processes we associate with intellectual development and is demonstrated through Creative thinking and Critical thinking
  • Personal & Social: competencies relate to students’ identity in the world, both as individuals and as members of their community and society. This includes Positive personal & cultural identity, Personal awareness & responsibility, and Social responsibility

Schedule: The timeline may be subjected to change at the teacher’s discretion.

  • Terms 1 to 2: Weeks 1 to 13: Python 3† (Algorithms):
    • Input and Output
    • Numeric and String Operations
    • Lists and Tuples
    • Control Statements
  • Term 3: Weeks 14 to 20: Visual C# (GUI)
    • Principles of Design
    • Classes and Objects
    • Advanced Algorithms

† Alternate assignments may be available for students who struggle with coding.

Student Materials: Students will bring the following to class:

  • USB Flash Drive
  • Headphone or earbud (2.5 mm jack)
  • Agenda
  • Optional: Laptop with Windows or Mac

Assignments: Students are provided a sufficient amount of class time to complete their assignments. This allows the teacher to give instant and on-going feedback; the teacher expects nothing less than quality end-products.

Late assignments will be counted as missing (i.e. zero) until they are marked, usually at a much later time. Students may request an extension before the deadline, and it is only granted on an individual basis under special circumstances.

Python assignments can be completed at home on either Windows or Mac computers. However, Visual C# assignments must be completed on Windows. Mac users can use Bootcamp or VirtualBox to install Windows 10.

Students who require extra help can come during Flexible Instructional Period (FIT) or make an appointment with the teacher.

Classroom Rules: Students are responsible for taking full advantage of their learning opportunities. The teacher’s responsibility is to provide such opportunities, to fairly evaluate students, and to establish a safe learning environment by supporting these five classroom rules:

  1. Come to class on time.
  2. Be prepared to learn.
  3. Follow instructions the first time given.
  4. Respect others and their belongings.
  5. Keep the classroom clean.

Washroom privileges are allowed at the teacher’s discretion but not to be abused. NEVER bring food, drinks, or cell phones into the classroom, as they will be confiscated on sight and returned at the end of the day or next day.

Evaluation: Students will be evaluated on assignments, projects and tests. Term marks will be independently reported. The final mark will be calculated as follows:

  • Programming 11/12:
    • Term 1 (Weeks 1 to 7) – Python: 5 Assignments (35%) + 1 Test (10%)
    • Term 2 (Weeks 7 to 13) – Python: 3 Assignments (20%) + 1 Test (10%)
    • Term 3 (Weeks 14 to 20) – Visual C#†: 3 to 5 Projects (30%)

The reporting periods for semester 1 is as follows:

  • Oct 14: Semester 1 Interim Report
  • Nov 12: Semester 1 Midterm Report
  • Jan 28: Semester 1 Final Report

Letter grades are based on the student’s ability to meet the learning outcomes of the course, whereas work habits are reported as excellent (E), good (G), satisfactory (S) or needing improvement (N).

Last Updated: September 9, 2021