Computer Science
CSC3961 ccs
Computer programming

Learn the fundamentals of programming on the Khan Academy Computer Science platform. Explore programs made by others. Write your own programs and share them!

Intro to JS: Drawing & An...

Learn how to use the JavaScript language and the ProcessingJS library to create fun drawings and animations.

items (105)
Password:
VIDEO

What is Programming?

VIDEO

A Tour of Programming on Khan Academy

WEB RESOURCE

Making Drawings with Code

WEB RESOURCE

Quick tip: number scrubbing

WEB RESOURCE

Challenge: Simple snowman

WEB RESOURCE

Challenge: Waving snowman

WEB RESOURCE

Coloring with code

WEB RESOURCE

Challenge: Sunny snowy day

VIDEO

The Power of the Docs

WEB RESOURCE

Intro to Variables

WEB RESOURCE

Project: What's for Dinner?

WEB RESOURCE

Quiz: Variables

WEB RESOURCE

Challenge: Bucktooth Bunny

WEB RESOURCE

More on Variables

WEB RESOURCE

Challenge: Funky Frog

DOCUMENT

Review: Variables

WEB RESOURCE

What are animations?

WEB RESOURCE

Challenge: Exploding Sun

WEB RESOURCE

Mouse Interaction

WEB RESOURCE

Challenge: Tasty Tomato

WEB RESOURCE

Project: Crazy Painter

WEB RESOURCE

Incrementing Shortcuts

WEB RESOURCE

A shorter shortcut

WEB RESOURCE

Challenge: Parting Clouds

WEB RESOURCE

Resizing shapes with variable expressions

WEB RESOURCE

Terrific Text: Part One

WEB RESOURCE

Challenge: My Favorite Foods

WEB RESOURCE

Terrific Text: Part Two

WEB RESOURCE

Challenge: Mouse Tracker

DOCUMENT

Review: Text and Strings

WEB RESOURCE

Project: Ad Design

WEB RESOURCE

Intro to JS- Drawing and Animation: Functions

WEB RESOURCE

Challenge: Say Your Name

WEB RESOURCE

Function Parameters

WEB RESOURCE

Challenge: Moles in Holes

WEB RESOURCE

Function Return Values

WEB RESOURCE

Challenge: Calculator

WEB RESOURCE

Local and Global Variables

DOCUMENT

Review: Functions in JS Drawing and Animation

WEB RESOURCE

Project: Fish Tank

WEB RESOURCE

If Statements

WEB RESOURCE

Challenge: Bouncy Ball

WEB RESOURCE

More Mouse Interaction

WEB RESOURCE

Challenge: Your First Painting App

WEB RESOURCE

Booleans

WEB RESOURCE

Challenge: Number Analyzer

WEB RESOURCE

Logical Operators

WEB RESOURCE

Challenge: Your First Button

WEB RESOURCE

Challenge: Smarter Button

WEB RESOURCE

If/Else - Part 1

WEB RESOURCE

Challenge: Flashy Flash Card

WEB RESOURCE

If/Else - Part 2

DOCUMENT

Review: Logic and if Statements

WEB RESOURCE

Project: Magic 8-Ball

WEB RESOURCE

Intro to While Loops

WEB RESOURCE

Challenge: A Loopy Ruler

WEB RESOURCE

More While Loops: Balloon Hopper

WEB RESOURCE

Challenge: A Loopy Landscape

WEB RESOURCE

For Loops! A New Kind of Loop

WEB RESOURCE

Challenge: Lined Paper

WEB RESOURCE

Nested For Loops

DOCUMENT

Review: Looping

WEB RESOURCE

Project: Build-a-House

WEB RESOURCE

Intro to Arrays

WEB RESOURCE

Challenge: Favorite Fruits

WEB RESOURCE

Looping through Arrays

WEB RESOURCE

Challenge: Favorite Animals

WEB RESOURCE

Modifying Arrays

WEB RESOURCE

Challenge: Constellation Maker

DOCUMENT

Review: Arrays

WEB RESOURCE

Project: Make it Rain

WEB RESOURCE

Intro to Objects

WEB RESOURCE

Challenge: Recipe Card

WEB RESOURCE

Modifying Objects

WEB RESOURCE

Challenge: Picture Painter

WEB RESOURCE

Arrays of Objects

WEB RESOURCE

Challenge: Movie Reviews

DOCUMENT

Review: Objects

WEB RESOURCE

Project: Bookshelf

WEB RESOURCE

Object Types

WEB RESOURCE

Challenge: Double Rainbow

WEB RESOURCE

Object Methods

WEB RESOURCE

Challenge: SmileyFace

WEB RESOURCE

Object Inheritance

WEB RESOURCE

Challenge: Flower Grower

DOCUMENT

Review: Object-Oriented

DOCUMENT

What to Learn Next - Computer Programming

WEB RESOURCE

Quiz: While Loops

VIDEO

Help Others Learn Programming on Khan Academy

WEB RESOURCE

Learning programming on Khan Academy

WEB RESOURCE

Quick tip: color picking

WEB RESOURCE

Making animations

WEB RESOURCE

Spin-off of "Project: Shooting star"

WEB RESOURCE

Challenge: Mouse movement mania

DOCUMENT

Using math expressions in JS

WEB RESOURCE

Quiz: Variable Expressions

WEB RESOURCE

Challenge: Brown bear eyes

WEB RESOURCE

Spin-off of "Project: Animal attack"

WEB RESOURCE

Special ProcessingJS functions

WEB RESOURCE

Debugging with println()s

DOCUMENT

More debugging tips

WEB RESOURCE

Readable Code

WEB RESOURCE

Clarifying with Comments

WEB RESOURCE

Quiz: Clean code

DOCUMENT

Planning a programming project

HTML/CSS: Making Webpages

Learn how to use HTML and CSS to make webpages. HTML is the markup language that you surround content with, to tell browsers about headings, lists, tables, etc. CSS is the stylesheet language that you style the page with, to tell browsers to change the color, font, layout, and more.

items (70)
Password:
VIDEO

Welcome to the Web! - Making Webpages Intro

WEB RESOURCE

HTML Basics

WEB RESOURCE

Challenge: Write a Poem

WEB RESOURCE

HTML: Text Emphasis

WEB RESOURCE

Challenge: You Can Learn Text Tags

WEB RESOURCE

HMTL: Lists

WEB RESOURCE

Challenge: Your Learning List

WEB RESOURCE

HTML: Images

WEB RESOURCE

Challenge: A Picture-Perfect Trip

WEB RESOURCE

CSS Basics

WEB RESOURCE

Challenge: Colorful Creature

WEB RESOURCE

CSS: Selecting By ID

WEB RESOURCE

CSS: Selecting by Class

WEB RESOURCE

Challenge: Apples and Bananas Classes

WEB RESOURCE

Quiz: Simple CSS Selectors

WEB RESOURCE

Project: Travel Webpage

WEB RESOURCE

HTML Links

WEB RESOURCE

Challenge: Links You Love

WEB RESOURCE

HTML Internal Links

WEB RESOURCE

Challenge: Jump Around

WEB RESOURCE

HTML Tables

WEB RESOURCE

Challenge: The Dinner Table

WEB RESOURCE

HTML Comments

WEB RESOURCE

Project: Recipe Book

VIDEO

CSS Zen Garden

WEB RESOURCE

CSS Font-Family Property

WEB RESOURCE

Challenge: Fancy Font Families

WEB RESOURCE

CSS Font-Size Property

WEB RESOURCE

Challenge: Great Big Font Sizes

WEB RESOURCE

CSS Font Styles and Shorthand

WEB RESOURCE

Challenge: Famous Font Formats

WEB RESOURCE

More CSS Text Properties

WEB RESOURCE

Quiz: Text Properties

WEB RESOURCE

CSS Inheritance

WEB RESOURCE

Project: Blog

WEB RESOURCE

CSS Grouping Elements

WEB RESOURCE

Challenge: Group the Groupers

WEB RESOURCE

CSS Width, Height, and Overflow

WEB RESOURCE

The Overflowing Ocean

WEB RESOURCE

CSS Box Model

WEB RESOURCE

Challenge: The Boxer Model

WEB RESOURCE

CSS Position

WEB RESOURCE

Challenge: Position Planet

VIDEO

CSS in the Wild - Google Maps

WEB RESOURCE

CSS Floating Elements

WEB RESOURCE

Challenge: Floating Clouds

WEB RESOURCE

Quiz: CSS Layout

WEB RESOURCE

Project: Event Invite

WEB RESOURCE

Using Multiple CSS Classes

WEB RESOURCE

Challenge: A Classy Gallery

WEB RESOURCE

Combining CSS Class and Element Selectors

WEB RESOURCE

Challenge: Classes of Elements

WEB RESOURCE

CSS Descendant Selectors

WEB RESOURCE

Challenge: Descendants of Khan

WEB RESOURCE

Grouping CSS Selectors

WEB RESOURCE

CSS Dynamic Pseudo-Classes

WEB RESOURCE

Challenge: Grouped Animals

WEB RESOURCE

CSS Specificity

WEB RESOURCE

Quiz: CSS Specificity

VIDEO

HTML Validation

WEB RESOURCE

Quiz: Validate this HTML

WEB RESOURCE

What to Learn Next - HTML and CSS

DOCUMENT

Quick tip: HTML tags

WEB RESOURCE

Challenge: Seasonal ids

WEB RESOURCE

Developing webpages outside of Khan Academy

WEB RESOURCE

Using the browser developer tools

WEB RESOURCE

Planning your webpage

WEB RESOURCE

Using inline CSS styles

WEB RESOURCE

Using external stylesheets

DOCUMENT

Webpage design

Intro to SQL: Querying an...

Learn how to use SQL to store, query, and manipulate data. SQL is a special-purpose programming language designed for managing data in a relational database, and is used by a huge number of apps and organizations.

items (38)
Password:
VIDEO

Welcome to SQL

WEB RESOURCE

Creating a table and inserting data

WEB RESOURCE

Challenge: Book list database

WEB RESOURCE

Querying the table

WEB RESOURCE

Challenge: Box office hits database

WEB RESOURCE

Aggregating data

WEB RESOURCE

Challenge: TODO list database stats

VIDEO

S-Q-L or SEQUEL?

WEB RESOURCE

Spin-off of "Project: Design a store database"

WEB RESOURCE

More complex queries with AND/OR

WEB RESOURCE

Challenge: Karaoke song selector

WEB RESOURCE

Querying IN subqueries

WEB RESOURCE

Challenge: Playlist maker

WEB RESOURCE

Restricting grouped results with HAVING

WEB RESOURCE

Challenge: The wordiest author

DOCUMENT

Who issues SQL queries?

WEB RESOURCE

Calculating results with CASE

WEB RESOURCE

Challenge: Gradebook

WEB RESOURCE

Spin-off of "Project: Data dig"

DOCUMENT

Splitting data into related tables

WEB RESOURCE

JOINing related tables

WEB RESOURCE

Challenge: Bobby's Hobbies

WEB RESOURCE

Joining related tables with left outer joins

WEB RESOURCE

Challenge: Customer's orders

WEB RESOURCE

Joining tables to themselves with self-joins

WEB RESOURCE

Challenge: Sequels in SQL

WEB RESOURCE

Combining multiple joins

WEB RESOURCE

Challenge: FriendBook

WEB RESOURCE

Spin-off of "Project: Famous people"

DOCUMENT

More efficient SQL with query planning and optimiz...

DOCUMENT

Using SQL to update a database

WEB RESOURCE

Changing rows with UPDATE and DELETE

WEB RESOURCE

Challenge: Dynamic Documents

WEB RESOURCE

Altering tables after creation

WEB RESOURCE

Challenge: Clothing alterations

DOCUMENT

Make your SQL safer

WEB RESOURCE

Spin-off of "Project: App impersonator"

DOCUMENT

What to Learn Next - SQL Queries and Managing Data

Advanced JS: Games & Visu...

This unit contains materials related to Advanced JS: Games & Visualizations.

items (36)
Password:
VIDEO

Intro to Games and Visualizations

WEB RESOURCE

Translation

WEB RESOURCE

Rotation

WEB RESOURCE

Scaling

WEB RESOURCE

Multiple transformations

WEB RESOURCE

Intro to Hoppy Beaver

WEB RESOURCE

Beaver character

WEB RESOURCE

Forest environment

WEB RESOURCE

Stick collisions

WEB RESOURCE

Scoring and winning

WEB RESOURCE

Project: Hoppy Beaver Extreme

WEB RESOURCE

Intro to "Memory"

WEB RESOURCE

Grid of tiles

WEB RESOURCE

Playing the game

WEB RESOURCE

Project: Memory++

WEB RESOURCE

Challenge: Translation Salvation

WEB RESOURCE

Challenge: Rotation

WEB RESOURCE

Challenge: Optical Illusion

WEB RESOURCE

Challenge: Shining Scaling Sun

WEB RESOURCE

Challenge: Story Teller

WEB RESOURCE

Animated Scenes

WEB RESOURCE

Interactive Scenes

WEB RESOURCE

Button-Controlled Scene Changes

WEB RESOURCE

What are Buttons?

WEB RESOURCE

A Button Object Type

WEB RESOURCE

Challenge: Rabbit Racer

WEB RESOURCE

What are 3D Shapes?

WEB RESOURCE

Creating 3D Shapes

WEB RESOURCE

Drawing 3D Shapes

WEB RESOURCE

Rotating 3D Shapes

WEB RESOURCE

Generating 3D Shapes

WEB RESOURCE

Challenge: Tic-Tac-Toe

WEB RESOURCE

Challenge: Pong

WEB RESOURCE

A Button Function

DOCUMENT

What are scenes?

WEB RESOURCE

Simple scene changes

Advanced JS: Natural Simu...

Once you've taken Intro to JS, you can go through this course to learn how to combine JS, ProcessingJS, and mathematical concepts to simulate nature in your programs. This course is a derivative of "The Nature of Code" book by Daniel Shiffman (natureofcode.com), used under CC BY-NC.

items (74)
Password:
WEB RESOURCE

Trigonometric ratios in right triangles - Practice...

VIDEO

Welcome to Natural Simulations

WEB RESOURCE

Random walks

WEB RESOURCE

Challenge: Random blobber

WEB RESOURCE

Probability & non-uniform distributions

WEB RESOURCE

Challenge: Up walker

WEB RESOURCE

Normal Distribution of Random Numbers

WEB RESOURCE

Challenge: Gaussian walk

WEB RESOURCE

Custom Distribution of Random Numbers

WEB RESOURCE

Challenge: Lévy walker

WEB RESOURCE

Project: Paint splatter

WEB RESOURCE

Perlin noise

WEB RESOURCE

Challenge: Noisy step walker

WEB RESOURCE

Two Dimensional Noise

WEB RESOURCE

Challenge: Animated noise

WEB RESOURCE

Project: Mountain range

WEB RESOURCE

Intro to vectors

WEB RESOURCE

Challenge: Vector walker

WEB RESOURCE

More Vector Math

WEB RESOURCE

Challenge: Lightsaber

WEB RESOURCE

Vector Magnitude & Normalization

WEB RESOURCE

Challenge: Magnitude visualizer

WEB RESOURCE

Vector Motion

WEB RESOURCE

Challenge: Braking car

DOCUMENT

Static Functions vs Instance Methods

WEB RESOURCE

Challenge: Static functions

WEB RESOURCE

Interactive Vector Motion

WEB RESOURCE

Challenge: Mouse stalker

WEB RESOURCE

Project: Computational creatures

WEB RESOURCE

Newton's laws of motion

WEB RESOURCE

Challenge: Floating balloon

WEB RESOURCE

Motion of Many Objects

WEB RESOURCE

Challenge: Wall balls

WEB RESOURCE

Model Gravity and Friction

WEB RESOURCE

Challenge: Speed bumps

WEB RESOURCE

Air and Fluid Resistance

WEB RESOURCE

Challenge: Sinking logs

WEB RESOURCE

Gravitational Attraction

WEB RESOURCE

Challenge: Artwork generator

WEB RESOURCE

Mutual Attraction

WEB RESOURCE

Challenge: Mutual repulsion

WEB RESOURCE

Project: Creature comforts and critter jitters

DOCUMENT

Angles and units

WEB RESOURCE

Challenge: Spinning baton

WEB RESOURCE

Angular Velocity

WEB RESOURCE

Challenge: Falling boulder

DOCUMENT

Trigonometry

WEB RESOURCE

Pointing Towards Movement

WEB RESOURCE

Challenge: Turning Car

WEB RESOURCE

Polar Coordinates

WEB RESOURCE

Challenge: Spiral drawer

WEB RESOURCE

Project: Asteroids spaceship

WEB RESOURCE

Oscillation amplitude and period

WEB RESOURCE

Challenge: Rainbow slinky

WEB RESOURCE

Oscillation with Angular Velocity

WEB RESOURCE

Challenge: Spaceship ride

WEB RESOURCE

Waves

WEB RESOURCE

Challenge: Many waves

WEB RESOURCE

Trig and Forces the Pendulum

WEB RESOURCE

Challenge: Pendulum puppet

WEB RESOURCE

Spring Forces

WEB RESOURCE

Project: Curling, crawling, circling creatures

WEB RESOURCE

Intro to particle systems

WEB RESOURCE

A single particle

WEB RESOURCE

Challenge: Falling leaves

WEB RESOURCE

A Particle System

WEB RESOURCE

Challenge: Fish bubbles

WEB RESOURCE

Systems of Particle Systems

WEB RESOURCE

Challenge: Fire starter

WEB RESOURCE

Particle Types

WEB RESOURCE

Challenge: Magical cauldron

WEB RESOURCE

Particle Systems with Forces

WEB RESOURCE

Challenge: River rocks

WEB RESOURCE

Project: Creature Colonies

HTML/JS: Making Webpages ...

Once you've taken both Intro to JS and Intro to HTML/CSS, take this course to learn how use HTML/CSS with the JavaScript DOM API to make your webpages interactive.

items (50)
Password:
VIDEO

Welcome to Making Webpages Interactive

WEB RESOURCE

Quiz: HTML/CSS Recap

WEB RESOURCE

Quiz: JavaScript Recap

WEB RESOURCE

Putting JS in a Webpage

WEB RESOURCE

Challenge: A Scripted Script Tag

WEB RESOURCE

The DOM (Document Object Model)

WEB RESOURCE

Quiz: What is DOM?

WEB RESOURCE

Finding Elements by ID

WEB RESOURCE

Challenge: ID Changer

WEB RESOURCE

Finding Multiple DOM Elements by Tag or Class Name

WEB RESOURCE

Challenge: Custom Name Tags

WEB RESOURCE

Finding Elements by CSS Selector

WEB RESOURCE

Challenge: Query Modernizer

WEB RESOURCE

Summary: DOM Access Methods

WEB RESOURCE

Changing Attributes

WEB RESOURCE

Challenge: Avatar Attributes

WEB RESOURCE

Changing Styles

WEB RESOURCE

Challenge: Style Guide

WEB RESOURCE

Changing CSS Classes

WEB RESOURCE

Challenge: Classification

WEB RESOURCE

Setting innerHTML and textContent

WEB RESOURCE

Challenge: The Inside Story

WEB RESOURCE

Creating Elements from Scratch

WEB RESOURCE

Challenge: Create a Solar System

WEB RESOURCE

Summary: DOM Modification Techniques

VIDEO

Making Webpages Interactive with Events

WEB RESOURCE

Adding an Event Listener

WEB RESOURCE

Challenge: Cat Clicker

WEB RESOURCE

DOM Event Types

WEB RESOURCE

Using the Event Properties

WEB RESOURCE

Challenge: Cat-stache

WEB RESOURCE

Processing Forms with Events

WEB RESOURCE

Challenge: Mad Libs

WEB RESOURCE

Preventing Default Behavior of Events

WEB RESOURCE

Summary: DOM Events

WEB RESOURCE

The Window Object

WEB RESOURCE

Animating DOM with setInterval

WEB RESOURCE

Challenge: Stopwatch

WEB RESOURCE

Animating Styles with requestAnimationFrame

WEB RESOURCE

Challenge: Catwalk

WEB RESOURCE

Animating Styles with CSS Animations

WEB RESOURCE

What DOM Animation Technique Should You Use?

VIDEO

Debugging webpages with the browser console

DOCUMENT

What's a JS library?

WEB RESOURCE

Using a JS Library: Slideshow library

DOCUMENT

Where are JS libraries hosted?

WEB RESOURCE

Quiz: JS libraries

DOCUMENT

The world of JS libraries

DOCUMENT

Which JS library should you use?

DOCUMENT

What to Learn Next - Making webpages interactive

Meet the Professional

What can you do with computer science and programming skills once you've learned them? We've invited people from all around the world and the industry to introduce themselves to you. Find out how diverse our field can be!

items (12)
Password:
VIDEO

Welcome to "Meet the Professional"!

DOCUMENT

Yann Dauphin, Researcher and Bass player

DOCUMENT

Brenda Jin, Mobile Prototyper and DJ

DOCUMENT

Tom Heinan, Mobile Developer, Pilot, and Zombie

DOCUMENT

Amy Quispe, Data Liberator and Developer Relater

WEB RESOURCE

Bill Mills, Physicist and Interdisciplinary Progra...

WEB RESOURCE

Carrie Cai, Researcher and Dancer

WEB RESOURCE

Philip Guo, Python Tutor and Writer

DOCUMENT

Lauren Haynes, Product Manager and Lindy Hopper

DOCUMENT

Marcos Ojeda, Designer, DJ, and Dog Owner

WEB RESOURCE

Allyson Lubimir, Support Engineer and Cat Lover

DOCUMENT

Sarah Northway, Game Maker and Nomad