About this Course
Welcome to Grade 12 Computer Science with Mr. Payne ([email protected])
This course enables students to further develop knowledge and skills in Computer Science. Students will use modular design principles to create complex and fully documented programs, according to industry standards. Student teams will manage a large software development project, from planning through to project review. Students will also analyse algorithms for effectiveness. They will investigate ethical issues in computing and further explore environmental issues, emerging technologies, areas of research in computer science, and careers in the field.
Prerequisite: Introduction to Computer Science, Grade 11 (ICS3U)
Your Independent Study Unit - Due January 19th, 2018, 2:45pm. IN YOUR H:ICS4U folder. With marks due right after exams, the teacher does NOT HAVE TIME to hunt down your project.
PAST ISU Ideas
Curriculum Expectations Fulfillment Requirements 20% of ISU mark.
Overall ISU Rubric 80% of ISU mark.
These weightings and specifications may change. The class will be notified of changes to these documents prior to December 22nd.
ONTARIO CURRICULUM document for ICS4U
NO FOOD IS PERMITTED IN THE LAB.If you need to eat, please excuse yourself and eat in the hallway.
Dispose of all garbage BEFORE returning to the room (ie. in a hallway waste receptacle). Thank you.
--------------------------------
Java2013 Textbook
MOODLE FOR TESTS
Test on Searching, Sorting, Recursion, Big-O Notation, 2D Arrays, ArrayLists, on Wednesday December 20th
What's on the Test?
Assignment - Recursion - Due Wednesday December 13th 2:45pm
Example of Recursion converging UP to base case
Assignment - Searching and Sorting - Group assignment - Due Tuesday December 5th 2:45pm
Passing An ArrayList to a Method that returns an ArrayList
Here's the Data Input File - put it in your project folder
Unit Test - Object Oriented Programming - Wednesday Nov 22nd - PREPARE! PREPARE! PREPARE
Review Document
Enter the following code in a fresh project and take note of the results.
int theNum = 002;
String theNumS = "002";
System.out.println(theNum);
System.out.println(theNumS);
This is a test HINT!!!
--------------------------------------------------------------------------------------------------
Assignment - File I/O And Encryption - Due Wednesday Nov 17 (extended from 15th) at 2:45pm. This assignment will NOT be in your Midterm Report. Knowledge and Thinking responses to be typewritten, numbered and handed in to your teacher by 2:45pm on Friday November 10th. This assignment was assigned on Wednesday November 8th.
For testing, SHA-256 was used for encryption
user 'joe' the password is 'puppy'. user 'mary' the password is 'flower'
********************************* NOTICE - OCTOBER 18 11:30am**********************
DO NOT BE ASKING USER FOR INPUT IN THE CoffeeMachine or CoffeeCup classes/methods.
You may output completion messages from the methods in these classes
but ALL USER INPUT HAPPENS IN CoffeeKlatch main()
*********************************************************************************************
Assignment - Coffee Klatch Due Wednesday October 25th, 2017 at 2:45pm
Example Run of program
Assignment - Topics in Computer Science - Emerging Technologies - Due Monday October 23rd, 2017 at 2:45pm.
You must go to this forum and declare your topic
You will be submitting your report electronically and it may be checked by a plagiarism engine.
UNIT TEST 1 - Java Concepts review - FRIDAY OCTOBER 6, 2017
Based on Slides presentations used in class (found on this website)
And Java concepts covered in review and the review Assignment and Methods
Look at a segment of code with a main() and another method and determine how values are changed.
Assignment - Caesar Cipher due by Thursday October 12th, 2:45pm. Project name is 'CaesarCipher' in your ICS4U folder (ONE COMMUNICATIONS MARK DEDUCTED IF NOT PROPER PROJECT NAME)
Assignment - Learning Java 0-5
Store in your H:/ICS4U folder with project names SPECIFIED
'RockPaperScissors' pseudocode HARDCOPY - due by Tuesday Sept 19 at 2:45pm
'PC0', 'PC1', 'PC2' ,'PC3' ,'PC4' ,'PC5' due by Tuesday Sept 26 at 2:45pm
NOTE: 'PC1'(this is the RockPaperScissors PROGRAM, not the pseudocode which is separate)
HINT: How to use Tokenizer to parse out individual values from a line of input
StringTokenizer phrase = new StringTokenizer(theStringYouAcceptedFromKeyboard, " ");
String ds = phrase.nextToken(); // grab up to the first token and store as a string
double d = Integer.valueOf(ds); //take the string from above and cast it as a double but grab it's VALUE as an integer (no decimals needed in this case)
-----------------------------------
Course Outline
Unit Outline
Course Expectations - Ministry of Education
Working From Home - Software You Need
How Your Work Will Be Evaluated
Submission of Course Work
1. Your assignments are due BY THE DUE DATE specified by your teacher.
2. You should be submitting your BEST work. The more effort you put into a project, the higher the likelihood you'll earn a
better mark.
USE ASSIGNMENT RUBRICS as CHECKLISTS to make sure you've satisfied all requirements!
3. Your teacher will ONLY look in your H:/ICS4U folder for the project folders for submitted work and other assignments.
The exceptions are Google Docs assignments specified by your teacher.
4. .ZIP files will not be accepted. If you are working at home or on a laptop, it is YOUR RESPONSIBILITY to load your projects into your H:/ICS4U folder in IDE-executable form BY THE DUE DATE.
5. Board and School policies will be followed in suspected cases of academic dishonesty.
A Few Words on Protecting Your Work.
1. During tests, quizzes, assignments and other submitted work, protect your papers/tests/quizzes/ programs from
wandering eyes.Copying of answers/work may affect all parties with identical and near-identical answers.
2. BUY A USB DRIVE. They're cheap insurance against data loss.
3. BACK UP YOUR WORK FREQUENTLY TO A USB DRIVE OR TO THE CLOUD. "I lost my project" will not be accepted
as an excuse for time extension.
Please click on this LINK for more information about backing up your work frequently.
wandering eyes.Copying of answers/work may affect all parties with identical and near-identical answers.
2. BUY A USB DRIVE. They're cheap insurance against data loss.
3. BACK UP YOUR WORK FREQUENTLY TO A USB DRIVE OR TO THE CLOUD. "I lost my project" will not be accepted
as an excuse for time extension.
Please click on this LINK for more information about backing up your work frequently.
Java Reference
Unit 3 - Exceptions Handling, Array Lists, File Input/Output / Sorting and Searching
Introduction to Stacks and Queues - Gayle Laakmann McDowell video
Presentation - Stacks and Queues
You should be aware of the difference between a stack and a queue
Last In First Out - LIFO
First In First Out - FIFO
When you add to a stack, you PUSH the element onto the stack
When you remove from a stack, you POP the last element that was added.
Application of 2-Dimensional Arrays - Solving Systems of Equations
Big 'O' Notation - Efficiency of Algorithms
Sorting - Simplified
Selection Sort - Algorithm
Bubble Sort - Pseudocode
Insertion Sort - Algorithm
Sorting Algorithms
Video demonstration of Bubble Sort, Shell Sort and Quicksort
A Sorting Race!
Searching Algorithms
Binary Search - Algorithm
Sorting and Searching Practice - do this...no..REALLY! DO THIS!!!
Recursion - Introduction
Recursion Demonstration - How it executes
Recursion - Day 2 Example of Recursion converging UP to base case
Temple of Saigon Presentation
Stacks and Queues
Binaries, Stacks and Trees
Linked Lists
=====================================================================================================
Exception Handling - Catching Errors
Exceptions - Michael Fudge Video
Introduction to ArrayLists - Michael Fudge Video
File Input Output - The Basics
File Input Output - Binary Files and Object Serialization
Follow Michael Fudge Video - Binary Files - start at 11:51
Encryption Lesson - MD5 Encryption
Demo Java program for encryption
PREPARATION FOR FILE IO/ENCRYPTION ASSIGNMENT - NOVEMBER 6
Relational Database and SQL Lesson
November 20 - Introduction to ArrayLists - Michael Fudge Video
November 21 - study for test tomorrow
November 22 - OOP Test - full period
Nice Summary of ArrayList Concepts and operations
REMEMBER to 'import java.util.ArrayList;' in your projects.
Practice: 1. Create an arrayList for Marks of type 'double'. Add in 5 marks, at least one of which is 30. Then do an operation to remove the 30 mark
insert a mark 82 in the arrayList
2. Create an arrayList of animals (string object type). Then add some animal names include 'elephant'. Then insert elephant at the end of the arrayList
Now search for elephant using indexof and lastindexof. Store the results of those searches in an int variable and then remove those entries using
the .remove method for that index variable. Print out your list after the operations are complete.
NOTE: If you want to remove an nth Integer or Double element from an array list, use
list.remove(Integer.valueOf(2));
This is because by default, the types are not int primitives but Integer objects. They're firstly look at like strings.
So doing a force-casting of the element as an Integer, means you're looking for the number 2 value in the ArrayList, not ArrayList item 2.
Passing An ArrayList to a Method that returns an ArrayList
Course Introduction - The First Couple of Days
Unit 1 - Review of CS Fundamentals
This unit will ensure you're ship-shape with all the Programming Concepts learned in grade 11. At the same time, you'll be using these skills in more advanced ways that will get you used to the rigour and professionalism expected in grade 12.
Unit 1 Outline
Unit 1 Review
Unit 1 Test
CS Fundamentals with Java
Lesson - Algorithms and Heuristics
Lesson - Fundamental Programming Principles
Java Fundamentals
Lesson - NetBeans Refresher
Repetition Practice Problems - 1-3, 6-13
If you want to use keyboard input:
put
import java.util.Scanner; AFTER your package line
then inside main, declare a keyboard object
Scanner keyboard = new Scanner (System.in);
and to get information from the keyboard use
int theVal = keyboard.nextInt();
double decVal = keyboard.nextDouble();
String theName = keyboard.nextLine();
Selection Structures
Selection Practice Problems - 1-9
Lesson - Java Concepts needed for each Assignment Challenge
Collaborative Coding, Debugging and Unit Testing
Debugger Demo
Methods
Lesson - Methods (JavaText 2013 reference - PDF 54)
Practice in JavaText2013 - PDF 66 - 15 to 18
Lesson - Commenting Suped - JavaDocs
Project - Software Development
Optional Lesson - Version Control Primer
Lesson - Collaboration and Version Control - with GitHub
Unit 1 Test - Programming
Unit 1 Outline
Unit 1 Review
Unit 1 Test
CS Fundamentals with Java
Lesson - Algorithms and Heuristics
Lesson - Fundamental Programming Principles
Java Fundamentals
Lesson - NetBeans Refresher
Repetition Practice Problems - 1-3, 6-13
If you want to use keyboard input:
put
import java.util.Scanner; AFTER your package line
then inside main, declare a keyboard object
Scanner keyboard = new Scanner (System.in);
and to get information from the keyboard use
int theVal = keyboard.nextInt();
double decVal = keyboard.nextDouble();
String theName = keyboard.nextLine();
Selection Structures
Selection Practice Problems - 1-9
Lesson - Java Concepts needed for each Assignment Challenge
Collaborative Coding, Debugging and Unit Testing
Debugger Demo
Methods
Lesson - Methods (JavaText 2013 reference - PDF 54)
Practice in JavaText2013 - PDF 66 - 15 to 18
Lesson - Commenting Suped - JavaDocs
Project - Software Development
Optional Lesson - Version Control Primer
Lesson - Collaboration and Version Control - with GitHub
Unit 1 Test - Programming
Unit 2a - Object Oriented Programming
SUMMOOP Presentation
A quick presentation of structure
OOP Tutorials
RD OOP 0
04 - Introduction to Objects and Classes (Michael Fudge)
** BEFORE STARTING RD OOP1,
download these files and install them as per the instructions - Becker.jar, Becker Javadocs
RD OOP 1 - Make Robots move on a city panel
RD OOP2 - Fraction methods and objects demonstration
06 - Custom Classes (Michael Fudge) - Creating a 'dice' object and methods to act on it.
Pay attention to Constructors, Getters and Setters
RD OOP 3
07 - JavaDocs and Unit Testing (Michael Fudge) - Generating Playing Cards and methods to act on them.
Pay attention to Constructors, Getters and Setters
19 - Interfaces and Inheritance (Michael Fudge)
RD OOP Solutions - don't be too quick to give up! Persistance is the answer!!!
Notes on Overloading, Overriding, Polymorphism, Encapsulation - Your are responsible for these concepts.
***Summary of Overloading, Overriding, Polymorphism, Encapsulation and Super***
What's the difference between private, public and protected in classes and methods?
HOLD IT! I'M CONFUSED!!! What's the DIFFERENCE between Overriding and Overloading?
Abstract Classes in Java
Concept of an Interface
Concept of Inheritance
*** A Word about 'this' qualifier.
If you see 'this.name', it is a way to remove ambiguity in a method inside a class. If the class variable is name and you have a method that accepts 'name' as an incoming parameter and you want to set the class variable to that value, you could say
this.name = name;
It means that the global variable name in the class is being set to the parameter coming into the method being called to set the global variable for the particular object.
Further Overview of OOP - Nanyang University - Singapore
A quick presentation of structure
OOP Tutorials
RD OOP 0
04 - Introduction to Objects and Classes (Michael Fudge)
** BEFORE STARTING RD OOP1,
download these files and install them as per the instructions - Becker.jar, Becker Javadocs
RD OOP 1 - Make Robots move on a city panel
RD OOP2 - Fraction methods and objects demonstration
06 - Custom Classes (Michael Fudge) - Creating a 'dice' object and methods to act on it.
Pay attention to Constructors, Getters and Setters
RD OOP 3
07 - JavaDocs and Unit Testing (Michael Fudge) - Generating Playing Cards and methods to act on them.
Pay attention to Constructors, Getters and Setters
19 - Interfaces and Inheritance (Michael Fudge)
RD OOP Solutions - don't be too quick to give up! Persistance is the answer!!!
Notes on Overloading, Overriding, Polymorphism, Encapsulation - Your are responsible for these concepts.
***Summary of Overloading, Overriding, Polymorphism, Encapsulation and Super***
What's the difference between private, public and protected in classes and methods?
HOLD IT! I'M CONFUSED!!! What's the DIFFERENCE between Overriding and Overloading?
Abstract Classes in Java
Concept of an Interface
Concept of Inheritance
*** A Word about 'this' qualifier.
If you see 'this.name', it is a way to remove ambiguity in a method inside a class. If the class variable is name and you have a method that accepts 'name' as an incoming parameter and you want to set the class variable to that value, you could say
this.name = name;
It means that the global variable name in the class is being set to the parameter coming into the method being called to set the global variable for the particular object.
Further Overview of OOP - Nanyang University - Singapore
Unit 2b - Modular Programming with GUI, Graphics and Images
Assignment (Formative) - You will complete the following IN ORDER and then submit to your H:/ICS4U folder under the project name 'GMA' - this is a FEEDBACK ONLY assignment. DO IT ANYWAY!!! :-)
Intro to GUI Assignment
Tutorial for Graphics
Tutorial for Animation
due...
Assignment (Culminating - for MARKS) - Ball Bounce due...
Intro to GUI Assignment
Tutorial for Graphics
Tutorial for Animation
due...
Assignment (Culminating - for MARKS) - Ball Bounce due...
Ephemera, Articles of Interest, Cool Stuff
Want to Learn some Arduino before you graduate? - Click HERE
Canada fights for lead in Quantum Computing!
Getting Ready for the Job Market - Globe and Mail Article
FDA Recalls Half a Million Pacemakers over Hacking Fears
The difference between Computer Science and Computer Engineering Programs
Saudi Arabia Grants Citizenship to a Robot - October 25, 2017 Toronto Star
THIS 1 MINUTE PODCAST SNIP WILL CHANGE YOUR LIFE!!! REALLY!
What Tech World Did You Grow Up In? - Washington Post - Nov 28, 2017
The Racialization of Code - Guardian - Dec 4, 2017
Programmers' Drinking Song
Begin
100 little bugs in the code,
100 bugs in the code,
fix one bug, compile it again,
101 little bugs in the code.
101 little bugs in the code.....
Repeat until BUGS = 0
oct_18_userinput_notice_on_whiteboard_310.jpg | |
File Size: | 628 kb |
File Type: | jpg |
steveerickson-whydogoodwork.mp3 | |
File Size: | 1941 kb |
File Type: | mp3 |