PRG 11/12 Python

Last Updated: September 1, 2023
See Also: PRG 11/12 Java

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


  • 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: Java for next year’s curriculum.

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.


Big Ideas:

  • User needs and interests drive the design process.
  • Complex tasks require different technologies and tools at different stages.
  • Tools and technologies can be adapted for specific purposes

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.
  • and more …


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

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: Click here for the tentative daily schedule. The timeline may be subjected to change at the teacher’s discretion.

  • Python Programming
    • Keyboard Input Output
    • Numeric and String Operations
    • User-Defined and Built-In Functions
    • Conditions and Loops
    • Lists and Tuples
    • Sorting Algorithms
    • Graphical User Interface
  • Independent Directed Studies (Elective Unit):
    • MIT AppInventor
    • Unity 3D

Student Materials: Students will bring the following to class:

  • Headphone or earbud (2.5 mm jack)
  • Optional: Laptop computer (Windows/Mac/Linux)

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 are encouraged to proactively seek the teacher to get their late assignments marked. 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:

  • Python Assignments x 8 (52-55%)
  • Tests x 2 (25-28%)
  • Elective Assignments (20%)

The cut-off dates are as follows:

2023-2024 Semester 1 Semester 2
Interim October 4, 2023 February 28, 2024
Midterm November 3, 2023 April 12, 2024
Final January 26, 2024 June 21, 2024

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).