ICS4U Assignments
ALL your computer projects will be put in your ICS4U folder in your H drive. The exceptions are Google Docs assignments specified by your teacher.
Your projects/assignments will be TESTED on a Room 305 Windows workstation. You are responsible for assuring that your program runs as you expect it, on a Room 305 Windows workstation. Your teacher will not inform you if they are unable to run your program. DO TESTING LONG BEFORE YOUR PROJECT/ASSIGNMENT is due!
Exam Hints
Hint #1: STUDY!
Hint #2: Everything else!
Exam Review Suggestions:
Know how to do javaDocs for the programming section.
Don't throw away marks when Communication Marks are involved
General Concepts
-File IO operations, libraries, binary files versus text files, commands, errors thrown if files missing etc.
-General concepts for encryption
-Use of Tokenizer
-The different Big O types and their names
-Operations of Bubble, Insertion and Selection Sorts - be able to identify them
-Basic concepts, strengths and limitations of Unit Testing
-Basic concepts of Debugging
-The Binary Search Algorithm - follow the in-class presentation
-Using % operator in calculations
-Recursion - analyze a provided method and provide result
concepts such as 'base case'.
-Basic 2D array operations
-What is a run-time error?
-Basic commands for ArrayList operations and properties of ArrayLists
-Concepts of OOP including instantiation, polymorphism, inheritance, constructors,
private versus public, encapsulation
-Project Management - the 'three legs of the stool', parts of
a project plan, ways to track project progress, roles of
members of a project team.
-Be able to work through a stack operation push, pop etc to provide result
-Definitions such as push, pop, lifo, fifo
-String comparison operations
You'll have some short answers that you'll EMAIL to teacher's GAPPS account. (first email. is the only one accepted)
You'll have a couple of programs to write. you'll leave the results in your ICS4U folder. NOT your netbeans folder! Remember!
GOOD LUCK!
November 20, 2019 - When handing in an assignment, any diagnostic code that prints to the console should be removed prior to submission. It looks messy and unfinished. For any GUI projects, all console print statements should be removed prior to submission. An assignment is an opportunity for you to show your BEST work. Professional look and feel is part of that presentation.
ISU - Due Thursday January 16th at 2:45PM, all hardcopy materials must also be submitted by this time. This is a HARD deadline. The specification is available as of 7:50am, December 5th. You have full class time from December 9th to January 16th to work on this. However you may require time outside of class to complete this ISU by the due date. Please budget your time appropriately so you can meet your deadline.
Here is the ISU Requirements document
Here is the ISU Rubric
Pseudocode Exemplar and extensions - this documents will be amended as students ask for clarifications
Searching/Sorting/Big O/2D Arrays/Recursion Quiz - Thursday January 9th
Big O considerations when designing algorithms
Basic Big O concepts
Different types - mathematical properties (ie. Constant, Linear, Quadratic, Logarithmic, Exponential)
Which type most likely to outrun the computer's ability to deal with the problem?
Bubble Sort - characteristics, detriments, best performance when?
Characteristics of Selection Sort
Binary Search - major concepts and process
Recursion - main features and requirements, know the basic examples we covered in class
2D arrays - basic structure, how to use in practice, how to declare
Assignment - Recursion - Due Tuesday December 3rd, 2:45pm
Recursion Assignment General Feedback:
If you did not get full T marks, it's likely because you did not include the specified "return" statements in your methods. There should be a 'return' statement for the Base Case and a 'return' statement for the In Progress case which you RETURN the method call with the modified parameter for the next recursion. That's what pushes the call onto the stack.
Every in-class and on-web example that you were shown had two 'return' statements as detailed above.
Additionally, if you did not give a user interface AS PER THE SPECIFICATION, you did not earn full marks.
Please read and follow instructions.
File IO Test - Friday Nov 29
file IO test
What is unit testing? What are it's limitations?
What is the difference(s) between binary and text files
Look at a piece of code and explain why the expected outcome is not occurring. Suggest a small change to make it work
Statements to create new file, scanner and printwriter objects given a file name.
structure of try-catch exception handling. Why do we use it?
command to close a file
Where in your project's file structure do you put your files that you will read/write?
Why do we use file delimiters?
Use of StringTokenizer and .nextToken() for file delimiters
What is the term for converting text data to binary data?
What is the term for converting binary data to text data?
What is an EOFException?
Advantage of arraylist over array
Statement to create an arrayList
Statement to add an item to an arrayList
statement to delete an item from an arrayList
loop statement for looping through an arrayList
What does FileInputStream object do?
What does ObjectInputStream object do?
What does the java.io.Serializable library do?
What is an encryption key?
What is the advantage of one-way encryption?
What is a message 'digest'?
Why was MD5 abandoned in 2005?
What replaced MD5?
What is gitHub? What is a repository? What does gitHub allow you to do?
In a debugger, what is a 'breakpoint'? What happens to your program's execution when the execution reaches a breakpoint?
Assignment - Searching and Sorting assignment - Due Friday May 22 2:45pm
Passing An ArrayList to a Method that returns an ArrayList
Here's the Data Input File - put it in your project folder
Monday November 4th - KNOWLEDGE portion of OOP Test
Friday November 8th T,C and A portions of OOP test
See this document for topics of the test. There will be a programming component to this test. You will need to budget your time.
Wednesday October 30 - Study/research Period - Notes in the OOP webpage on Encapsulation, Inheritance, Overloading, Overriding, 'Super','Extends', 'this' etc.
Assignment - File I/O And Encryption - Due Tuesday November 12th, 2:45pm. This assignment will NOT be in your Midterm Report. Knowledge and Thinking responses to be HARDCOPY typewritten, numbered and handed in to your teacher by 2:45pm on Monday November 11th.
For testing, SHA-256 was used for encryption
user 'joe' the password is 'puppy'. user 'mary' the password is 'flower'
Your 'badPasswords.txt' file should contain:
1234
password
today
hello
computer
login
Here is a tutorial on Building a GUI with Netbeans. Just name your project, class and package as LoginAssignment etc.
Thursday October 31 - Object Oriented Programming Unit Test
See this document for topics of the test. There will be a programming component to this test. You will need to budget your time.
Assignment - Coffee Klatch Due FRIDAY October 25th at 2:45pm
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 CoffeeKlatchAssignment main()
Example Run of program
Assignment - Caesar Cipher due by Friday October 11, 2:45pm. Project name is 'CaesarCipher' in your ICS4U folder (ONE COMMUNICATIONS MARK DEDUCTED IF NOT PROPER PROJECT NAME)
I'm Done! What do I do for the next two week? This!
Review Unit Test - Friday September 27 - Hints are here
DON'T BLOW THIS OFF - IT'S IN YOUR UNIVERSITY MARK SUBMISSION
Assignment - Learning Java 0-5 DUE September 24th
Store in your H:/ICS4U folder with project names SPECIFIED
'RockPaperScissors' pseudocode GOOGLE DOC - due Sept 24 SHARED WITH [email protected]
FIVE SEPARATE PROJECTS - named EXACTLY 'PC0', 'PC1', 'PC2' ,'PC3' ,'PC4' ,'PC5'
HINT: How to use Tokenizer to parse out individual values from a line of input
Clarification on Program PC4 - the Mountain Climber
If you look in the Notes section, you see the statment, "If the fatigue factor drops Nicholas' climbing distance below zero, he does not climb at all on that attempt."
that means his distance climbed is ZERO on that attempt.
The next point says, "Regardless of how far he has climbed, HE ALWAYS SLIDED D feet after a fall."
So on each term even if he climbs zero, he still falls.
So for the input of 25 10 1 50, the correct output is:
25 10 1 50
d=25.0
c=10.0
s=1.0
f=50.0
Attempt: 1 0.0 10.0 10.0 9.0
Attempt: 2 9.0 5.0 14.0 13.0
Attempt: 3 13.0 0.0 13.0 12.0
Attempt: 4 12.0 0.0 12.0 11.0 notice that since the climbing distance is now negative, he does not climb but he still falls.
Attempt: 5 11.0 0.0 11.0 10.0
Attempt: 6 10.0 0.0 10.0 9.0
Attempt: 7 9.0 0.0 9.0 8.0
Attempt: 8 8.0 0.0 8.0 7.0
Attempt: 9 7.0 0.0 7.0 6.0
Attempt: 10 6.0 0.0 6.0 5.0
Attempt: 11 5.0 0.0 5.0 4.0
Attempt: 12 4.0 0.0 4.0 3.0
Attempt: 13 3.0 0.0 3.0 2.0
Attempt: 14 2.0 0.0 2.0 1.0
Attempt: 15 1.0 0.0 1.0 0.0
Attempt: 16 0.0 0.0 0.0 -1.0
FAILURE ON ATTEMPT 16
-----------------------------------
.ZIP or other compressed files WILL NOT BE ACCEPTED.
MySchoolDrive does not handle uploads of your Java project. DO NOT TRY TO UPLOAD YOUR JAVA PROJECTS FROM MySchoolDrive.
ENCRYPTED assignments are not accepted as submitted by due date. Only NON-ENCRYPTED assignments will be accepted. Encrypted assignments will be OPENED AS TEXT in Word, and printed off. It's gibberish, but it's YOUR WORK THAT YOU SUBMITTED. It will get a ZERO (0).
Your teacher should be able to OPEN the projects DIRECTLY from your ICS3U folder. No conversions or other rearrangements will be attempted.
If the projects are not immediately openable from the associated programs/IDE, you will NOT receive full marks.
If you are doing a project at home and/or on your laptop, it is YOUR RESPONSIBILITY to get it into your H:ICS4U folder in proper executable format prior to the due date.
Your projects/assignments will be TESTED on a Room 305 Windows workstation. You are responsible for assuring that your program runs as you expect it, on a Room 305 Windows workstation. Your teacher will not inform you if they are unable to run your program. DO TESTING LONG BEFORE YOUR PROJECT/ASSIGNMENT is due!
Exam Hints
Hint #1: STUDY!
Hint #2: Everything else!
Exam Review Suggestions:
Know how to do javaDocs for the programming section.
Don't throw away marks when Communication Marks are involved
General Concepts
-File IO operations, libraries, binary files versus text files, commands, errors thrown if files missing etc.
-General concepts for encryption
-Use of Tokenizer
-The different Big O types and their names
-Operations of Bubble, Insertion and Selection Sorts - be able to identify them
-Basic concepts, strengths and limitations of Unit Testing
-Basic concepts of Debugging
-The Binary Search Algorithm - follow the in-class presentation
-Using % operator in calculations
-Recursion - analyze a provided method and provide result
concepts such as 'base case'.
-Basic 2D array operations
-What is a run-time error?
-Basic commands for ArrayList operations and properties of ArrayLists
-Concepts of OOP including instantiation, polymorphism, inheritance, constructors,
private versus public, encapsulation
-Project Management - the 'three legs of the stool', parts of
a project plan, ways to track project progress, roles of
members of a project team.
-Be able to work through a stack operation push, pop etc to provide result
-Definitions such as push, pop, lifo, fifo
-String comparison operations
You'll have some short answers that you'll EMAIL to teacher's GAPPS account. (first email. is the only one accepted)
You'll have a couple of programs to write. you'll leave the results in your ICS4U folder. NOT your netbeans folder! Remember!
GOOD LUCK!
November 20, 2019 - When handing in an assignment, any diagnostic code that prints to the console should be removed prior to submission. It looks messy and unfinished. For any GUI projects, all console print statements should be removed prior to submission. An assignment is an opportunity for you to show your BEST work. Professional look and feel is part of that presentation.
ISU - Due Thursday January 16th at 2:45PM, all hardcopy materials must also be submitted by this time. This is a HARD deadline. The specification is available as of 7:50am, December 5th. You have full class time from December 9th to January 16th to work on this. However you may require time outside of class to complete this ISU by the due date. Please budget your time appropriately so you can meet your deadline.
Here is the ISU Requirements document
Here is the ISU Rubric
Pseudocode Exemplar and extensions - this documents will be amended as students ask for clarifications
Searching/Sorting/Big O/2D Arrays/Recursion Quiz - Thursday January 9th
Big O considerations when designing algorithms
Basic Big O concepts
Different types - mathematical properties (ie. Constant, Linear, Quadratic, Logarithmic, Exponential)
Which type most likely to outrun the computer's ability to deal with the problem?
Bubble Sort - characteristics, detriments, best performance when?
Characteristics of Selection Sort
Binary Search - major concepts and process
Recursion - main features and requirements, know the basic examples we covered in class
2D arrays - basic structure, how to use in practice, how to declare
Assignment - Recursion - Due Tuesday December 3rd, 2:45pm
Recursion Assignment General Feedback:
If you did not get full T marks, it's likely because you did not include the specified "return" statements in your methods. There should be a 'return' statement for the Base Case and a 'return' statement for the In Progress case which you RETURN the method call with the modified parameter for the next recursion. That's what pushes the call onto the stack.
Every in-class and on-web example that you were shown had two 'return' statements as detailed above.
Additionally, if you did not give a user interface AS PER THE SPECIFICATION, you did not earn full marks.
Please read and follow instructions.
File IO Test - Friday Nov 29
file IO test
What is unit testing? What are it's limitations?
What is the difference(s) between binary and text files
Look at a piece of code and explain why the expected outcome is not occurring. Suggest a small change to make it work
Statements to create new file, scanner and printwriter objects given a file name.
structure of try-catch exception handling. Why do we use it?
command to close a file
Where in your project's file structure do you put your files that you will read/write?
Why do we use file delimiters?
Use of StringTokenizer and .nextToken() for file delimiters
What is the term for converting text data to binary data?
What is the term for converting binary data to text data?
What is an EOFException?
Advantage of arraylist over array
Statement to create an arrayList
Statement to add an item to an arrayList
statement to delete an item from an arrayList
loop statement for looping through an arrayList
What does FileInputStream object do?
What does ObjectInputStream object do?
What does the java.io.Serializable library do?
What is an encryption key?
What is the advantage of one-way encryption?
What is a message 'digest'?
Why was MD5 abandoned in 2005?
What replaced MD5?
What is gitHub? What is a repository? What does gitHub allow you to do?
In a debugger, what is a 'breakpoint'? What happens to your program's execution when the execution reaches a breakpoint?
Assignment - Searching and Sorting assignment - Due Friday May 22 2:45pm
Passing An ArrayList to a Method that returns an ArrayList
Here's the Data Input File - put it in your project folder
Monday November 4th - KNOWLEDGE portion of OOP Test
Friday November 8th T,C and A portions of OOP test
See this document for topics of the test. There will be a programming component to this test. You will need to budget your time.
Wednesday October 30 - Study/research Period - Notes in the OOP webpage on Encapsulation, Inheritance, Overloading, Overriding, 'Super','Extends', 'this' etc.
Assignment - File I/O And Encryption - Due Tuesday November 12th, 2:45pm. This assignment will NOT be in your Midterm Report. Knowledge and Thinking responses to be HARDCOPY typewritten, numbered and handed in to your teacher by 2:45pm on Monday November 11th.
For testing, SHA-256 was used for encryption
user 'joe' the password is 'puppy'. user 'mary' the password is 'flower'
Your 'badPasswords.txt' file should contain:
1234
password
today
hello
computer
login
Here is a tutorial on Building a GUI with Netbeans. Just name your project, class and package as LoginAssignment etc.
Thursday October 31 - Object Oriented Programming Unit Test
See this document for topics of the test. There will be a programming component to this test. You will need to budget your time.
Assignment - Coffee Klatch Due FRIDAY October 25th at 2:45pm
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 CoffeeKlatchAssignment main()
Example Run of program
Assignment - Caesar Cipher due by Friday October 11, 2:45pm. Project name is 'CaesarCipher' in your ICS4U folder (ONE COMMUNICATIONS MARK DEDUCTED IF NOT PROPER PROJECT NAME)
I'm Done! What do I do for the next two week? This!
Review Unit Test - Friday September 27 - Hints are here
DON'T BLOW THIS OFF - IT'S IN YOUR UNIVERSITY MARK SUBMISSION
Assignment - Learning Java 0-5 DUE September 24th
Store in your H:/ICS4U folder with project names SPECIFIED
'RockPaperScissors' pseudocode GOOGLE DOC - due Sept 24 SHARED WITH [email protected]
FIVE SEPARATE PROJECTS - named EXACTLY 'PC0', 'PC1', 'PC2' ,'PC3' ,'PC4' ,'PC5'
HINT: How to use Tokenizer to parse out individual values from a line of input
Clarification on Program PC4 - the Mountain Climber
If you look in the Notes section, you see the statment, "If the fatigue factor drops Nicholas' climbing distance below zero, he does not climb at all on that attempt."
that means his distance climbed is ZERO on that attempt.
The next point says, "Regardless of how far he has climbed, HE ALWAYS SLIDED D feet after a fall."
So on each term even if he climbs zero, he still falls.
So for the input of 25 10 1 50, the correct output is:
25 10 1 50
d=25.0
c=10.0
s=1.0
f=50.0
Attempt: 1 0.0 10.0 10.0 9.0
Attempt: 2 9.0 5.0 14.0 13.0
Attempt: 3 13.0 0.0 13.0 12.0
Attempt: 4 12.0 0.0 12.0 11.0 notice that since the climbing distance is now negative, he does not climb but he still falls.
Attempt: 5 11.0 0.0 11.0 10.0
Attempt: 6 10.0 0.0 10.0 9.0
Attempt: 7 9.0 0.0 9.0 8.0
Attempt: 8 8.0 0.0 8.0 7.0
Attempt: 9 7.0 0.0 7.0 6.0
Attempt: 10 6.0 0.0 6.0 5.0
Attempt: 11 5.0 0.0 5.0 4.0
Attempt: 12 4.0 0.0 4.0 3.0
Attempt: 13 3.0 0.0 3.0 2.0
Attempt: 14 2.0 0.0 2.0 1.0
Attempt: 15 1.0 0.0 1.0 0.0
Attempt: 16 0.0 0.0 0.0 -1.0
FAILURE ON ATTEMPT 16
-----------------------------------
.ZIP or other compressed files WILL NOT BE ACCEPTED.
MySchoolDrive does not handle uploads of your Java project. DO NOT TRY TO UPLOAD YOUR JAVA PROJECTS FROM MySchoolDrive.
ENCRYPTED assignments are not accepted as submitted by due date. Only NON-ENCRYPTED assignments will be accepted. Encrypted assignments will be OPENED AS TEXT in Word, and printed off. It's gibberish, but it's YOUR WORK THAT YOU SUBMITTED. It will get a ZERO (0).
Your teacher should be able to OPEN the projects DIRECTLY from your ICS3U folder. No conversions or other rearrangements will be attempted.
If the projects are not immediately openable from the associated programs/IDE, you will NOT receive full marks.
If you are doing a project at home and/or on your laptop, it is YOUR RESPONSIBILITY to get it into your H:ICS4U folder in proper executable format prior to the due date.