Category Archives: Programming 11/12

Welcome Back!!!

Welcome back to a new school year! Hope everybody had a safe and relaxing summer but now ready to grind our gears!!!

Mr. Kam’s Schedule in Room 142 (unless specified otherwise):

  • Block 1-1: Programming 11/12, Applied Digital Design 11/12, Digital Media Development 12
  • Block 1-2: Programming 11/12, Applied Digital Design 11/12, Digital Media Development 12
  • Block 1-3: Computer Studies 10 (formerly Programming 10) and Info Tech 9
  • Block 1-4: Computer Studies 10 and Info Tech 9
  • Block 2-1: Marketing and Entrepreneurship 8 (Business 8)
  • Block 2-2: Marketing and Entrepreneurship 8 (Business 8)
  • Block 2-4: Career-Life Education (formerly Planning 10) in Room 135

Office Hours:

  • Tutorial (8:35 – 8:55) by Appointment (
    • Day 1/1A and Day 2: Room 142
    • Day 2A: Room 134
  • Block 2-3 in Room 134

Happy New School Year 2017-18!!!

I would like to take this time to welcome you back to a new school year and to welcome you to our course website.

This year, I am extremely excited to teach Business 8, Programming 10-12, and Planning 10 and to learn the names of all the new faces at Kitsilano Secondary! 😮 This is my first year at this school but I have over 10 years of classroom teaching experience from John Oliver and Windermere Secondary School, where I have taught business education, computer science, digital media and mathematics. I look forward to get to know all of you better.

In addition, if you are interested in starting a school club or team, come see me. I am a strong believer of building strong student leadership through community involvements and initiatives. In the mean time, please make sure to bookmark and check this website regularly because its contents get updated regularly. 🙂

– Mr. Kam

Social Media:

Programming 11/12: Java Homework (Lesson 1 to 5)

The Java unit will primarily be assessed through portfolios and tests. The purpose of this homework portfolio is to reflect your learning process of the Java programming language through self-inquiry and practice. It is important to note that reflections are not merely a mirror in which you summarize the content of each lesson, but rather a lens in which you deeply gauge your understanding, break down your thought process and connect ideas to create personal meaning. The portfolio will be submitted onto Google Drive.

Note: You may use content from your portfolio on your 1-page “cheat sheet” that you take to your test. The cheat sheet has to be printed out on paper.  Continue reading

Programming 12: Merge Sort Algorithm

The merge sort algorithm is one of the fastest algorithms that exists for sorting arrays. Consider the following algorithm and example for sorting the array that contains (3, 4, 1, 5, 2, 7, 6}. Despite its complicated algorithm, merge sort is the fastest algorithm at O(n log2n) compared to selection, insertion and bubble sorts at O(n2).

Continue reading

Programming 11/12: Sorting Algorithm (Video Assignment)

For this assignment, you will create a short video that demonstrates how one of the sorting algorithm works using a regular set of playing cards. In the video, you must (1) identify which sorting algorithm that you have chosen, (2) explain what the purpose is and how the algorithm works (in subtitles), (3) implement the algorithm on some randomly-shuffled cards, and (4) count the number of steps to sort the cards. To improve your communication with your audience, you may want to explain what is going on step by step. Continue reading

Programming 12: Sic-Bo (骰寶)

Simplified Rules of Sic-Bo:

  • Player enters the table with money in his/her wallet.
    • Player can bet any whole-number amount he/she chooses less than or equal to the amount they have in their wallet. (Minimum $1)
    • Player places a bet on either BIG or SMALL based on the sum of three dice.
      • SMALL: 4 to 10
      • BIG: 11 to 17.
  • Dealer randomly rolls three dice (each dice is numbered 1 to 6) after bet is placed.
    • Dealer wins if the player misplaces the bet OR if the dealer rolls a triple (e.g. 1-1-1, 2-2-2, etc.). For example, if the player bets $5 and loses, then the player loses $5 from his wallet.
    • Player wins a 2:1 payout if he/she guesses correctly. For example, if the player bets $5 and wins, then the player gains $5 from his wallet.
  • Game is over when either player cashes out or has no more money.

Continue reading

Programming 12: Math Operations

In an earlier lesson, the class created a form called Math Operations in which it has two text fields for user input and four buttons for the four basic arithmetic operations. mathopsThe class then typed in code for the “Add” button in which it calculated the sum of two numbers in the text fields but crashed when one of its input is numeric. This issue was addressed in the String Operations example in which the class learned how to check if the input in the text fields are numeric and how to combine two or more strings. These examples can be found on the school network drive under S:\Handout\Programming 11-12.

Note: You must copy the folders onto your desktop or your storage device. You will not be able to save and run from the read-only network drive.


You will modify the Math Operations example that meets the following criteria

  1. The results can be decimals. For example, if 12.1 and 23.4 are entered into the text fields, the result is 35.5.
  2. The program adds, subtracts, multiplies and divides numbers. It then displays the result in a MsgBox.
  3. The text in the MsgBox displays a sentence. For example, if 12 and 13 are entered, it displays “The sum is 25.” rather than just “25”. To do this, review how to join strings in the the String Operations example.
  4. If one of the inputs in non-numeric (i.e. blank or text), then the MsgBox displays “Enter numbers only.”. To do this, review the IsNumeric function in the String Operations example.
  5. The text in the MsgBox displays “Unable to divide.” if the second number is zero when dividing. To do this, the input has to be a number and then check if it is zero. There are two ways to check:
    If (num2 <> 0) Then
         normal division
         error message
    End If
    If (num2 = 0) Then
         error message
         normal division
    End If

When complete, zip the entire folder in Projects and then upload the file onto the shared Google Drive folder.

Evaluation: Total 10 marks

  • Proper comments and well-labeled names (2 marks)
  • Add, subtract, multiply and divide (4 marks)
    • Provides correct answers.
    • Includes decimal inputs and outputs.
  • Exceptions (2 marks)
    • Non-numeric
    • Division by 0
  • Visual Design (2 marks)
    • Displays “The result is ___.” with a period.
    • No spelling, grammar or punctuation errors in MsgBox.
    • Visually nice and easy to use.


  1. Take time to edit the “Add” button properly so that it displays the result in a sentence and handles non-numeric inputs properly. After this is done, copy/paste and modify the other three arithmetic operations.
  2. To display a number with a string in a message box, you need to type:
    MsgBox("The sum is " + sum.ToString())
  3. To check if your text fields are numeric, you need to type:
    ' Create variables
    Dim num1 As Decimal

    If (IsNumeric(Input1.Text) and IsNumeric(Input2.Text)) Then
         ' Store into variables
         num1 = Input1.Text
         ' Calculate and display result
         ' Display error message
    End If

  4. Handle the “division by zero” exception last. Hint: Both inputs must be numbers before you can check if the second input is zero.