Today, we’re going to take a look at computing’s origins, because even though our digital computers are relatively new, the need for computation is not.
In the 20th century, cabinet-sized electro-mechanical computers would grow into room-sized behemoths that were prone to errors. But is was these computers that would help usher in a new era of computation - electronic computing.
Today, Carrie Anne is going to take a look at how those transistors we talked about last episode can be used to perform complex actions. With the just two states, on and off, the flow of electricity can be used to perform a number of logical operations, which are guided by a branch of mathematics called Boolean Algebra.
Today, we’re going to take a look at how computers use a stream of 1s and 0s to represent all of our data - from our text messages and photos to music and webpages.
This session covers a fundamental part of all modern computers. The thing that basically everything else uses - the Arithmetic and Logic Unit (or the ALU). The ALU may not have to most exciting name, but it is the mathematical brain of a computer and is responsible for all the calculations your computer does!
Today we’re going to create memory! Using the basic logic gates we discussed in episode 3 we can build a circuit that stores a single bit of information, and then we’ll show you how we can construct the modern random-access memory, or RAM.
Today we’re going to build the ticking heart of every computer - the Central Processing Unit or CPU. The CPU’s job is to execute the programs we know and love - you know like GTA V, Slack... and Power Point.
Today we’re going to take our first baby steps from hardware into software! Using that CPU we built last episode we’re going to run some instructions and walk you through how a program operates on the machine level.
Let's look at how CPU speeds have rapidly increased from just a few cycles per second to gigahertz! Some of that improvement, of course, has come from faster and more efficient transistors, but a number hardware designs have been implemented to boost performance.
In the last few episodes, our instructions were already in our computer’s memory, but we need to talk about how they got there - this is the heart of programming. Today, we’re going to look at the history of programming and the innovations that brought us from punch cards and punch paper tape to plugboards and consoles of switches.
Grace Hopper helped created the first high-level programming language A-0 and compiler to translate that code to our machines. This innovation would eventually lead to IBM’s Fortran and then a golden age of computing languages over the coming decades.
Today, Carrie Anne is going to start our overview of the fundamental building blocks of programming languages. We’ll start by creating small programs for our very own video game to show how statements and functions work.
Algorithms are the sets of steps necessary to complete computation - they are at the heart of what our devices actually do. And this isn’t a new concept. Since the development of math itself algorithms have been needed to help us complete tasks more efficiently, but today we’re going to take a look a couple modern computing problems
Today we’re going to talk about on how we organize the data we use on our devices. You might remember last episode we walked through some sorting algorithms, but skipped over how the information actually got there in the first place!
How are HUGE programs with millions of lines of code like Microsoft Office are built? Programs like these are way too complicated for a single person, but instead require teams of programmers using the tools and best practices that form the discipline of Software Engineering.
So you may have heard of Moore's Law and while it isn't truly a law it has pretty closely estimated a trend we've seen in the advancement of computing technologies. Moore's Law states that we'll see approximately a 2x increase in transistors in the same space every two years
This session traces the development of operating systems from the Multics and Atlas Supervisor to Unix and MS-DOS, and takes at look at how these systems heavily influenced popular OSes like Linux, Windows, MacOS, and Android that we use today.
Memory and storage are different things but both hold data in your computer. Data written to storage, like your hard drive, is a little different, because it will still be there even if the power goes out
This session covers how some popular file formats like txt, wave, and bitmap are encoded and decoded giving us pictures and recordings from just strings of 1’s and 0’s, and we’ll discuss how our computers are able to keep all this data organized
Often files are way too large to be easily stored on hard drives or transferred over the Internet - the solution, unsurprisingly, is to make them smaller. We use a process called compression.
Let's look at our earliest form of interaction through keyboards. We'll talk about how the keyboard got its qwerty layout, and then we'll track its evolution in electronic typewriters, and eventually terminals with screens.
By the early 1960s, a number of technologies were introduced to make screens much more useful from cathode ray tubes and graphics cards to ASCII art and light pens. Computers were no longer just number crunching machines, but potential assistants interactively augmenting human tasks.
Today we're going to talk about the birth of personal computing. IBM completely changed the industry as its "IBM compatible" open architecture consolidated most of the industry except for, notably, Apple.
Today we’re going to discuss how 3D graphics are created and then rendered for a 2D screen. From polygon count and meshes, to lighting and texturing, there are a lot of considerations in building the 3D objects we see in our movies and video games.
Today we start a three episode arc on the rise of a global telecommunications network that changed the world forever. We’re going to begin with computer networks, and how they grew from small groups of connected computers on LAN networks to eventually larger worldwide networks
Today, we're going to talk about how the Internet works. Specifically, how that stream of characters you punch into your browser's address bar, like "youtube.com", return this very website.
Today we’re going to discuss the World Wide Web - not to be confused with the Internet, which is the underlying plumbing for the web as well as other networks.
Cybersecurity is a set of techniques to protect the secrecy, integrity, and availability of computer systems and data against threats. We'll talk through some strategies we use like passwords, biometrics, and access privileges to keep our information as secure.
Today we’re going to talk about how to keep information secret, and this isn’t a new goal. From as early as Julius Caesar’s Caesar cipher to Mary, Queen of Scots, encrypted messages to kill Queen Elizabeth in 1587, theres has long been a need to encrypt and decrypt private correspondence.
Today we’re going to talk about how computers see. We’ve long known that our digital cameras and smartphones can take incredibly detailed images, but taking pictures is not quite the same thing.
Today we're going to talk about robots! Robots are often thought as a technology of the future, but they're already here by the millions in the workplace, our homes, and pretty soon on the roads.
Today, we’re going to discuss some psychological considerations in building computers like how to make them easier for humans to use, the uncanny valley problem when humanoid robots gets more and more humanlike, and strategies to make our devices work better with us by incorporating our emotions and even altering our gaze.
In our SERIES FINALE of Crash Course Computer Science we take a look towards the future! In the past 70 years electronic computing has fundamentally changed how we live our lives, and we believe it’s just getting started.
Welcome to Crash Course Artificial Intelligence! In this series host Jabril Ashe will teach you the logic behind AI by tracing its history and examining how it’s being used today. We’ll even show you how to create some of your own AI systems with the help of co-host John Green Bot!
Artificial intelligence is everywhere and it's already making a huge impact on our lives. It's autocompleting texts on our cellphones, beating us at video games, ordering products in stores, driving cars, and more! Today we're going to explain what AI can (and can't) do right now and explain how we got to where we are today.
Today we’re going to teach John Green Bot how to tell the difference between donuts and bagels using supervised learning! Supervised learning is the process of learning WITH training labels, and is the most widely used kind of learning with it comes to AI - helping with stuff like tagging photos on Facebook and filtering spam from your email. We’re going to start small today.
Today, we're going to combine the artificial neuron we created last week into an artificial neural network. Artificial neural networks are better than other methods for more complicated tasks like image recognition, and the key to their success is their hidden layers. We'll talk about how the math of these networks work and how using many hidden layers allows us to do deep learning.
Today we’re going to talk about how neurons in a neural network learn by getting their math adjusted, called backpropagation, and how we can optimize networks by finding the best combinations of weights to minimize error.
In our first lab, we’re going to program a neural network to recognize handwritten letters to convert the first part of John Green Bot’s novel into typed text. We will import a labeled dataset, called EMNIST, and use a pre-written library called SKLearn to build the network. We’ll train and tweak our code until it’s accurate (enough), and then we’ll use our newly trained network to convert John Green Bot’s handwritten pages.
Today, we’re moving on from artificial intelligence that needs training labels, called Supervised Learning, to Unsupervised Learning which is learning by finding patterns in the world. We’ll focus on the performing unsupervised clustering, specifically K-means clustering, and show you how we can extract meaningful patterns from data even when you don't know where those patterns are.
One of the most common ways we interact with computers is through language - we type questions into search engines, use our smart assistants like Siri and Alexa to set alarms and check the weather, and communicate across language barriers with the help of Google Translate. Today, we're going to talk about Natural Language Processing.
Let’s try to help John Green Bot sound a bit more like the real John Green using Natural Language Processing. Today, we're going to code a program that takes a one-word prompt and then completes the sentence that sounds like something John Green would say.
Reinforcement learning is particularly useful in situations where we want to train AIs to have certain skills we don’t fully understand ourselves. Reinforcement learning generally only looks at how an AI performs a task AFTER it has completed it. When an AI completes that task figuring out when and how to reward an AI, called credit assignment, is the hardest parts of reinforcement learning.
Symbolic AI is really different from the modern neural networks we've discussed so far, instead, it represents problems using symbols and then uses logic to search for solutions. And this type of AI is used broadly in video games and in expert systems like those that manage inventory at grocery stores and set rates at insurance companies.
Today, we're going to take a look at the role of AI in overcoming three key challenges in the field of robotics: localization, planning, and manipulation.
Today, we’re going to walk you through creating a Tic Tac Toe bot that uses the minimax algorithm to become undefeatable and we’ll talk about evolutionary neural networks like in SethBling’s MarI/O project. Next week we’ll create our very own game and create an AI to master it!
Today we create a game and then build an AI to destroy it. Our game is called TrashBlaster, and it’s like Asteroids but with trash in the ocean, and instead of a spaceship John Green Bot is wielding a laser. We'll use machine learning techniques such as an evolutionary neural network alongside a carefully crafted fitness function to create an unstoppable AI.
Human-AI teams allow us to fill in each others weaknesses leveraging human creativity and insight with the ability to perform rote manual tasks and synthesize lots of information. This kind of collaboration can help us make better decisions, brainstorm new inventions, give us superhuman abilities, and rescue victims of natural disasters.
Today we’ll learn about recommender systems which form the backbone of the content we see online from video recommendations on YouTube and Netflix. We’ll talk about their types of systems and take a closer look at what they're good at, but also why they often fail.
Today, we’re going to build a movie recommender systems to find that perfect movie. With the help of the LensKit library, our AI will use existing movie ratings from the MovieLens dataset and personalized ratings from Jabril and John Green Bot to perform user-user collaborative filtering. We’ll then create a Jabril Green Bot hybrid that will average these ratings to try and find something that they both want to watch.
Let's talk about AI search engines, which are AI systems that help us find what we’re looking for. Search engines can serve up a list of results by using web crawlers, an inverted index, and measuring stuff like click through and bounce back to figure out what you want to see.
Today, we're going to talk about five common types of algorithmic bias we should pay attention to. Bias isn't necessarily a terrible thing, our brains often use it to take shortcuts by finding patterns, but bias can become a problem if we don't acknowledge exceptions to patterns or if we allow it to discriminate.
Today, in our final lab, Jabril tries to make an AI settle the question once and for all, "Will a cat or a dog make us happier?" But in building this AI, Jabril will accidentally incorporate the very bias he was trying to avoid. What can he do to account for this?
Charles Babbage (1791-1871) was a computer pioneer who designed the first automatic computing engines. This exhibit uses video, text and images to explore his great invention and the creation of Babbage engines in the 21st Century.
This online exhibit covers the history of the groundbreaking Digital Equipment Corporation's PDP-1 (Programmed Data Processor-1) computer in 1959 and the Computer History Museum's recent restoration of a PDP-1 to working order. You will find many images and related documents in the exhibit.
This timeline explores the history of computing from 1939 to 2015. Each year features illustrated descriptions of significant innovations. Select a year or a category to get started.
This video describes one of the key innovations in the development of modern computers: the transistor. Learn what a transistor is and how this small device enables all the amazing things computers can do.
In many ways, our memories make us who we are, helping us remember our past, learn and retain skills, and plan for the future. And for the computers that often act as extensions of ourselves, memory plays much the same role.
The modern hard drive is an object that can likely hold more information than your local library. But how does it store so much information in such a small space?
Every time you use the Internet to watch a movie, listen to music, or check directions, your device is using the language of binary code. This video explains how colours, numbers, letters and music are conveyed using only the numbers 1 and 0.
How does a computer work? The critical components of a computer are the peripherals (including the mouse), the input/output subsystem (which controls what and how much information comes in and out), and the central processing unit (the brains), as well as human-written programs and memory.
This video explains network theory and how networks keep us connected. Learn how we live within a web of networks, not just on social media. How does Googling a single word provide millions of results?
Did you know? There are around 2.5 billion smartphone users in the world (as of 2018). What would we find if we opened those phones? We'd find rare metals including gold, silver, and copper. This video investigates the sustainability of phone production and how to reclaim these precious elements.
Canada Learning Code brings accessible computer science to communities across Canada so everyone can create with technology. Lesson plans are labelled by grade and are free to download
Free K-12 lesson plans (scroll down to find lesson plans for the high grades) from Code.org -- a nonprofit dedicated to expanding access to computer science in schools and increasing participation by students from underrepresented groups.
This 10-episode narrative follows a girl, Ethic, and her robot companion, Hedge, as they attempt to save the world. The two embark on a quest to collect three artifacts and must solve their way through a series of programming puzzles.
This 10-episode narrative follows a girl, Ethic, and her robot companion, Hedge, as they attempt to save the world. The two embark on a quest to collect three artifacts and must solve their way through a series of programming puzzles.
This 10-episode narrative follows a girl, Ethic, and her robot companion, Hedge, as they attempt to save the world. The two embark on a quest to collect three artifacts and must solve their way through a series of programming puzzles.
This 10-episode narrative follows a girl, Ethic, and her robot companion, Hedge, as they attempt to save the world. The two embark on a quest to collect three artifacts and must solve their way through a series of programming puzzles.
This 10-episode narrative follows a girl, Ethic, and her robot companion, Hedge, as they attempt to save the world. The two embark on a quest to collect three artifacts and must solve their way through a series of programming puzzles.
This 10-episode narrative follows a girl, Ethic, and her robot companion, Hedge, as they attempt to save the world. The two embark on a quest to collect three artifacts and must solve their way through a series of programming puzzles.
This 10-episode narrative follows a girl, Ethic, and her robot companion, Hedge, as they attempt to save the world. The two embark on a quest to collect three artifacts and must solve their way through a series of programming puzzles.
This 10-episode narrative follows a girl, Ethic, and her robot companion, Hedge, as they attempt to save the world. The two embark on a quest to collect three artifacts and must solve their way through a series of programming puzzles.
This 10-episode narrative follows a girl, Ethic, and her robot companion, Hedge, as they attempt to save the world. The two embark on a quest to collect three artifacts and must solve their way through a series of programming puzzles.
Alice is a tool for teaching computing. It uses graphics and a drag-and-drop interface to create an engaging programming experience. With Alice, students can create animations, build interactive narratives, or program simple games in 3D. ...
Have you ever wanted to send an encoded message that only a handful of people could actually decode? This conversion tool will take any text string and convert it into binary code.
Draw.io is a great tool for creating flowcharts to illustrate program flow or ideas. It's simple to use - click on Help to get an introduction video and tips.
This site, created by Google, is intended to encourage teen girls to get involved with coding and computer science. There are many activities and resources to explore.
This MIT site has several resources for teachers wanting to introduce students to app building. There are simple step guides to getting started as well as tutorials and educational resources.
"Scratch is a programming language that makes it easy to create your own interactive stories, animations, games, music, and art -- and share your creations on the web." (site)
Find tutorials with interactive self-paced learning that allows kids to progress their skills and seamlessly transition to text languages like JavaScript and Python.
Business websites can do it all these days: greet and impress, entertain and inform, answer questions, resolve problems, and of course, sell products. All day every day. Learn how to come up with a website design that will attract visitors and turn them into paying customers.
Web standards are blueprints –or building blocks– of a consistent and harmonious digitally connected world. They are implemented in browsers, blogs, search engines, and other software that power our experience on the web. Learn about standards here