This course provides a challenging introduction to some of the central ideas …
This course provides a challenging introduction to some of the central ideas of theoretical computer science. It attempts to present a vision of "computer science beyond computers": that is, CS as a set of mathematical tools for understanding complex systems such as universes and minds. Beginning in antiquity--with Euclid's algorithm and other ancient examples of computational thinking--the course will progress rapidly through propositional logic, Turing machines and computability, finite automata, GĚŚdel's theorems, efficient algorithms and reducibility, NP-completeness, the P versus NP problem, decision trees and other concrete computational models, the power of randomness, cryptography and one-way functions, computational theories of learning, interactive proofs, and quantum computing and the physical limits of computation. Class participation is essential, as the class will include discussion and debate about the implications of many of these ideas.
Welcome to the Hands-On AI Projects for the Classroom series, a set …
Welcome to the Hands-On AI Projects for the Classroom series, a set of guides for teachers who are seeking instructional and curricular resources about artificial intelligence (AI) for various grade levels and across a range of subject areas.
6.976 covers system level issues of high speed communication systems and their …
6.976 covers system level issues of high speed communication systems and their impact on circuit requirements, with primary focus being placed on wireless and broadband data link applications. Course topics include: transistor level design techniques for high speed amplifiers, mixers, VCO's, registers and gates, and phase locked loops, and the impact of transmission line effects on circuit designs for narrowband and broadband systems. Finally, behavioral level simulation techniques are presented for phase locked loops and other communication circuits.
In this lesson, learners of all ages get an introductory experience with …
In this lesson, learners of all ages get an introductory experience with coding and computer science in a safe, supportive environment. This lesson has been designed for young learners, ages 4-10, but can be adapted for older learners using the differentiation suggestions provided.
In this lesson, learners of all ages get an introductory experience with …
In this lesson, learners of all ages get an introductory experience with coding and computer science in a safe, supportive environment. This lesson has been designed for learners in the middle grades, ages 10-13, but can be adapted for younger or older learners using the differentiation suggestions provided. Students should have a basic understanding of simple geometry and drawing angles.
In this lesson, learners get an introductory experience with computer science and …
In this lesson, learners get an introductory experience with computer science and create a game using basic block code.This lesson has been designed for learners in the middle grades, ages 10-16, but can be adapted for younger or older learners using the differentiation suggestions provided.
In this lesson, learners get an introductory experience with computer science and …
In this lesson, learners get an introductory experience with computer science and create a game using basic block code.This lesson has been designed for learners in the middle grades, ages 10-16, but can be adapted for younger or older learners using the differentiation suggestions provided.
In this lesson, learners of all ages get an introductory experience with …
In this lesson, learners of all ages get an introductory experience with coding and computer science in a safe, supportive environment. This lesson has two versions.
**Option 1: Blocks**
The first option uses drag-drop blocks. This version works best for:
- Students on mobile devices without keyboards - Younger students (6+ because the tutorial requires reading) - International students
We recommend this for international students because JavaScript syntax is not translated and for the first Hour of Code, the translated blocks provide a better introduction.
**Option 2: JavaScript**
This option teaches the same basic concepts, but because it uses both drag-drop blocks and JavaScript, the students need to be able to type on a keyboard. For older students on computers, learning JavaScript can be fun and provide an additional challenge. This version of the tutorial is also great if you have some students in your class who have already learned some coding. It is recommended for ages 11+.
In this lesson, learners of all ages get an introductory experience with …
In this lesson, learners of all ages get an introductory experience with coding and computer science in a safe, supportive environment. This lesson works well for any students old enough to read (ages 6+). Younger learners will probably not finish the tutorial, but will have lots of fun working through the puzzles for an hour. High school students will mostly finish the tutorial and have some time to play on the free play level at the end.
**Tutorial Summary:** This tutorial is designed to quickly introduce the App Lab …
**Tutorial Summary:** This tutorial is designed to quickly introduce the App Lab programming environment as a powerful tool for building and sharing apps. The tutorial itself teaches students to create and control buttons, text, images, sounds, and screens in JavaScript using either blocks or text. At the end of the tutorial students are given time to either extend a project they started building into a "Choose Your Own Adventure", "Greeting Card", or "Personality Quiz" app. They can also continue on to build more projects featured on the code.org/applab page.
**Age Appropriateness:** The tutorial is designed for students over 13. Because it allows students to upload custom sounds and images, young students should not use this without supervision. To protect students privacy, if your students are under 13, they will not be able to use this tutorial unless you first set up accounts for them in a section you manage.
**Checking Correctness:** This tutorial will not tell students whether they completed the level correctly. Encourage students to use the target images and directions provided in every level to know if they are on the right track. If students want to move on past a particularly tricky level they can simply click "Finish" and continue on.
Have fun completing your Hour of Code with App Lab!
In this lesson, learners of all ages get an introductory experience with …
In this lesson, learners of all ages get an introductory experience with coding and computer science in a safe, supportive environment. This lesson has been designed for learners of all ages but does require reading. This activity requires sound as the tool was built to respond to music.
This activity will begin with a short review of "My Robotic Friends," …
This activity will begin with a short review of "My Robotic Friends," then will quickly move to a race against the clock, as students break into teams and work together to write a program one instruction at a time.
At some point we reach a physical limit of how fast we …
At some point we reach a physical limit of how fast we can send bits and if we want to send a large amount of information faster, we have to find a way to represent the same information with fewer bits - we must **compress** the data. In this lesson, students will use the Text Compression Widget to compress segments of English text by looking for patterns and substituting symbols for larger patterns of text.
In this lesson, students are introduced to the need for encryption and …
In this lesson, students are introduced to the need for encryption and simple techniques for breaking (or cracking) secret messages. Students try their own hand at cracking a message encoded with the classic Caesar cipher and also a Random Substitution Cipher. Students should become well-acquainted with idea that in an age of powerful computational tools, techniques of encryption will need to be more sophisticated. The most important aspect of this lesson is to understand how and why encryption plays a role in all of our lives every day on the Internet, and that making good encryption is not trivial. Students will get their feet wet with understanding the considerations that must go into making strong encryption in the face of powerful computational tools that can be used to crack it. The need for secrecy when sending bits over the Internet is important for anyone using the Internet.
Students will learn that events are a useful way to control when …
Students will learn that events are a useful way to control when an action happens, and can even be used to make make multiple things act in sync. In programming, you can use events to respond to a user controlling it (like pressing buttons or clicking the mouse). Events can make your program more interesting and interactive.
Students will be introduced to the 4 basic functions that computers perform …
Students will be introduced to the 4 basic functions that computers perform and begin to think about the advantages that computers have over humans in taking in input, processing data, and providing output. Students will be asked to identify how humans interface with computers using input and output devices and then invent a new input/output prototype of their choosing.
Students encounter people who are computer scientists, and they learn definitions of …
Students encounter people who are computer scientists, and they learn definitions of computer science. Students learn the difference between input and output devices, and they creatively invent a new device that combines input and output.
The course is a comprehensive introduction to the theory, algorithms and applications …
The course is a comprehensive introduction to the theory, algorithms and applications of integer optimization and is organized in four parts: formulations and relaxations, algebra and geometry of integer optimization, algorithms for integer optimization, and extensions of integer optimization.
No restrictions on your remixing, redistributing, or making derivative works. Give credit to the author, as required.
Your remixing, redistributing, or making derivatives works comes with some restrictions, including how it is shared.
Your redistributing comes with some restrictions. Do not remix or make derivative works.
Most restrictive license type. Prohibits most uses, sharing, and any changes.
Copyrighted materials, available under Fair Use and the TEACH Act for US-based educators, or other custom arrangements. Go to the resource provider to see their individual restrictions.