Please enable JavaScript to use CodeHS


IB Computer Science Higher Level (Year One)

Lessons

  1. Introduction to Programming in Java with Karel the Dog

    1. 1.1 Introduction to Programming With Karel

    2. Description
    3. Objective
    4. 1.2 More Basic Karel

    5. Description
    6. Objective
    7. 1.3 Java Programs and the Run Method

    8. Description
    9. Objective
    10. 1.4 Karel Can't Turn Right

    11. Description
    12. Objective
    13. 1.5 Methods in Karel

    14. Description
    15. Objective
    16. 1.6 Top Down Design and Decomposition in Karel

    17. Description
    18. Objective
    19. 1.7 Commenting Your Code

    20. Description
    21. Objective
    22. 1.8 Abstraction

    23. Description
    24. Objective
    25. 1.9 Super Karel

    26. Description
    27. Objective
    28. 1.10 For Loops

    29. Description
    30. Objective
    31. 1.11 While Loops in Karel

    32. Description
    33. Objective
    34. 1.12 If Statements

    35. Description
    36. Objective
    37. 1.13 If/Else Statements

    38. Description
    39. Objective
    40. 1.14 Control Structures Example

    41. Description
    42. Objective
    43. 1.15 More Karel Examples and Testing

    44. Description
    45. Objective
    46. 1.16 How to Indent Your Code

    47. Description
    48. Objective
    49. 1.17 What is Code

    50. Description
    51. Objective
    52. 1.18 Uses of Programs

    53. Description
    54. Objective
    55. 1.19 Karel Challenges

    56. Description
    57. Objective
    58. 1.20 Introduction to Programming in Java Quiz

    59. Description
    60. Objective
  2. Design Thinking

    1. 2.1 Intro to Design Thinking

    2. Description
    3. Objective
    4. 2.2 Empathy

    5. Description
    6. Objective
    7. 2.3 Define

    8. Description
    9. Objective
    10. 2.4 Ideate

    11. Description
    12. Objective
    13. 2.5 Prototype

    14. Description
    15. Objective
    16. 2.6 Test

    17. Description
    18. Objective
  3. Project: Put it in Writing!

    1. 3.1 Context for Change

    2. Description
    3. Objective
    4. 3.2 Planning for System Implementation

    5. Description
    6. Objective
    7. 3.3 Preparing Users

    8. Description
    9. Objective
    10. 3.4 Maintaining the System

    11. Description
    12. Objective
  4. Digital Information

    1. 4.1 Intro to Digital Information

    2. Description
    3. Objective
    4. 4.2 Number Systems

    5. Description
    6. Objective
    7. 4.3 Encoding Text with Binary

    8. Description
    9. Objective
    10. 4.4 Hexadecimal

    11. Description
    12. Objective
    13. 4.5 Pixel Images

    14. Description
    15. Objective
    16. 4.6 Pixel Colors!

    17. Description
    18. Objective
    19. 4.7 Data Compression

    20. Description
    21. Objective
    22. 4.8 Lossy Compression

    23. Description
    24. Objective
    25. 4.9 Digital Information Quiz

    26. Description
    27. Objective
  5. Networking

    1. 5.1 Welcome to the Internet

    2. Description
    3. Objective
    4. 5.2 DNS and Routing

    5. Description
    6. Objective
    7. 5.3 Packets and Protocols

    8. Description
    9. Objective
    10. 5.4 Protocols and Standards

    11. Description
    12. Objective
    13. 5.5 Private Networks

    14. Description
    15. Objective
    16. 5.6 Cybersecurity

    17. Description
    18. Objective
    19. 5.7 Network Administrator

    20. Description
    21. Objective
    22. 5.8 The Impact of the Internet

    23. Description
    24. Objective
    25. 5.9 The Internet Quiz

    26. Description
    27. Objective
    28. 5.10 Networking Quiz

    29. Description
    30. Objective
  6. Primitive Types

    1. 6.1 Why Programming? Why Java?

    2. Description
    3. Objective
    4. 6.2 Variables and Data Types

    5. Description
    6. Objective
    7. 6.3 Expressions and Assignment Statements

    8. Description
    9. Objective
    10. 6.4 Compound Assignment Operators

    11. Description
    12. Objective
    13. 6.5 User Input

    14. Description
    15. Objective
    16. 6.6 Casting and Ranges of Variables

    17. Description
    18. Objective
    19. 6.7 Primitive Types Quiz

    20. Description
    21. Objective
  7. Computer Organization

    1. 7.1 Internal Components

    2. Description
    3. Objective
    4. 7.2 Peripheral Devices

    5. Description
    6. Objective
    7. 7.3 Network Devices

    8. Description
    9. Objective
    10. 7.4 Storage Options

    11. Description
    12. Objective
    13. 7.5 Network Options

    14. Description
    15. Objective
    16. 7.6 Operating Systems

    17. Description
    18. Objective
    19. 7.7 Software and Applications

    20. Description
    21. Objective
    22. 7.8 Browser Configuration

    23. Description
    24. Objective
    25. 7.9 Sequential, Parallel & Distributed Computing

    26. Description
    27. Objective
    28. 7.10 Computer Organization Quiz

    29. Description
    30. Objective
  8. Using Objects

    1. 8.1 Objects: Instances of Classes

    2. Description
    3. Objective
    4. 8.2 Creating and Storing Objects (Instantiation)

    5. Description
    6. Objective
    7. 8.3 Overloading

    8. Description
    9. Objective
    10. 8.4 Calling a Void Method

    11. Description
    12. Objective
    13. 8.5 Calling a Void Method with Parameters

    14. Description
    15. Objective
    16. 8.6 Calling a Non-void Method

    17. Description
    18. Objective
    19. 8.7 String Objects

    20. Description
    21. Objective
    22. 8.8 String Methods

    23. Description
    24. Objective
    25. 8.9 Wrapper Classes: Integers and Doubles

    26. Description
    27. Objective
    28. 8.10 Using the Math Class

    29. Description
    30. Objective
    31. 8.11 Using Objects Quiz

    32. Description
    33. Objective
  9. Boolean Expressions and if Statements

    1. 9.1 Boolean Expressions and if Statements

    2. Description
    3. Objective
    4. 9.2 if Statements and Control Flow

    5. Description
    6. Objective
    7. 9.3 if-else Statements

    8. Description
    9. Objective
    10. 9.4 else if Statements

    11. Description
    12. Objective
    13. 9.5 Compound Boolean Expressions

    14. Description
    15. Objective
    16. 9.6 Equivalent Boolean Expressions

    17. Description
    18. Objective
    19. 9.7 Comparing Objects

    20. Description
    21. Objective
    22. 9.8 Boolean Expressions and if Statements Quiz

    23. Description
    24. Objective
  10. Iteration

    1. 10.1 Iteration

    2. Description
    3. Objective
    4. 10.2 For Loops

    5. Description
    6. Objective
    7. 10.3 Developing Algorithms Using Strings

    8. Description
    9. Objective
    10. 10.4 Nested Iteration

    11. Description
    12. Objective
    13. 10.5 Informal Code Analysis

    14. Description
    15. Objective
    16. 10.6 Iteration Quiz

    17. Description
    18. Objective
  11. Writing Classes

    1. 11.1 Writing Classes

    2. Description
    3. Objective
    4. 11.2 Constructors

    5. Description
    6. Objective
    7. 11.3 Documentation with Comments

    8. Description
    9. Objective
    10. 11.4 Accessor Methods

    11. Description
    12. Objective
    13. 11.5 Mutator Methods

    14. Description
    15. Objective
    16. 11.6 Writing Methods

    17. Description
    18. Objective
    19. 11.7 Static Variables and Methods

    20. Description
    21. Objective
    22. 11.8 Scope and Access

    23. Description
    24. Objective
    25. 11.9 this Keyword

    26. Description
    27. Objective
    28. 11.10 Ethical and Social Implications of Computing

    29. Description
    30. Objective
    31. 11.11 Writing Classes Quiz

    32. Description
    33. Objective
  12. Array

    1. 12.1 Array

    2. Description
    3. Objective
    4. 12.2 Traversing Arrays

    5. Description
    6. Objective
    7. 12.3 Enhanced for Loop for Arrays

    8. Description
    9. Objective
    10. 12.4 Developing Algorithms Using Arrays

    11. Description
    12. Objective
    13. 12.5 Array Quiz

    14. Description
    15. Objective
  13. ArrayList

    1. 13.1 ArrayList

    2. Description
    3. Objective
    4. 13.2 ArrayList Methods

    5. Description
    6. Objective
    7. 13.3 Traversing ArrayLists

    8. Description
    9. Objective
    10. 13.4 Developing Algorithms using ArrayLists

    11. Description
    12. Objective
    13. 13.5 Searching

    14. Description
    15. Objective
    16. 13.6 Sorting

    17. Description
    18. Objective
    19. 13.7 Ethical Issues Around Data Collection

    20. Description
    21. Objective
    22. 13.8 ArrayList Quiz

    23. Description
    24. Objective
  14. 2D Array

    1. 14.1 2D Arrays

    2. Description
    3. Objective
    4. 14.2 Traversing 2D Arrays

    5. Description
    6. Objective
    7. 14.3 2D Array Quiz

    8. Description
    9. Objective
  15. Recursion

    1. 15.1 Recursion

    2. Description
    3. Objective
    4. 15.2 Recursive Searching

    5. Description
    6. Objective
    7. 15.3 Recursive Sorting

    8. Description
    9. Objective
    10. 15.4 Recursion Quiz

    11. Description
    12. Objective
  16. Exam Practice

    1. 16.1 IB Assessment Prep Overview

    2. Description
    3. Objective
    4. 16.2 Topic 1: System Fundamentals

    5. Description
    6. Objective
    7. 16.3 Topic 2: Computer Organization

    8. Description
    9. Objective
    10. 16.4 Topic 3: Networks

    11. Description
    12. Objective
    13. 16.5 Topic 4: Computational Thinking, Problem-solving

    14. Description
    15. Objective
    16. 16.6 Topic 5: Object Oriented Programming

    17. Description
    18. Objective
    19. 16.7 Practice Exam

    20. Description
    21. Objective
  17. Inheritance

    1. 17.1 Inheritance

    2. Description
    3. Objective
    4. 17.2 Writing Constructors for Subclasses

    5. Description
    6. Objective
    7. 17.3 Overriding Methods

    8. Description
    9. Objective
    10. 17.4 super Keyword

    11. Description
    12. Objective
    13. 17.5 Creating References Using Inheritance

    14. Description
    15. Objective
    16. 17.6 Polymorphism

    17. Description
    18. Objective
    19. 17.7 Object Superclass

    20. Description
    21. Objective
    22. 17.8 Inheritance Quiz

    23. Description
    24. Objective
  18. Classes and Object-Oriented Programming

    1. 18.1 Introduction to Classes and Objects

    2. Description
    3. Objective
    4. 18.2 Classes vs. Objects

    5. Description
    6. Objective
    7. 18.3 Using a Class as a Client

    8. Description
    9. Objective
    10. 18.4 Writing Classes

    11. Description
    12. Objective
    13. 18.5 Writing Classes and Instance Methods

    14. Description
    15. Objective
    16. 18.6 Getter and Setter Methods

    17. Description
    18. Objective
    19. 18.7 Class Methods and Class Variables

    20. Description
    21. Objective
    22. 18.8 Wrapper Classes

    23. Description
    24. Objective
    25. 18.9 Method Overloading

    26. Description
    27. Objective
    28. 18.10 Local Variables and Scope

    29. Description
    30. Objective
    31. 18.11 Key Terms for Classes

    32. Description
    33. Objective
    34. 18.12 Objects vs Primitives

    35. Description
    36. Objective
    37. 18.13 Inheritance

    38. Description
    39. Objective
    40. 18.14 Class Design and Abstract Classes

    41. Description
    42. Objective
    43. 18.15 Polymorphism

    44. Description
    45. Objective
    46. 18.16 Object Superclass

    47. Description
    48. Objective
    49. 18.17 Interfaces

    50. Description
    51. Objective
    52. 18.18 Ethical and Social Implications of Computing

    53. Description
    54. Objective
    55. 18.19 Classes and Object-Oriented Programming Quiz

    56. Description
    57. Objective
  19. Java Level 1 Certification Practice

    1. 19.1 Practice #1: Java Fundamentals

    2. Description
    3. Objective
    4. 19.2 Practice #2: Data Types and Lists

    5. Description
    6. Objective
    7. 19.3 Practice #3: Implementing Flow Control

    8. Description
    9. Objective
    10. 19.4 Practice #4: OOP and Other Advanced Topics

    11. Description
    12. Objective