Welcome to Computer Programming 12
This fast paced course has been designed to build off of the structure introduced in Programming 11. We will revisit familiar units of study but with an entire new level of depth. For example, in Programming 11, we studied HTML and CSS; in Programming 12 we delve into JavaScript (the behaviour side of web development). Everything in this course is unique but relates to a larger whole. We endevour to keep the units covered in the course practical with the goal of giving you the skills to bring your own creative ideas to life. Practicing, building, reverse engineering, iterations and add on's are all strategies we deploy to help you innovate. Although there is some theory in this course, the guiding principles are practical and useful. I do hope that you enjoy this course and that you have a lot of fun along the way!
Drop Box - Programming 12 - Block 3 (spreadsheet only)
Drop Box - Programming 12 - Block 4 (spreadsheet only)
Create a one Drive share link - create an 'on line' spreadsheet for sharing course assignments
Create and Share links in ONE drive - A 'how to' guide
Example - T Linburg - (using Google Sheets - but you could use your Microsoft version of Excel)
T Linburg - grade and assessment link spreadsheet (adjust the share permissions to allow Mr. Linburg to edit)
Module # 4 -Introduction to Object Oriented Java Book II
Java Textbook # 2 - Please download
Object Oriented Java Textbook 2 - download the PDF off this link!
OOP's data files for exercises (please download this as well!)
In this final Java course segment, we will be learning about Object Oriented Java OOP's. This is what Java is known for.
Please be sure you have the CORRECT JDK for this segment. Please go to the following site (you'll need an account) and install from here (bottom of the page)
x86 Installer 139.66 MB jdk-8u391-windows-i586.exe
If you're having some difficulty please follow this step by step guide as outlined by Lucas! Thanks Lucas :)
Click on the link and download java jdk 22
https://www.oracle.com/ca-en/java/technologies/downloads/#jdk22-windows
download: https://download.oracle.com/java/22/latest/jdk-22_windows-x64_bin.exe
After installing, open a windows PowerShell and type: javac -version
You should get: javac 22.0.1
Means you have successfully installed the JDK.
In the PowerShell, type: ls (“L” as in “list”) this command lists all the folders in current directory.
When you first open the PowerShell, your prompt is:
PS C:\Users\your id >
Ex: PS C:\Users\Mitchell>
Type: cd Documents
cd means “change directory”. Whatever comes after cd, it will move the directory to that file. (Ex, “cd Documents” will lead you to Documents directory.)
You should see: PS C:\Users\your id\Documents>
Type ls again to see if there are any other contents of your Document's directory. (you should not see any output, since the folder is currently empty)
Type: mkdir javahard2
(mkdir means make directory)
This will create a new folder in the current location.
Locate yourself to javahard2 folder by typing: “cd javahard”, then type ls and it should not list anything since the directory is empty.
Part I - Introduction (reading / note taking)
Please read through the following links to help you get started! You are asked to make a short summary of key concepts listed below (part A and part B)
(One page in total from the following links - 'mix and match' - You decide what is important)
Section A - OOP's - what is it?
Key OOP's concepts / Another good guide
Here are two graphics that outline general Object Oriented Java principles within the context of a soccer game.
Section B - How is OOP's different
Why OOP's - how is it different or better than using traditional programming?
summary of some of the key concepts of OOP's (Object Oriented Programming)
OOPs with coding examples
Part II - OPP's Related practice lessons (see attachment section for data files and Java web sites)
Here is the link for the first collection of exercises - 12 lessons in total (links located here) - Same lessons as the PDF textbook...perhaps this format is easier access (up to you). - the last FIVE exercises will require the textbook!
Technical specifics of creating OOP's applications
1) We do NOT USE AN IDE like Netbeans for Object oriented lessons we use terminal shell.
2) Figure out how to open windows terminal shell x86 to type in commands (see lesson "0" for more info)
3) Add the JDK to the system PATH - should have already been done - but you should check
4) Please do ONE of the study drills from EACH of the 12 lessons.
If you're having problems seeing an output message be sure you have complied first Java C then run the exercise!
Great reference guides
OOPs explained with great examples!
Part III - Make your own app (either OPP's based or based on other Java skills)
In the next segment you will harness your newfound skills with OOP's to either create an original application or complete a pre existing project (with your own modifications).
Option 1 - Create your own based on the lessons covered so far (concepts based on lessons 1-12)
In the first option, you could create a calculator that uses the square root function mentioned in one of the lessons. However, our skills are still fairly limited so you could also rewrite an EXISTING exercise with different functions from both book ONE and book TWO. I know this is rather general but it follows a similar theme of reinvention as described in other previous lessons.
Option # 2 - Make a game and / or a specific application using one of the links below as a guide.
Here are some Java based programs that you can make with OOPs (and other Java based skills)
Create a billing system (with click interface!)
A snake game in Java / Alternate instruction set (the other one seems 'buggy')
A collection of interesting Java based coding projects
Make a Java based guessing game (sorry I know we've 'been there done that') but take a look! /
If these don't work then try these links
Option # 3 - Game of "Floppy Bird"
A fun game to make for your Java based skills! / Link to a student made game collection (examples - can't speak to ALL their quality however :) )
Module # 3 Java Textbook
In this unit we will complete our knowledge of classical programming before moving on to BOOK TWO in which we start to learn about how to use coding 'snippets' within an Object Oriented Context. This first segment will allow us to learn more about
In this follow up assignment, you are now tasked with scripting a collection of text based programs using "our coding textbook friend" Learn Java the Hard way (end of book one). They use "netbeans' but you should use Visual Studio.
Click on this one drive link and download the textbook resource
How to use Visual studio for Java
Part I Write output programs in Visual Studio (second half of book one)
(*) please do ONE study drill at the end of each of these exercises.- only submit the exercise AFTER you have done the study drill (in other words the MODIFIED one) - add a developer comment to make sure I know WHICH study drill you completed.
# 25 Repeating yourself with the while loop
# 26 A number Guessing game
# 27 Infinite Loops
# 29 Do-While Loops (*) More challenging (More background info on Do-While loops - )
The Key difference between While Loops and Do...While loops is...
The do...while loop is similar to while loop. However, the body of do...while loop is executed once before the test expression is checked.
This is as opposed to the 'While loop" which...
Java while loop is used to run a specific code until a certain condition is met. The syntax of the while loop is:
# 30 Adding values one at a time
# 33 Calling a Function
# 34 Calling Functions to draw a flag (*) note - if you can, draw any flag you wish for this exercise
# 35 Displaying Dice with Functions
# 36 - Returning a value from a Function (*) More challenging
# 44 Counting with a For Loop
# 47 - Generating and Filtering Values
# 48 - Arrays - Many values in a single Variable
# 49 - Arrays continued
Part II - Making a Diverse range of Apps with Java
We will now pause and try to find practical uses and application for the Java related skills that we have learned so far. What sort of things can we make with our new found skill set. Take a look at some of these links. Hopefully you might find ONE project you have an interest in making. If not, then you could search for one to your liking. These links have a diverse range of options. Have fun and happy coding!
15 Top Java Projects to make (with source code)
(*) Some of the above links aren't tutorials per se but rather guides or examples of what your project might look like
Module # 2 - Using JavaScript to make your own games -
We are now moving on from 'studying' other peoples exceptional coding projects and transitioning to our role as developers. You will use this guide to help you write your own game of 'Hangman'. You are, of course, encouraged to personalize it and change its look and design AFTER you have finished the basic constructions steps. Happy coding! :) At the end of this, we will submit these to peer assessment and get a chance to try everyone else's creations!
For this module please use VISUAL STUDIO COMMUNITY (you can see an outline here!)
JavaScript explained (a great feature summary!)
Part I (Choose either A or B)
A) Create your very own game of 'Hangman' - the classic work guessing game! (*) This one is different...based on Alerts! Try to make 5 changes to how the game functions or appears!
Version I Hangman basic instruction set (JavaScript) (You will also find a PDF copy of this in the Programming 12 hand in folder)
Version II - complete with source code - I would rather you enter in the code yourself and modify and personalize it
A student version modified hangman game - check it out! ) / Student project II (download folder) / Student Project III
Or
B) Game of 'Breakout' - Destroy the bricks
Take a look at this link! Please feel free to adopt it for your own purposes. You might want to build this game on Visual Studio (Community edition - free) download! (Try to personalize with FIVE changes or modifications.
Part II
Make a guessing game based on the GitHub version - FIVE modifications min.
Make a guessing game using JavaScript and incorporate FIVE modifications to how the game 'looks and plays'
MODULE # 1 - Introduction to JavaScript
Part ONE and TWO
JavaScript - one of the world's most popular computer language
Unit Description
We will be starting this unit by completing some structured introductory tutorials to help you learn the language structures; then we will give you actual working JavaScript made by developers for you to break, modify and then improve.
Finally, we will invent our own apps based upon the skills of other developers.
History of JavaScript - an interesting read!
JavaScript intro 1 / JavaScript intro 2
Section # 1 - JavaScript 'sandbox'
(# 1 - Spreadsheet) Due: Friday February 16th
W 3 Schools Introduction to Java script structures
In our very first introduction we will be using the W 3 for schools site to learn more about the history of JavaScript and to learn how its constructed. Please load the web site and do one or two 'try this' for each segment. Please try to 'break the code' and change it up anyway you see fit....and see what happens? Be sure to read through each of the segments but the threshold for completing exercises here is not very high. Think of this as an 'interactive' intro.
Please share your insights from THREE of the exercises (you should include some specific script reference). (half a page or more) (Please try to look through 12 sections)
Section # 2 JavaScript Practice - Code Academy (# 2 - Spreadsheet)
Due: Friday February 16th
Sequential Code Academy lessons (free lesson segments - see below)
Introduction / conditionals / functions / arrays / loops / classes / objects
Please complete this introductory work on JavaScript: Code Academy site. Please be sure you have completed the lessons as described above. PLEASE complete all the "free" segments. ITERATORS IS NO LONGER REQUIRED FOR CODE ACADEMY. You will submit a screen shot of your 'progress' and your account name put on a word document!
Section # 3 JavaScript "Reinvents" Utilize existing JavaScript projects to improve their function and design Due:
Please put your final renditions into Visual Studio (add the JavaScript extension) Please add a developer comment outlining the specific changes you made to the clock.
In this segment of JavaScript, we'll be working with CODE PEN and other resources to experiment with novel and creative uses for JavaScript.
Resource Guides
reference - W 3 JavaScript - reference guide to functionality and features.
(*)Note: please write a specific developer comment in the 'redo' explaining what you actually did to improve the function and design!
Project ONE - Reinvent -JavaScript Clock Due: March 8th, 2024
(# 3 Spreadsheet) - Analogue clock one, Digital Clock one
(*) Note: One option is to set up your own Code Pen Account and put your edited projects right on that hosted platform and then send me the link to your finished "reinvent". There are other methods we could discuss in class.
(*) Note: you may want to move your clock code over to either Visual Studio OR Code Pen if you have your own account. If you just edit it off of the W3 school's site there is NO save as function!
Edit in W 3 Schools -
A JavaScript clock - Please make all your changes right on the W 3 browser. Try to make a minimum of FIVE changes to its look / function / and design.
Take a look at these 'far out examples' - that you could use for your inspiration and edits! Go crazy and have fun (look below at the video for links to the ACTUAL coding samples!) - Have fun!
Here is another cool clock example!
(NOTE: we might use a different platform for this project - stay tuned)
Additional activity resources
How to set up DREAMWEAVER CC and to use it for these learning exercises (*) if you have a subscription
JavaScript clock construction / this one even has an alarm lol
Additional resource - (Re: smoother clock functioning blog discussion)
Project TWO -Reinvent - Edit HTML / CSS / JavaScript together (# 4 - Spreadsheet) Due: March 8th, 2024
Take this dreadful looking clock and related message boxes and make TEN changes to the look and behaviour. This could include ONE HTML change / ONE CSS change / and SEVEN JavaScript modifications (i.e. modify a function or change an array)
Project THREE - Reinvent - Modify the Code Pen version of the game hangman - (# 5 - Spreadsheet)
Experiment and make 10 to 15 changes
A JavaScript game of hangman - Experiment with this JavaScript version of Hangman. Use the reference guides provided. Try to read through the ENTIRE JavaScript, experimenting and changing it as you go. You are only using this for practice, so break it in all ways that you can think of. All your changes will show in the display at the bottom of the page.
Here is a useful 'textbook' help guide that helps walk you through the code for this game!