This week in ICS4U:
Course Kickoff: Overview of the course structure, expectations, and weekly schedule.
Platform Setup: Logging in and setting up CodeHS and learning how to submit your work.
Java Basics Review: Understanding how a Java program is structured, printing texts, creating variables of different data types, and doing simple math in code.
Hands-On Practice:
Writing your first Hello World program
Declaring and printing variables
Performing basic arithmetic and type casting
Independent Work: Finish some readings to support your understanding and submit week 1 assignment to google classroom.
By the end of this week, you should be able to write, run, and submit a basic Java program to CodeHS and google classroom with variables, math operations, and print the results.
Unit 2: Modular & Object-Oriented Programming
Lesson 1: Modular Programming (Methods, Parameters, Overloading) + Introduction to Classes, Objects, and 2D Arrays.
Time: 2 hours in class + 4 hours independent work
Big Ideas
· Programs are easier to read, test, and maintain when broken into modular methods and classes.
· Methods promote code reuse and reduce repetition.
· Objects encapsulate data and behavior together.
· 2D arrays allow us to represent and manipulate structured data like grids, tables, or matrices.
Learning Goals
By the end of this week, students will be able to:
· Define and implement methods with parameters and return types.
· Explain and demonstrate method overloading.
· Create simple classes and objects in Java.
· Use and traverse 2D arrays.
· Write modular programs that combine all of these concepts in CodeHS.
Independent Work: modular Java program (AfL): 4%- K/U = 0.6%, T/I = 1%, A = 1.6%, C = 0.8%
Create a modular Java program in CodeHS with:
• At least 3 methods (one returning a value, one void, one overloaded).
• A 2D array to process and display data (e.g., student grades).
• One user-defined class (Student, Product, or similar).
Deliverables: Submit CodeHS program link in Google Classroom. As a comment at the beginning of the code, include a 3-line reflection on how modularity improves design clarity.
Please complete all your previous assignments and independent work
Unit 2: Modular & Object-Oriented Programming
Lesson 1: Modular Programming (Methods, Parameters, Overloading) + Introduction to Classes, Objects, and 2D Arrays.
Time: 2 hours in class + 4 hours independent work
Big Ideas
· Programs are easier to read, test, and maintain when broken into modular methods and classes.
· Methods promote code reuse and reduce repetition.
· Objects encapsulate data and behavior together.
· 2D arrays allow us to represent and manipulate structured data like grids, tables, or matrices.
Learning Goals
By the end of this week, students will be able to:
· Define and implement methods with parameters and return types.
· Explain and demonstrate method overloading.
· Create simple classes and objects in Java.
· Use and traverse 2D arrays.
· Write modular programs that combine all of these concepts in CodeHS.
Independent Work: modular Java program (AfL): 4%- K/U = 0.6%, T/I = 1%, A = 1.6%, C = 0.8%
Create a modular Java program in CodeHS with:
• At least 3 methods (one returning a value, one void, one overloaded).
• A 2D array to process and display data (e.g., student grades).
• One user-defined class (Student, Product, or similar).
Deliverables: Submit CodeHS program link in Google Classroom. As a comment at the beginning of the code, include a 3-line reflection on how modularity improves design clarity.
Please complete all your previous assignments and independent work
Important notice
Assalamu Alaikum all,
This week we studied the rest of Modular Programming (Methods, Parameters, Overloading) + Introduction to Classes, Objects, and 2D Arrays.
You can find the lesson slides in google classroom.
Also we did the oral quiz . For students who did not do the oral quiz Thursday, you last chance to do it is today, Friday, at lunchtime.
Read the lesson in google classroom, and if you have any question come to me at lunchtime or at your spare-time; I am available every day to answer your questions.
You have some tasks and the independent work. You have to finish them before the due date which is Wednesday, Oct 29 at 11:59 pm.
Next Thursday, we will start working on classes and objects Inshallah.
Unit 2: Modular & Object-Oriented Programming
Lesson 2: Introduction to Object-Oriented Programming OOP: Classes, Objects, and Encapsulation in Java
Time: 2 hours in class + 4 hours independent work
Big Ideas
· In object-oriented programming, a class defines a structured model that combines both data and the actions that can be performed on that data, creating organized, modular programs.
· Encapsulation protects data by restricting access and exposing only necessary operations; it is the foundation of secure, maintainable code.
· Organizing programs into objects allows code to be more modular, reusable, and closer to real-world problem-solving.
Classwork / Tasks/ Independent work
5.1.1 Guided Practice: Student Class
5.1.2 Independent Work4: Book Class
Unit 3: Designing and Analyzing Algorithms
Lesson 1: Algorithm Efficiency Concepts and Search Algorithms
Time: 2 hours in class + 4 hours independent work
Big Ideas
· Efficient algorithms are essential for solving real-world problems where performance matters.
· Search algorithms such as linear and binary search demonstrate how the structure of data influences efficiency.
· Algorithmic thinking allows programmers to choose the best approach for a given problem.
· Measuring and comparing algorithm performance prepares students for advanced programming and computer-science concepts.
Unit 2 Test1
Modular Programming (Methods, Parameters, Overloading) +2D Arrays.
Classwork / Tasks/ Independent work
6.1.1 Linear Search Practice
6.1.2 Binary Search Practice
6.1.3 Assignment(5)%:
Search Algorithm Comparison
Unit 3: Designing and Analyzing Algorithms
Lesson 2: Sorting and Array Manipulation in Java
Time: 2 hours in class + 4 hours independent work
Big Ideas
· Sorting and searching are fundamental to organizing and retrieving data efficiently.
· Understanding multiple sorting methods helps students choose the best algorithm for a given situation.
· Manipulating arrays (adding and removing elements) improves flexibility in program design.
· Efficiency in sorting and searching builds the foundation for data structures like lists, stacks, and trees.
Independent Workn5 & Demo:
Linear Search, Bubble Sort, and Array Insertion (Due Wed. & Thu.- Nov. 19&20)