Programming 11/12: Course Outline

Teacher: Mr. Colin Kam
Room: 142

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 and Programming 12 are programming courses in which students learn logic, algorithm, debugging, design and analysis through language. More important than the language 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 Java SE.

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: Scripting  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.

  • Programming 11/12
    • Keyboard Input Output
    • Math and String Operations
    • Conditions and Loops
    • Static Methods
    • Fixed Arrays
    • Encryption / Decryption
  • Programming 12: Java IDS †
    • Content from Programming 11/12
    • Variable-Length Arrays, 2D Arrays
    • File Input Output, Sound Output
    • Graphical User Interface

† Note: Programming 12 students may elect to learn Java Console (guided learning) or learn Java Swing GUI in small cohorts (independent learning). 

Student Materials: Students will bring the following to class:

  • Microfiber cloth
    • To wipe off the keyboards before and after use.
    • Disinfectant solution available in class.
  • USB Flash Drive (2GB or more) is recommended.
  • Headphone or earbud (2.5 mm jack)

Assignments: Students are provided a sufficient amount of time in class and at home 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.

Students who struggle with content need to seek help from the teacher immediately. If required upon teacher’s discretion, alternative assignments may be available.

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. Respect yourself and others.
  4. Take good care of school property.
  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: Regular Cohort
    • Assignments x 8 (60%) 
    • Quizzes x 2 (40%)
  • Programming 12 Java Cohort:
    • Projects x 4 (60%)
    • Quizzes x 2 (40%)

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, 2020