Course Overview

To view the entire syllabus, click here or click to explore the full course.

Introduction to Programming in Java with Karel the Dog

In this module, students learn the basics of java commands, control structures, and problem solving by solving puzzles with Karel.

Topics Covered

  • Commands
  • Defining vs. Calling Methods
  • Designing methods
  • Program entry points
  • Control flow
  • Looping
  • Conditionals
  • Classes
  • Commenting code
  • Preconditions and Postconditions
  • Top Down Design

Design Thinking

This module introduces students to the theory and practice of user centered design. Students learn about what makes an engaging and accessible product and will employ an iterative design process including rapid prototyping and user testing to design and develop their own product.

Topics Covered - Topic 1.1

  • Design Cycle
  • Accessibility
  • Empathy
  • Define
  • Ideate
  • Prototyping
  • Testing

Project: Put it in Writing!

In this project, students develop a training policy that informs employees on matters of network security and details the company policy on preventative measures employees should take.

Topics Covered - Topic 1.1

  • Planning and implementing a new IT system
  • Change management
  • Data migration challenges and solutions
  • Cloud-based systems
  • User documentation and training
  • Managing updates
  • Causes and impacts of data loss
  • Data loss prevention

Digital Information

Students learn about the various ways to represent information digitally including number systems, encoding data, programmatically creating pixel images, comparing data encodings,

Topics Covered

  • How digital data is represented
  • Number Systems
  • Encoding Text with Binary
  • Hexadecimal
  • Pixel Images
  • Pixel Colors!
  • Data Compression
  • Lossy Compression

Networking - Topic 3.1

Students explore the structure and design of the internet, and how this design affects the reliability of network communication, the security of data, and personal privacy.

Topics Covered

  • Introduction to the Internet
  • Notational Systems
  • Data Representation
  • Internet Hardware
  • Internet Addresses
  • Domain Name System (DNS)
  • Routing
  • Packets and Protocols
  • The Internet and Cybersecurity
  • Impact of the Internet

Computer Organization

Students learn about the physical elements of computers and networking, such as motherboards, RAM, routers, and the use of port numbers, ethernet, and wireless devices.

Topics Covered - Topic 2.1

  • Internal Components
  • Peripheral Devices
  • Network Devices
  • Storage Options
  • Network Options
  • Operating Systems
  • Software and Applications
  • Browser Configuration
  • Sequential, Parallel & Distributed Computing

Primitive Types

Students learn about writing the main method and start to call preexisting methods to produce output. Students learn about three built-in data types and learn how to create variables, store values, and interact with those variables using basic operations.

Topics Covered

  • Why programming? Why Java?
  • Variables and Data Types
  • Expressions and Assignments Statements
  • Compound Assignment Operators
  • User Input
  • Casting and Ranges of Variables

Using Objects

Students learn how to create and use classes and objects. This unit builds on students’ ability to write expressions by introducing them to Math class and String methods to write expressions for generating random numbers and other more complex operations.

Topics Covered

  • Objects: Instances of Classes
  • Creating and Storing Objects (Instantiation)
  • Calling a Void Method
  • Calling a Void Method with Parameters
  • Calling a Non-void Method
  • String Objects: Concatenation, Literals, and More
  • String Methods
  • Wrapper Classes: Integer and Double
  • Using the Math class

Boolean Expressions and if Statements

Students learn the syntax and proper use of conditional statements in Java, as well as how to implement Boolean variables in their programs by writing Boolean expressions with relational and logical operators.

Iteration

Students learn how to use iteration to improve the reusability and speed of their programs. Students evaluate which iterative structures should be used in a given context, and build programs that require them to choose the iterative structure that works best.

Writing Classes

Students learn how to create and implement complex classes and objects.

Classes and Object-Oriented Programming

In this module, students learn the basics of Object Oriented Programming in Java, which is a powerful programming paradigm. Students learn how objects store data and interact with each other in Java programs. Students design and implement classes and extend classes using inheritance.

Array

Students learn about how to use and manipulate data in the form of arrays. Students explore the limitations of primitive data types in the context of storing data, and develop programs that use arrays to store and search for data.

ArrayList

Students learn about the limitations of arrays, and are introduced to a new data structure - ArrayLists. Students are asked to compare the two data structures and implement programs that utilize each.

2D Array

Students learn how to store data in increasingly complex ways by introducing them to the 2D arrays. Students learn standard algorithms to utilize and search 2D arrays, as well as ways to use them effectively in their programs.

Inheritance

Students learn how to recognize common attributes and behaviors that can be used in a superclass and create hierarchies by writing subclasses to extend a superclass.

Recursion

Students learn how to write simple recursive methods and determine the purpose or output of a recursive method by tracing.

Exam Practice

Students apply their knowledge to complete IB-related exam practice questions.