Rocket Comp Sci 🚀

Learn and explore various topics at your own pace

  • Prerequisite
  • Layout and goals

  • What is a Program?
  • CPU Code Architecture
  • How Does a Program Run?
  • Programming Languages
  • Compilers vs. Interpreters

  • HTML & CSS & JavaScript
  • What is HTML?
  • What is CSS?
  • What is JavaScript?
  • Note on running code

  • Installing VS Code
  • Setting a Workspace
  • Base Project
  • Developer Console

  • Intro To Programming Basics
  • How To Read Code
  • Variables
  • Naming
  • Operators
  • Knowledge Test: Var & Op & Naming
  • Conditionals: If
  • Conditionals: Switch
  • Conditionals: Ternary
  • Conditionals & Logical Operators
  • Knowledge Test: Conditionals
  • Arrays
  • Multidimensional Arrays
  • Loops
  • Knowledge Test: Loops
  • Functions
  • Pass by Reference vs. Value
  • Scope
  • Styling conventions
  • Coding Challenge
  • Pseudo Code

  • Intro to Canvas
  • Deeper Into the Context
  • Drawing Simple Shapes
  • The Graph
  • Animation Loop

  • Intro to the Project
  • Revisiting the Loop
  • Implementing a Better Loop
  • Cycle Capping
  • Turn the Rectangle into Circle
  • Colliding Against The Wall
  • Improving Code Layout
  • Add Another Ball
  • Circle Collision
  • Brute Force Algorithm
  • Implementing Brute Force Collision
  • Events
  • Event Coordinates
  • Dynamically Adding a Ball
  • Removing a Ball
  • Completed Project

  • Intro to OOP
  • Setting the Scenario
  • The User Defined Type
  • Member Functions & This Keyword
  • The Constructor
  • This Keyword Again
  • Back to The Scenario
  • OOP Fundamentals
  • Public Private Protected
  • Encapsulation
  • Inheritance
  • Abstraction
  • Polymorphism
  • Interfaces
  • Composition
  • The Scenario
  • JSON
  • Outro to OOP

  • Intro to the Snake Project
  • Note on Source Files
  • First Steps and Layout
  • Vector2D
  • The Game Object
  • The Collision Box
  • Custom Events
  • The Food
  • The Snake
  • The Screen
  • The Colliders
  • Implementing Collision
  • Game Text
  • Score Text
  • Player Input
  • Dynamically Add Food
  • Game Start
  • Game Over
  • Dead Game Objects
  • Update Game Objects
  • Draw Game Objects
  • Time Adjustments
  • Making it Challenging
  • Handling window resize
  • The Project End
  • The source files

Welcome

This is a website dedicated to learning computer programming and computer science topics.

The goal is to learn small lessons each step of the way and gain an understanding of programming concepts.

In later chapters, we will focus on using these fundamentals to build a small game.

The lessons will utilize basic web development tooling, with a focus on JavaScript.

Chances are if you are viewing this page, most of these tools are already installed & working.