ICS4UW2017

**Computer Science, Grade 12** **University Preparation** **Prerequisite Course(s): ICS3U - [|Course Outline]** ||
 * **ICS4U**
 * 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. ||
 * [|Link to Mr. Sweeney's Course Webpage] **

=** Unit 1: Review fundamental skills in Java, Text File Operations, Intro to Objects **= F06 F07 || Java Input (revisited) F09 F10 F13 F14 F15 || Text Files: Input & Output || * [|Presentation: Text File Input Output] (Data Structures) || * [|Presentation: Classes Objects Fields] (Data Structures) || * [|Presentation: Classes Objects Fields] - M08 || **Assignment:** **Rectangle Class** || See Edmodo || [|Folder of Information on Classes & Objects] || =**Unit 2: Java Arrays**= > (see later examples for dynamic sizing) || =**Unit 3: Recursion**=  [|VT - Writing Objects to a File (~11 minutes)]
 * **Day** || **Topic** || **Assigned Work** || **Extra Resources** ||
 * F01 || # [|Introduction to Course]
 * 1) File Organization & History
 * 2) Java Programming Environment
 * 3) Edmodo || # Presentation - Intro to ICS3C/3U/4C/4U
 * 4) Read [|[Note - File Organization & History]] and setup your file structure
 * 5) Read [|Note - Install Dr.Java] and install the Dr.Java IDE
 * 6) Register for Google Classroom and connect to course ||   ||
 * F02 || Review Java Concepts
 * input & output
 * variables & calculations
 * selection (if/else)
 * repetition (loops) || Review Exercises:
 *  [|Input-Processing-Output] # 3+4, 6, 7, 8
 *  [|Selection] # A3, B3, B4, B7, C3 or C4
 *  [|Counted Loops Part 1] # 2, 3e, 4, 6ab
 *  [|Conditional Loops] # 2, 3, 6abc || [|[All Java Lessons]] ||
 * F03
 * <span style="font-family: inherit; font-family: inherit; vertical-align: baseline; vertical-align: baseline;">data streams
 * <span style="font-family: inherit; font-family: inherit; vertical-align: baseline; vertical-align: baseline;">exceptions
 * <span style="font-family: inherit; font-family: inherit; vertical-align: baseline; vertical-align: baseline;">try-catch blocks || * [|Presentation: Input & Output using Data Streams]
 * <span style="font-family: inherit; font-family: inherit; vertical-align: baseline; vertical-align: baseline;">revisit [|Exercises: Input-Output] using Data Streams || [|Formatted Output] ||
 * F08
 * <span style="font-family: inherit; font-family: inherit; vertical-align: baseline; vertical-align: baseline;">choose from [|Exercises: File Operations]
 * <span style="font-family: inherit; font-family: inherit; font-family: inherit; vertical-align: baseline; vertical-align: baseline; vertical-align: baseline;">find exercises and extensions that work for you || <span style="background-color: #ffffff; color: #114488; font-family: 'Segoe UI','Lucida Grande',Arial; vertical-align: baseline;">[|VT: - Introduction to Classes & Objects] ||
 * F22 || Intro to Objects
 * <span style="font-family: inherit; font-family: inherit; vertical-align: baseline; vertical-align: baseline;">create a program to enter name, age, average for 3 students
 * [|Exercises - Data Structures (Records)]
 * <span style="font-family: inherit; font-family: inherit; font-family: inherit; vertical-align: baseline; vertical-align: baseline; vertical-align: baseline;">don't try any extensions yet! || [|VT: Playlist of Programming in Java] ||
 * F22 || Intro to Objects
 * <span style="font-family: inherit; font-family: inherit; vertical-align: baseline; vertical-align: baseline;">create a program to enter name, age, average for 3 students
 * [|Exercises - Data Structures (Records)]
 * <span style="font-family: inherit; font-family: inherit; font-family: inherit; vertical-align: baseline; vertical-align: baseline; vertical-align: baseline;">don't try any extensions yet! ||  ||
 * F28
 * **Day** || **Topic** || **Assigned Work** || **Extra Resources** ||
 * M08 || Java Arrays || [|See Exercises] || * [|VT: Introduction to Arrays]
 * [|Sample Code - Arrays]
 * [|Note - Basic Arrays] ||
 * M20 || <span style="background-color: #ffffff; color: #444444; font-family: 'Segoe UI','Lucida Grande',Arial;">Review: Working with Arrays || # [|Presentation - Working with Arrays]
 * 1) <span style="background-color: #ffffff; color: #444444; font-family: 'Segoe UI','Lucida Grande',Arial; font-family: inherit; vertical-align: baseline; vertical-align: baseline;">Continue with [|Exercises - Arrays]  || * [|VT - Using Array Elements as Counters (frequency table)]
 * <span style="background-color: #ffffff; color: #444444; font-family: 'Segoe UI','Lucida Grande',Arial; font-family: inherit; vertical-align: baseline; vertical-align: baseline;"> [|Array Coding Example]
 * M27 || <span style="background-color: #ffffff; color: #444444; font-family: 'Segoe UI','Lucida Grande',Arial;">Multi-dimensional Arrays || # [|Multi-dimensional Arrays] || * [|VT - Multi-Dimensional Arrays] ||
 * A03 || <span style="background-color: #ffffff; color: #444444; font-family: 'Segoe UI','Lucida Grande',Arial;">Arrays of Objects || # <span style="background-color: #ffffff; color: #114488; font-family: 'Segoe UI','Lucida Grande',Arial; vertical-align: baseline;">[|Arrays of Objects] || * <span style="background-color: #ffffff; color: #114488; font-family: 'Segoe UI','Lucida Grande',Arial; vertical-align: baseline;">[|VT - Arrays of Objects]
 * <span style="background-color: #ffffff; color: #114488; font-family: 'Segoe UI','Lucida Grande',Arial; vertical-align: baseline;">[|Folder of Notes for Object Interactions] ||
 * || Test - 2D Arrays, Classes, Data Structures, Objects ||  ||   ||
 * **Day** || **Topic** || **Assigned Work** || **Extra Resources** ||
 * April 25 || Intro to Recursion || # [|Note: Intro to Recursion] ||  ||
 * April 26 || Implementing Simple Recursive Algorithms || # [|Note: Implementing Simple Recursive Algorithms] ||  ||
 * May 1 || Quicksort || # [|Note: Quicksort] ||  ||
 * May 10 || Assignment - Recursion ||  ||   ||
 * || <span style="background-color: #ffffff; color: #444444; font-family: 'Segoe UI','Lucida Grande',Arial;">File Operations with Objects ||  || <span style="background-color: #ffffff; color: #444444; font-family: 'Segoe UI','Lucida Grande',Arial; vertical-align: baseline;"> Reading & Writing Objects to Files (Stack Overflow)

<span style="background-color: #ffffff; color: #444444; font-family: 'Segoe UI','Lucida Grande',Arial; vertical-align: baseline;"> VT # 2 - Writing Objects to a File (~ 20 minutes) ||