In-depth study of an active research topic in computer graphics. Topics change …
In-depth study of an active research topic in computer graphics. Topics change each term. Readings from the literature, student presentations, short assignments, and a programming project. Animation is a compelling and effective form of expression; it engages viewers and makes difficult concepts easier to grasp. Today's animation industry creates films, special effects, and games with stunning visual detail and quality. This graduate class will investigate the algorithms that make these animations possible: keyframing, inverse kinematics, physical simulation, optimization, optimal control, motion capture, and data-driven methods. Our study will also reveal the shortcomings of these sophisticated tools. The students will propose improvements and explore new methods for computer animation in semester-long research projects. The course should appeal to both students with general interest in computer graphics and students interested in new applications of machine learning, robotics, biomechanics, physics, applied mathematics and scientific computing.
In their reading from activity 1 of this unit, students should have …
In their reading from activity 1 of this unit, students should have discovered the term "logarithm." It is at this point that they begin their study of logarithms. Specifically, students examine the definition, history and relationship to exponents; they rewrite exponents as logarithms and vice versa, evaluating expressions, solving for a missing piece. Students then study the properties of logarithms (multiplication/addition, division/subtraction, exponents). They complete a set of practice problems to apply the skills they have learned (rewriting logarithms and exponents, evaluating expressions, solving/examining equations for a missing variable.) Then they complete a short quiz covering what they have studied thus far concerning logarithms (problems similar to the practice problems). They consider how what they have learned moves them closer to answering the unit's challenge question.
This video module presents an introduction to cryptography - the method of …
This video module presents an introduction to cryptography - the method of sending messages in such a way that only the intended recipients can understand them. In this very interactive lesson, students will build three different devices for cryptography and will learn how to encrypt and decrypt messages. There are no prerequisites for this lesson, and it has intentionally been designed in a way that can be adapted to many audiences. It is fully appropriate in a high school level math or computer science class where the teacher can use it to motivate probability/statistics or programming exercises. nteractive lesson, students will learn to build the cryptography devices and will learn how to send and ''crack'' secret messages.
This lesson demonstrates how a slight manipulation of a conditional statement can …
This lesson demonstrates how a slight manipulation of a conditional statement can allow for the creation of a new and powerful tool in constructing programs, a **while** loop. Students are introduced to a **while** loop by analyzing the flow chart of a conditional statement in which the "true" branch leads back to the original condition. Students design their own flowcharts to represent a real-world situation that could be represented as a **while** loop, and they learn how to recognize common looping structures, most notably infinite loops. Students then move to App Lab, creating a **while** loop that runs exactly some predetermined number of times. While learning about creating **while** loops, students will be introduced to many of the common mistakes early programmers make with **while** loops and will be asked to debug small programs. They finally progress to putting if statements inside a while loop to count the number of times an event occurs **while** repeating the same action. This activity will recall the need for counter variables and foreshadows their further use in the following lesson.
This lesson introduces arrays as a means of storing lists of information …
This lesson introduces arrays as a means of storing lists of information within a program. The class begins by highlighting the difficulties that arise when trying to store lists of information in a variable. Students then watch a short video introducing arrays and a subset of the operations that can be performed with them. Students will work in Code Studio for the remainder of the class as they practice using arrays in their programs. At the conclusion of the sequence, students build a simple app which can be used to store and cycle through a list of their favorite things. In the next lesson, students will continue working with a version of this app that can display images and not just text strings.
Students will extend the **My Favorite Things** app they built in the …
Students will extend the **My Favorite Things** app they built in the previous lesson so that it now manages and displays a collection of images and responds to key events. Students are introduced to the practice of refactoring code in order to keep programs consistent and remove redundancies when adding new functionality. As part of learning to use key events, students are shown that event handlers pass a parameter which contains additional information about the event. This lesson also serves as further practice at using arrays in programs.
In this lesson students are introduced to the **return** command and learn …
In this lesson students are introduced to the **return** command and learn to write their own functions that return values. Students first complete a simple unplugged activity based on the game **Go Fish** to introduce the concept of a return value. They will then complete a short sequence of exercises in Code Studio, which introduces preferred patterns for writing functions that return values. At the end of the sequence, students write and use functions that return values in a simple turtle driver app.
Students continue to practice working with arrays and are introduced to a …
Students continue to practice working with arrays and are introduced to a new user interface element, the canvas. The canvas includes commands for drawing simple geometric shapes (circles, rectangles, lines) and also triggers mouse and key events like any other user interface element. Over the course of the lesson, students combine these features to make an app that allows a user to draw an image while recording every dot drawn on the canvas in an array. By processing this array in different ways, the app will allow students to redraw their image in different styles, like random, spray paint, and sketching. Along the way, students use their knowledge of functions with return values to make code which is easy to manage and reuse.
Students continue learning about Event Driven programming in this lesson by learning …
Students continue learning about Event Driven programming in this lesson by learning how to add multiple "screens" to an app and adding code to switch between them. More techniques of debugging are presented, namely using `console.log`, a command that allows them to print out text which the user cannot see. It is useful for displaying messages to yourself to figure out what is happening as your program runs. Students will end the lesson by creating an improved version of the “chaser” game which has multiple screens.
In this lesson, students are introduced to the string data type as …
In this lesson, students are introduced to the string data type as a way of representing arbitrary sequences of ASCII characters. They will use strings to accept input from a user as they work on mastering two new UI elements, the text input and the text area. Students combine these skills to develop a simple Mad Libs® app.
_Mad Libs® is a trademark of the Penguin Group (USA) LLC., which does not sponsor, authorize or endorse this site._
This lesson contains a series of activities you can use to help …
This lesson contains a series of activities you can use to help students familiarize themselves with Explore Performance Task, how it is scored, and some example tasks provided by the College Board.
Students review the Submission Requirements and Scoring Guidelines for the Explore PT. Subsequently they review three example scored Explore PT submissions with commentary to better understand how the Submission Requirements and Scoring Guidelines are used together. In a wrap-up conversation they identify a piece of advice, a "gotcha", and a remaining question they have about the Explore PT.
Note: Most the exemplar task, scores, and commentary on scoring shared in this lesson come directly from the College Board. Code.org's commentary is noted where applicable.
In this kickoff to the Data Unit, students begin thinking about how …
In this kickoff to the Data Unit, students begin thinking about how data is collected and what can be learned from it. To begin the lesson, students will take a short online quiz that supposedly determines something interesting or funny about their personality. Afterwards they will brainstorm other sources of data in the world around them, leading to a discussion of how that data is collected. This discussion motivates the introduction of the Class Data Tracker project that will run through the second half of this unit. Students will take the survey for the first time and be shown what the results will look like. To close the class, students will make predictions of what they will find when all the data has been collected in a couple weeks.
In this lesson, students begin working with the data that they have …
In this lesson, students begin working with the data that they have been collecting since the first lesson of the chapter in the class "data tracker." They are introduced to the first step in analyzing data: cleaning the data. Students will follow a guide in Code Studio, which demonstrates the common techniques of filtering and sorting data to familiarize themselves with its contents. Then they will correct errors they find in the data by either hand-correcting invalid values or deleting them. Finally they will categorize any free-text columns that were collected to prepare them for analysis. This lesson introduces many new skills with spreadsheets and reveals the sometimes subjective nature of data analysis.
Content varies from year to year. An introduction to some of the …
Content varies from year to year. An introduction to some of the major topics of present day combinatorics, in particular enumeration, partially ordered sets, and generating functions. This course serves as an introduction to major topics of modern enumerative and algebraic combinatorics with emphasis on partition identities, young tableaux bijections, spanning trees in graphs, and random generation of combinatorial objects. There is some discussion of various applications and connections to other fields.
Students continue an examination of logarithms in the Research and Revise stage …
Students continue an examination of logarithms in the Research and Revise stage by studying two types of logarithms—common logarithms and natural logarithm. In this study, they take notes about the two special types of logarithms, why they are useful, and how to convert to these forms by using the change of base formula. Then students see how these types of logarithms can be applied to solve exponential equations. They compute a set of practice problems and apply the skills learned in class.
This course covers the design, construction, and testing of field robotic systems, …
This course covers the design, construction, and testing of field robotic systems, through team projects with each student responsible for a specific subsystem. Projects focus on electronics, instrumentation, and machine elements. Design for operation in uncertain conditions is a focus point, with ocean waves and marine structures as a central theme. Topics include basic statistics, linear systems, Fourier transforms, random processes, spectra, ethics in engineering practice, and extreme events with applications in design.
The Girls Who Build: Make Your Own Wearables workshop for high school …
The Girls Who Build: Make Your Own Wearables workshop for high school girls is an introduction to computer science, electrical and mechanical engineering through wearable technology. The workshop, developed by MIT Lincoln Laboratory, consists of two major hands-on projects in manufacturing and wearable electronics. These include 3D printing jewelry and laser cutting a purse, as well as programming LEDs to light up when walking. Participants learn the design process, 3D computer modeling, and machine shop tools, in addition to writing code and building a circuit.
This is the story of how Les Paul created the world's first …
This is the story of how Les Paul created the world's first solid-body electric guitar, countless other inventions that changed modern music, and one truly epic career in rock and roll. How to make a microphone? A broomstick, a cinderblock, a telephone, a radio. How to make an electric guitar? A record player's arm, a speaker, some tape. How to make a legendary inventor? A few tools, a lot of curiosity, and an endless faith in what is possible, this unforgettable biography will resonate with inventive readers young and old.
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.