This ICS3U online course provides a foundational understanding of computer science with a focus on practical application. Students in ICS3U will design software using industry-standard programming tools and apply the software development life-cycle model. ICS3U emphasizes the development of programming skills, including writing and using subprograms to create effective solutions for various types of problems. The ICS3U curriculum also explores environmental and ergonomic issues, emerging research in computer science, and global career trends in related fields.
Course curriculum
Inside %course-code%: from first line of Python to a game you designed
The step before ICS4U
No programming experience is required. ICS3U is the prerequisite for ICS4U, and together they are the computer science pair that university CS and engineering programs look for.
Python, start to finish
Variables and math, selection and repetition, functions, lists and external data, error trapping and standard libraries, each checked with a quiz and a program before you move on.
Games as projects
A MasterMind board game in Unit 4, a 3D Pong game in VPython in Unit 5, and a final project you propose yourself, covering the major concepts of the course.
The field, not just the code
Hardware and where it is heading, environmental stewardship in computing, emerging research, and a presentation on career and post-secondary options in computer science.
ICS3U Course outline
Full unit-by-unit breakdown.
Learn what the course covers, what to expect from each unit, and an overview of the major assignments.
Key topics
Course tour · major assignments · tools setup
Assessed by
Not evaluated
Survey computer hardware and where the technology may be going, explore educational and career opportunities in computer science, and look at the basic construction of a computer program, with questions and checkpoint quizzes throughout.
Key topics
Computer hardware and specifications · future of technology · environmental stewardship in computing · careers and post-secondary options · anatomy of a program
Assessed by
Career options presentation · future of technology essay (15% combined)
Learn the fundamental components of a computer program in Python, variables, data types, input and output and arithmetic, and approaches to troubleshooting when a program does not work. Complete every exercise, a checkpoint program and a quiz.
Key topics
Variables and data types · input and output · arithmetic · debugging and troubleshooting · code conventions
Assessed by
Debugging program · Unit 2 project: two programs with variables and math (12.5% combined)
Build more complex selection, optimize code with counting and repetition structures, write your own function blocks, and create basic GUI interfaces you will reuse in the next unit. Two check-ins, then a quiz, a major program and a conference with your teacher.
Key topics
Selection and nested conditions · loops and counters · functions and parameters · GUI basics · algorithm design
Assessed by
Unit 3 quiz · Unit 3 project: GUI with math functions · teacher conference (12.5% combined)
Add error trapping and built-in functions from Python libraries, work with lists to store, manipulate and organize data, and read external data into your programs. Two concept quizzes and two assignments, including a version of MasterMind.
Key topics
Error trapping · Python libraries and built-in functions · lists and one-dimensional arrays · reading external data · file maintenance
Assessed by
Manipulating lists assignment · Unit 4 project: MasterMind (12.5% combined)
Learn the Visual Python library and apply repetition and functions to 3D graphics, keyboard and mouse input, and animation, finishing with a 3D version of Pong.
Key topics
VPython objects and scenes · keyboard and mouse input · animation loops · applying functions and repetition
Assessed by
Keyboard input program · Unit 5 project: 3D Pong (12.5% combined)
Propose a final programming project that covers the major concepts of the course, apply the software development life-cycle model to plan, build, test and document it, then write the proctored final exam.
Key topics
Project proposal · software development life cycle · testing and documentation
Assessed by
Final project (15%)


