Splash 2014
Course Catalog


Filter Catalog by Grade:

Jump to Categories
Visual and Performing Arts Languages and Literatures
[Deprecated] Computers and Programming [Deprecated] Engineering
Humanities Lunch
Mathematics Pop (and not-so-pop) Culture
[Deprecated] Science [Deprecated] Walk-in Activity
[Deprecated] Miscellaneous Social Studies


Visual and Performing Arts

[ Return to Category List ]

A8673: Listening to Bach
Difficulty: *
Teachers: Rob Speer

Let's listen to some Bach music. Not for some utilitarian purpose like learning about music history or music theory, studying an instrument, or "training your brain", whatever that means. No, let's listen to Bach for the sheer enjoyment of it, because lots of people agree that the music he composed was really, really good.

I'll tell you about what to listen for, the different styles of pieces Bach wrote, and how to find great performances to listen to. There will be a bit of history and music theory to provide context, but the main focus is the music.


Prerequisites
If you ever listen to classical music, you should be all set.

A8713: Rock Music Performance Technology Full!
Difficulty: *
Teachers: Chris Ward

Tips on how to use an accredited technical degree to improve your chances of becoming a touring rock star. Technical examples include work on NASA programs including characterization of imaging arrays on the MIT student project, REXIS.

A8644: Digital Art is Fun Full!
Difficulty: **
Teachers: Carolyn Lu

Curious about digital art? Want to try a drawing tablet?

We'll have an overview of the hardware and software available, their pros and cons, the pros and cons of digital vs. traditional art, and then you can have a try at making some actual art with a tablet and I'll give you some tips.


Prerequisites
Some experience with drawing/painting preferred.

A8630: Nail Art Full!
Difficulty: **
Teachers: Mary Spanjers

Want a break from Quantum Physics and Calculus? Need to learn something that will actually impress your friends back home? Then come learn the ancient art of nail art! (If the internet says it's ancient, it is.) From simple patterns to fictional characters to French Tips to pure artwork you're sure to leave with fabulous nails and the ability to do a cooler design than your local salon.


Prerequisites
Be able to put a coat of nail polish on. Please bring flip-flops. (It's easier to learn on your toenails, but if you really want to only do your fingernails this isn't required)

A8897: Extreme Origami
Difficulty: **

Ready to go beyond cranes and frogs? Come discover modular origami and construct a polyhedron of folded-paper awesomeness!
Appropriate for all levels, from beginners to origami ninjas.


Prerequisites
Opposable thumbs.

A8842: Impressionism
Difficulty: *
Teachers: Bryce Hwang

Who were the Impressionists? What's the difference between Manet and Monet? And why is Impressionism, a 19th-century movement, still so appealing in the 21st?

To find out, join us for an introduction to one of the most famous artistic movements in history!

A9030: Close Looking: Examining Art
Difficulty: **

Ever leave an art museum feeling like you didn't see anything cool? Fact: if you know more about how people have cranked out art through the centuries (yes, at multiple times in history that's a pretty accurate description), then you'll notice more about it. We'll do some drawing exercises and take a whirlwind tour of art over the last thousand years.

A8864: Physics and Ballet Full!
Difficulty: **
Teachers: Elise Bickford

Have you ever wanted to know how to pirouette or plié? Come learn the basics of ballet with a little bit of Newtonian mechanics thrown in for good measure.

Comfortable workout clothes recommended.

A8727: Printmaking! Full!
Difficulty: *

Learn about printmaking, and make your own stamp! There will be plenty of materials for you to test your handmade stamp on; make cards, books, or anything you want. If you have a design in mind for your stamp, please bring it with you!


Prerequisites
Creativity, and some patience

A8850: Crochet: Amigurumi! Full!
Difficulty: *
Teachers: Jasmine Lennert

Ever seen awesome crocheted dolls and wanted to make your own? Come learn the basics of 3-dimensional yarnwork! We'll go over single crochet, double crochet, magic rings, invisible decreases, and more to help you read all kinds of amigurumi patterns!

A9112: Learn bhangra!
Difficulty: *

Bhangra is a high energy South Asian folk dance, spreading across college campuses throughout the US! Come learn a few moves, get a great workout, listen to awesome music, and wow your friends on the dance floor! BRUUUUUAHHH!

A8535: DJs and Producers
Difficulty: *
Teachers: Jugraj Singh

Learn the art of mixing, producing, listening to music. We'll have all kinds of equipment to play with and get hands-on experience or just party with me for a class.


Prerequisites
Open to all kinds of music. Ears.

A8854: Performance Theory as envisioned by Schechner
Difficulty: **
Teachers: Jesus Leyva

The purpose of this course is to explore the many ideas that go into defining what performance is. Is it acting? Is it play? Students will be presented with theory and examples (e.g, videos and demonstrations). There are no requirements other than curiosity. There are no wrong answers!

A8566: How to Make Exciting Cards
Difficulty: *
Teachers: Maria Ruiz

Want to spice up your birthday/greeting/anniversary cards? Learn to make 2 basic moving cards! Whether you are a cardmaking master or are limited to stick figures on white paper, you are welcome.

A8896: So You Wanna Be a Hipster?
Difficulty: *
Teachers: Elyse Jackson

Come learn what it takes to be a hipster - or at least learn what hipsters listen to! We will mainly focus on learning Indie music (folk, rock, electronica and pop), as well as its Eurpean origins. This class will also help aspiring songwriters. No previous musical experience is necessary!

A9135: DSLR Photography for Dummies
Difficulty: **

Want more control over your photographs

In this class, we introduce the Digital Single Reflex Lens (DSLR) Camera and how it opens up a myriad of possibilities in photography.

We will introduce the notion the "Exposure Triangle" (i.e. ISO, shutter speed, and aperture), and how they affect the quality of the captured image. We will also explain how a DSLR camera works. Last but not least, practice makes perfect, if time permits, let us take a tour around the beautiful campus to capture remarkable photos with your newly acquired skills!

A8723: Write a Parody Song
Difficulty: *
Teachers: Ethan Goldstein

Be Weird Al for a day!

At the beginning of this class, we'll choose a major song from the last few years, and then spend the next two hours parodying it to turn it into something new, wonderful, and hilarious. In the process, we'll learn about how lyrics work, including rhyming, meter, and scansion. Anyone with an interest in lyrics or pop music should show up!

A8703: Intro to Polyrhythms/Polyrhythms and Improv
Difficulty: **
Teachers: Samuel Van Cise

In this class we will first introduce and practice various polyrhythms (more than one rhythm at the same time) and then seek to use them in improv situations. We will improv in a variety of styles, basically whatever we're feeling as a group. Bring your instruments, of all shapes and sizes!

A8643: How to Learn How to Draw
Difficulty: **
Teachers: Carolyn Lu

Art can be hard. Art classes can be stupid. Let's break down what it really takes to learn how to draw and how to do it on your own.

We'll go over some of the theory behind learning art (why your middle school art teacher may have told you to draw something upside down or with a grid and why that only works up to a point) and then we'll go over online resources and helpful exercises.

A8943: The Sonatas of Beethoven
Difficulty: **
Teachers: Ray Hua Wu

This class discusses the variety and evolution of Beethoven's musical style through the thirty-two sonatas that he wrote.


Prerequisites
An understanding of the ideas of classical music: Understand an outline of the history of European music from 1700-1900. Understand the common sonata forms.

A8958: Beginning Tap Dance
Difficulty: *
Teachers: Amelia Bryan

This course provides an introduction to tap dance, no prior dance experience is necessary. Come in clothes you can move in and ready to have fun! No tap shoes required.

A8924: Round Singing: Beyond "Row, Row, Row, your Boat" Full!
Difficulty: **
Teachers: Ruth Byers

Rounds are songs where multiple people or groups sing the same thing at different times. "Row, Row, Row, your Boat" is an example-- you can sing it in four parts, each starting one measure after the last.

Round singing is a easy way to create beautiful music, and is also a good first step to learning to sing harmonies. We will learn and practice singing some easy rounds and show you where to look to learn more.


Prerequisites
You should be able to read music, at least well enough to follow along on the sheet music while singing. Fabulous sight-singing skills not necessary.

A8658: knitting cables Full!
Difficulty: **

Want to spice up your knitting?

Cables are a beautiful way to liven up sweaters, while creating extra bulk;which leads to warmer sweaters.

In this class, you'll make a swatch that will have at least three types of cables on it.


Prerequisites
You know how to knit and purl. Please bring worsted yarn and appropriate needles (size 7 or 8 works) please start a swatch: 30 stiches wide: with 3 rows of garter stitch; to bring to class. Don't worry; if you haven't prepared a swatch or brought supplies; we have extra to lend out.

A8657: introduction to knitting
Difficulty: *

ever wanted to knit a hat, scarf, or sweater?

tired of things in colors you don't like that don't fit?

well: you can knit it yourself!

by the end of this class you will have learned to knit and purl, the building blocks for all knitted garments.

This class is expected to run over one hour but under two hours, so try not to schedule another class after this one.


Prerequisites
a desire to learn knitting! patience for being frustrated at the beginning.

A8642: How to Draw People
Difficulty: **
Teachers: Carolyn Lu

Want to stalker-sketch people on trains with increased accuracy? Been meaning to make that comic but can only draw stick figures?

In How to Draw People you will learn how to draw people. We'll go through the basics of drawing faces and figures and then get down to anatomy and foreshortening and tricks for constructing people on paper quickly and accurately.


Prerequisites
If you've doodled at all you're probably good. Otherwise take "How to Learn How to Draw."

A8690: Cead Mile Failte: An Introduction to Irish Dance
Difficulty: *
Teachers: Kathryn Buggs

Everybody's Irish on St. Patrick's Day (and during SPLASH)! Come learn a little bit about the origins and evolution of Irish dance, a few handy Gaelic words, the difference between a jig and a reel, and more! We will learn a beginner jig, a few ceili figures, and perhaps a bit of hornpipe or treble reel.

A8949: Room for Improv'ment
Difficulty: *
Teachers: Tal Scully

Ever wonder how actors can make up a scene on the spot without any planning? Come play lots of improv and theater games and learn how to expand your abilities as an actor and a person!


Prerequisites
Everyone is welcome - from experienced professional actors to people who have never set foot on a stage in their life!

A8659: Knitting: Colorwork! Full!
Difficulty: **

Want to make some beautiful ski-sweaters?
or mittens?

In this class, you will learn to knit with two colors at one time, using the stranded knitting technique


examples:
http://audreysteashop.co.uk/wp-content/uploads/2013/10/Stranded-Knits-2.jpg
http://www.curiousonhudson.com/uploads/StrandedKnittingbanner.jpg


Prerequisites
Be able to knit (no purling necessary!) Bring worsted weight yarn of at least two colors (small partial balls welcome) and appropriate needles (size 7 or 8 works) or, fingering yarn and appropriate needles. Don't worry if you don't have supplies; there will be extras in class to lend out.

A8524: Chain Mail Armor
Difficulty: *
Teachers: Miranda Gavrin

Learn how to weave your own aluminium armor!


Prerequisites
None, we'll start with the basics.

A8681: Ballroom Dancing: Samba
Difficulty: **
Teachers: Francesca Majluf

Ballroom samba is a lively partner dance involving the mastery of your innate body rhythm and its connection to colorful music. Come and bring alive your long forgotten African roots through the acquisition of the basics of this beautiful dance.
Workout pants and close-toed shoes recommended.

A8606: Performers' Practice Circle
Difficulty: *
Teachers: Abigail Walzer

Tell a story. Sing a song. Give a soliloquy. Recite a poem.

Perform for practice, in front of other performers. Your voice is your instrument, so take this opportunity to use it.

There are two rules:
1. You get six minutes.
2. Everyone must perform at least once.

Other than that, the sky's the limit. We'll offer up critiques if we have time and if you ask for it, and there's no shame in just wanting to show us what you can do without any critique at all. If you've never performed before, come anyway and try it for your first time in a low-pressure setting!

A8775: Sewing Stuffed Animals Full!
Difficulty: **
Teachers: Daniela Ganelin

Make your own stuffed animal with a design you create. Purple giraffe with wings as a neck pillow? Sure! Baked goods provided.

A8944: Graphic Design 101
Difficulty: **
Teachers: Jessica Wang

Interested in design? This workshop will give an introduction to the basics of design and how to think like a designer. You'll also learn useful design skills and tips and get to try your hand at making a graphic of your own! No prior experience necessary - just an interest in digital design. :)

A8901: Cross-Step Waltz
Difficulty: **

Think innovation in waltzing ended in the 1800s? Think again! Come learn the basics of cross-step waltzing, a dance form that might even be younger than you are! No experience or partner required, please wear shoes and clothing you can dance in!

A9018: Random Debates
Difficulty: ***
Teachers: Filsan Hussein

You and your group will be given a random subject to debate about ( topics chosen by another group) and you will be given no more than 3 minutes to speak . In these three minutes you will not be able to use the words " Umm ,and uh " you are also not allowed to take more than a 3 second break between your sentences .


Languages and Literatures

[ Return to Category List ]

B8600: Languages of Middle Earth
Difficulty: *
Teachers: Ryker Reed

Love Lord of the Rings? Ever wondered where all the names in Middle Earth come from? Come find out more about the complex linguistic systems underlying Tolkien’s Lord of the Rings series. For instance, did you know that Tolkien was a linguist and actually invented an entire Elvish language before even writing the Lord of the Rings books? Learn about some of the real world languages that inspired and influenced Tolkien’s invented languages. And find out more about the history of Middle Earth and how its languages came to be what they are now.


Prerequisites
None, if you've taken this class last year, it will be the same material.

B8624: Basics of Essay Writing Full!
Difficulty: *
Teachers: Cynthia Jackson

Over the course of an hour, learn the basics of essay writing through in-class discussion, a PowerPoint lecture, games, and individual work. It will be fun and enjoyable!

B8870: Fake Girlfriends, Infinite Kisses, etc: The Thoughts of a Roman Poet
Difficulty: **

Check out one of Roman's craziest poets-- from mourning the death of a sparrow to love poetry dedicated to his fake (married) girlfriend, Catullus was frankly a little nuts. We'll look at his life (not a lot -- he died when he was 30), his girlfriend, and his poetry. A little bit of history and a little bit of Latin! Plus, your teachers may or may not be wearing togas and may or may not throw candy at you.

This class will cover the basics of Catullus's life and literature, and dissect a (simplified) version of a Catullus poem in Latin.


Prerequisites
Any previous knowledge of Latin could be helpful, but is by no means required.

B8626: Personal Ingenuity: An Exploration through Creative Writing
Difficulty: **
Teachers: Katie Lawrence

Love reading fanfiction, but struggle when it comes to writing your own? Constantly
hitting writer's block, and waiting to be inspired? Come explore what you need to keep
in mind when creating compelling fiction, and work with your peers on some cool writing
exercises. We will be taking a general look into how you can get readers hooked onto your constructed universes, and how to populate said universes with well-developed characters.

B8721: Intro to Morphology: Linguistics for Sherlock Full!
Difficulty: ***
Teachers: Ray Lardie

Morphology is the study of morphemes-- the smallest unit of language that carries meaning. All languages are a puzzle, and once you learn the basics, you can dismantle a language into its parts and put it back together again. Come play Sherlock and puzzle out how any language works--even if you've never studied it before.

B8950: How to Create a Language
Difficulty: **
Teachers: Kelvin Jackson

Have you even read Tolkien's books, and wondered what it would be like to create languages for a fantasy world, as he did? Do you wonder what went into the design of Dothraki, or Klingon? Well, now you can find out!

We will spend the first part of this class going over the basics of what you need to know to design a language $$---$$ some phonology, morphology, and syntax, as well as a brief overview of natural languages that are worth emulating. Then, we will use the second part of the class to create a conlang sketch of our own. You will go home with a taste of what conlanging is about, and the beginnings of a brand-new language!

B8805: How to Be Estonian
Difficulty: *
Teachers: Eva-Lotta Kasper

Would you like to learn a language that is almost, but not quite, entirely unlike English? Or find out more about the quirky little country that is home to its whopping 1.1 million speakers? Or perhaps even meet one from this rare breed?

If “none of the above”, there will also be Estonian chocolate.

B8991: Greek Mythology 101
Difficulty: *
Teachers: Botong Ma

Learn about the Greek myths and gods, and their associated mythology. We'll talk about the big things, like Kronos and him eating all the children before his wife got him, Hercules doing his Twelve Tasks, etc. We'll also talk about other things. Like the things Zeus did in his spare time, and that time Demeter accidentally ate someone's shoulder, or why Sisyphus was sentenced to rolling that stone up that hill for all eternity. Also learn about some of the literature these myths inspired. Basically, you'll get an introduction to the myths and he literature they inspired.

B8601: Learn Elvish!
Difficulty: *
Teachers: Ryker Reed

Ever wanted to speak Elvish? Write Dwarvish runes? Now is your chance! Come take this interactive class and learn the basics of spoken and written Elvish! This class will focus on the Elvish language Sindarin, and we will also cover a bit of the other languages, such as the Elvish language Quenya and the Dwarvish language. We will practice speaking Elvish and also how to write the Elvish script and Dwarvish runes. No prior knowledge necessary, just enthusiasm!


Prerequisites
None, but if you took this class last year, it will be the same material.

B8714: Poetry Recitation - How to make this stuff sound good
Difficulty: *
Teachers: Amelia Trainer

Poetry is fun
When it's recited quite well
It makes people smile

Not all are haikus,
But do come appreciate
And maybe recite

These wonderful creations
That school might teach you to hate
But please don't hate them.

B8808: Introduction to Poetry
Difficulty: *
Teachers: Emily Tang

An introduction to poetry through the ages with examples of poems and copious amounts of poetry reading. There will also be tea and refreshments. Come prepared to explore and discover!

B8670: Hungarian for dummies
Difficulty: *
Teachers: Gergely Odor

Are you interested in being able to speak a language that is unlike any other (maybe Finnish, but not really)? Come to Hungarian for dummies and learn about one of the most complicated grammars and to pronounce strange new phonemes from a native Hungarian MIT student. Besides the basics of language we are also going to play games and learn about Hungarian culture.

B8637: Dramatic Reading: The Importance of Being Earnest
Difficulty: **

"I do not approve of anything that tampers with natural ignorance. Ignorance is like a delicate exotic fruit; touch it and the bloom is gone."

Join us for a seriously whimsical reading of Oscar Wilde's classic play. We will take turns portraying different characters, with occasional intervals for tea and muffins. We'll probably be finished after two and a half hours.


Prerequisites
It will be helpful to have read the play beforehand.

B8765: The Naughty Bit
Difficulty: **
Teachers: Miles Morgan

Have you ever wondered why Shakespeare has endured so long after his time? Sure, his characters are layered and complex, and his stories are beautifully written, compelling evaluations of the human condition. But the real reason we still read the Bard are his naughty jokes. Soliloquies aside, Shakespeare's magic comes in the form of some crude humor. Come for a lesson in naughty wordplay and learn how it functions for the greater good of some of the world's most canonical dramas.

B8763: How to Learn Languages (Without Actually Learning Languages) Full!
Difficulty: **
Teachers: Peter Gao

Yes, you may hate taking Spanish in school, but this class will show you how similar languages from all around the world really are. We'll use language puzzles from the North American Computational Linguistics Olympiad to begin exploring these commonalities, investigating the ways words and sentences are structured.

B8927: Introductory Odawa
Difficulty: **

Odawa or Nishnaabemwin is a dialect of one of the most widely spoken Native American languages today. We'll talk about the basic grammar and then look at a traditional story. Come learn about this fascinating language!

B8972: How to Read Hebrew Full!
Difficulty: *
Teachers: Sherri Green

Learn the Hebrew letters and all their sounds! For complete beginners.

B8745: The World's Most Famous Useless Language (AKA Esperanto 101)
Difficulty: *

Esperanto is an auxiliary language invented purely to be easy (also for world peace and stuff).

Due to the language's ease and simple grammar, students will be able to hold basic conversations and express themselves using the world's most famous made-up language after minimal practice and a two hour class.


Prerequisites
There are no prerequisites for this class, however having previously studied a language would come in handy.

B8604: Quirky Linguistics
Difficulty: *
Teachers: Ryker Reed

Like linguistics or just enjoy thinking about language? Ever noticed how weird language can be? Come learn about some of the quirkier aspects of language. We'll discuss things ranging from infixation (putting words inside other words) to semantic implication (things we say without actually saying them), and semantic satiation (that thing that happens when you say a word too many times and it stops meaning anything). Come enjoy the strangeness of language!

B9069: Arthurian Legend Full!
Difficulty: **
Teachers: Cathleen Nalezyty

Have an interest in stories about King Arthur? Confused about all the different versions of the story that are floating about?

We'll spend some time in class talking about different aspects of the King Arthur legend. No need to have read any particular work -- though some knowledge of the legend in general would be helpful. We'll also be reading some (short) passages in class that we'll talk about.

B8503: Poetry Workshop
Difficulty: **
Teachers: Nathaniel Mathews

Come chill and write poetry. You don't need to have a lot of poetry experience, but do expect to write poetry, and share some of what you've written with the rest of us. Writing and listening are both vital to helping us all grow as poets. All styles are welcome!

B8822: "Superman/woman" and Science Fiction/Fantasy
Difficulty: **
Teachers: Josh Shaine

Science Fiction and Fantasy have many characters who stick out compared to others because they have more magic, different powers, unique abilities.

We will look at how these characters are treated by the worlds in which they are set and reflect on what, if anything, this says about the society in which we live.

B8578: Making it in Moscow: A Splash! Course in Introductory Russian
Difficulty: **
Teachers: Marcella Lusardi

Take a journey east to learn the mysterious language of the czars, the Soviets, and the modern-day natives of the largest country in the world—Russia! An introductory course in conversational Russian. No prior knowledge of the Russian language, Cyrillic alphabet, or Russian culture/history needed.

B8558: Introduction to Phonetics: Chinese vs English
Difficulty: *
Teachers: Steven Keyes

Come be entertained by my terrible Chinese! Phonetics is the study of sounds in speech and how people produce them. This class will introduce you to this branch of linguistics and be informative for learners and native speakers of Chinese and English alike!

B8676: Introduction to Creative Writing
Difficulty: *
Teachers: Alexander Cronis

We're going to be working with a style of writing which doesn't use an outline and applying it to most mediums of creative writing (graphic novels, short stories, novels, etc). We'll talk about great artists who use/used this process (Faulkner, Flannery O'Connor, the creative team behind the Katamari games and others) listen to music, do some free writing and generally talk about how to write.

B8963: Korean that your mother probably doesn't want you to learn
Difficulty: **
Teachers: Harlin Lee

Come learn Korean! But not the things you will learn in textbooks. We'll talk about Korean spoken in the streets, in the text messages (or kakao talk), swear words, games, how to interpret the oh so many 'ㅋ's on your friend's Facebook status. If you have requests (i.e. what does my crush actually mean to say when they say [insert words here]?) please send them my way :)

B8568: A Brief History of the English Language
Difficulty: **
Teachers: Megan Belzner

Did you know that differences between the name of an animal versus the name of its meat (cow, beef) are the result of the Norman conquest of 11th century England? Or that the pronunciation of some vowels changed dramatically between the 14th and 18th centuries, in an event known as the Great Vowel Shift? Learn about these and many other fascinating events in the history of English, and get a glimpse into the ways all languages evolve with time.

B8639: Introduction to Arabic Full!
Difficulty: *
Teachers: Saheela Ibraheem

Have you never wondered how to say "Hasta la vista, baby" in Arabic? Learn how in this class! Note: may also learn the alphabet and how to spell your own name.

B9037: The Elian Script
Difficulty: **
Teachers: Ray Hua Wu

Learn a cool way to represent letters that turns English words into visually appealing text!

B8537: Spectrograms: What Does Sound "Look" Like?
Difficulty: **
Teachers: Chelsea Voss

What is sound? How do our ears hear the information in sound and send it to our brain to be processed into language? And how might we teach a computer to do the same thing?

We'll investigate all of this by diving into phonology and phonetics, the study of the audible components of language.

In the first half, we'll talk about all of the different sounds that human languages can use, in English and beyond.

In the second half, we'll look at patterns in sounds by converting them into pictures called "spectrograms". With this tool at our disposal, we can actually think about how both computer systems and human brains might tackle the problem of speech recognition.

Come learn what you never knew you never knew about sounds!


Prerequisites
None.

B8987: Wallahi Wallahi you need to know Somali
Difficulty: **
Teachers: Filsan Hussein

If you want to know the definition of Wallahi, come join my class! I will teach you the basic reasons why us Somalis enjoy saying the word wallahi, and how useful it is to know basic Somali. Some of you guys may have seen Captain Phillips (starring Tom Hanks) and the infamous Somali pirates. We will go over some of the words and phrases used in the movie, so when you watch it with other family and friends you can point out what they said--no subtitles required! We will also go over the similarities found in the Somali language and many others.


[Deprecated] Computers and Programming

[ Return to Category List ]

C9011: Learn to Use Regular Expressions Full!
Difficulty: **
Teachers: Jennifer Melot

Regular expressions are a tool common to many programming languages and text editors, allowing you to search for complex patterns in text. Come learn about all the surprisingly complex (or otherwise time-consuming) problems they can solve for you, as well as their limitations.

C8707: Web Application Development (Part 1) Full!
Difficulty: ***

Come and experience the wonderful world of web apps! What's a web app you ask? It's a fancy website that pretends to be a desktop application. Sound weird? It's actually awesome and we'd love to tell you about them. In this section, we’ll try to run through everything from servers and databases to certificates and web sockets. Seem like a lot? Indeed it is, but that’s the goal. We won't cover everything in a ton of detail, but we'll go over the core concepts of Amazon EC2, MySQL, PHP, WebSockets and apache2. At the end of the class, you'll leave with a new and shiny Amazon EC2 instance running the fruits of your labor, ready to use when you get home.


Prerequisites
An Amazon Account, Experience in a scripting language (i.e Python) and a basic understanding of SSH and the command line (Linux) would be ideal, but is not necessary.

C8884: Inventing Numbers
Difficulty: **
Teachers: J Adrian Zimmer

I like to think of numbers as piles of stones. As a mathematician and computer scientist I like to think of my work as inventing languages to accomplish abstract tasks. Taking the first steps in creating a number system from a pile of stones will give us chance to talk about this. Examples will be in Java because that is what is taught in high school.


Prerequisites
Be in or have taken a Java AP class!!

C8985: Digital communications Full!
Difficulty: **
Teachers: Olivia Brode-Roger

How do computers talk together? How do they do it efficiently? How do you do it when it becomes really hard? How about when you're talking to something that's out of our Solar System?

We will analyse how we can encode and decode binary information, transmit it over a channel, and detect and correct for errors.


Prerequisites
Basic understanding of binary, specifically be comfortable with: 0+0=0 1+0=0+1=1 1+1=0

C8747: Introduction to Mathematica
Difficulty: ***
Teachers: John Bell

In this class, we will learn the basics of Wolfram Mathematica, with a focus on visualization and modeling of both pure and applied math topics. We will cover topics ranging from probability theory applications (e.g. weather forecast accuracy) to crystal structure modeling to calculus applications. The class will conclude with a surprise application challenge!

Mathematica is one of the major programming environments used for modeling in science, engineering, and pure mathematics. (For anyone who has used Wolfram|Alpha, Mathematica is the workhorse of the Wolfram system.)

Regardless of programming experience, this class is a great way for students interested in science and engineering to learn to use professional computation software, from an exploratory application-based perspective.


Prerequisites
Comfortable knowledge of precalculus topics (knowledge of calculus is helpful, but not required) Programming experience is NOT required, but would similarly be helpful.

C8793: Javascript Game Design Full!
Difficulty: ***
Teachers: Zachary Neely

In this class, you'll build an in-browser, single-player game of your own design. There's no art experience necessary, this class is focused on the programming aspect. Starting from a template we provide, groups of 2 will create their own unique game using free and open source art and resources. This is a big topic, so the class will be very fast-paced - be prepared to code fast, think faster, and be creative.


Prerequisites
Some Javascript experience. You should be able to tell what this code does: a = function(b){ console.log(b); } c = a; c("potato"); A great way to prepare is to do the codecademy course on Javascript, which can be found here: http://goo.gl/p6EbVw It would also be helpful to have an idea before you come, keeping in mind that games must be simple to fit in the time constraints.

C8540: Distributed Computing for Dummies
Difficulty: **
Teachers: Felix Sun

If I give you a list of ten billion street addresses, and asked you to find the ones closest to your house, how would you do it?

Distributed computing is using a network of many computers to solve very large problems. It is essential to many things you use every day, including Google searches and GPS driving directions. We will talk about how to solve computing problems using many computers at once. The best part is, no programming experience is required.


Prerequisites
None. No programming experience is required. If you have programmed before, you will still get a lot from this class, but we aim to talk in programming-agnostic terms.

C8990: Inception! or, How to Build a Computer in Minecraft Full!
Difficulty: *

Wanna make a computer inside a computer? Wanna build a calculator out of dirt, sticks, and magic red powder? Come learn about low-level computer
architecture using Minecraft!

Things you should know: We will explore the basics of computation in
Minecraft, starting with logic gates and proceeding to building complex
devices such as adding machines and memory storage modules. Depending on
time and experience, some topics may include: Turing machines, alternative
memory, random number generators, clocks. No Minecraft experience is
required, but if you have a computer with the game on it, bring it so you
can take what you make home. Those with experience building redstone
devices are welcome as well; we’ll find a challenge for you!

Specifically, we will be studying a system analogous to the multi-input NOR
gates used in early computers e.g. the Apollo AGC.

C8752: How Websites Work, Home Networks, and Run Your Own Servers: Networking 101 in Three Parts
Difficulty: ***
Teachers: Joseph Lodin

You may not realize it, but 99% of things you do on your computer require an Internet connection. Computer networking is an extremely advanced field with countless different uses, protocols, and experimental research making things faster and more reliable. To save time, I'm gonna summarize basic networking with three short topics:

-How Websites Work: When you click a link, what happens in the seconds between that click and when the next page is displayed on your screen? It's not as simple as it sounds, and often it involves a hundred (or even thousand)-mile journey happening in the blink of an eye.

-Home Networks: So you probably know about the big Internet, the World Wide Web, right? Did you know that in most of your homes/apartments/wherever, you have a mini "internet" that functions all on its own? Let's look into the setup of a normal home network, and I'll even explain how to host your very own LAN party!

-Run Your Own Server: Websites, games, databases, etc. All are hosted on servers. Maybe you're interested in hosting a Minecraft server for your friends, or a database server for a cool app you're working on. Well, turns out you've gotta know some fancy networking so you and your friends can actually connect to these from anywhere. Let's get into all that!


Prerequisites
Anybody who uses a computer can come to this class and learn something! We really won't go into too much technical detail, so if you already run your own game server or make/host your own websites, you probably won't see much new information.

C8708: Web Application Development (Part 2)
Difficulty: ***

Come and experience even more in the wonderful world of web apps! What's a web app you ask? It's a fancy website that pretends to be a desktop application. Sound weird? It's actually awesome and we'd love to tell you about them. In this section, we'll focus on the frontend. We'll talk about CSS3, jQuery, Angular JS and some of the super cool features in HTML5 that make websites act like apps. We’ll go over how to make a user interface that stands out while fitting in and looks good doing it. If you didn't take part one of the class, it's still fine to come in, though you won't be able to see your project online. At the end, you'll leave with a working concept user interface (hosted on Amazon EC2 if you were in part one).


Prerequisites
Some experience with HTML will be helpful. A basic understanding of Javascript would also be useful.

C9102: Intro Programming in Python
Difficulty: **
Teachers: Jordan Moldow

print “Ever wanted to learn how to program?"
if your_answer == “yes”:
print “Awesome! Take this class, and learn how to program in Python"


# This is a class for students with no prior programming experience. We will cover the fundamentals of programming, using the popular language of Python. The class will be a mix of lecture, where you will learn the introductory aspect of the language, and hands-on programming. We’ll have lots of fun writing and running cool programs, and you’ll learn a lifelong skill in the process.

# No prior programming experience required. Students who have never programmed before and are interested in learning are encouraged to register.

C9026: How Do Computers Add?
Difficulty: ***
Teachers: Marcus Boorstin

How do computers add? What happens behind the scenes when your program runs the line "int z = x + y;"? This may seem simple for you, but it's NOT for your computer. We'll discuss the nitty-gritty of how hardware adders work, starting with transistors and working our way up to the complicated hardware and algorithms modern processors use.

C8755: Internet in the Air! How Wi-Fi Actually Works (and why it often doesn't)
Difficulty: **
Teachers: Joseph Lodin

Wi-fi? More like WHY-fi, amirite???

Ever wonder exactly how your computer is actually able to get out to the Internet without a wire plugged in? Or, more likely, ever get ridiculously frustrated when you can't seem to stay connected no matter what laptop/phone you're using, how close you are to the wireless router, or how many times you restart the dang thing?

In this class, we'll delve right down into the nitty-gritty of just how your devices can communicate wirelessly, and talk a lot about why it's pretty much miraculous that it ever works at all!


Prerequisites
Experience with computers is good - we're gonna be going really fast through a lot of different concepts (some physics, some math, all over the place) so get ready for a whirlwind of info.

C8783: How does your calculator find the answer? - Numerical Analysis
Difficulty: **
Teachers: Victor Chen, brice lee

A computer does not automatically find answers for us. We have to guide computers along the way.

In this course, concepts of numerical methods, which are the methods that a computer uses to calculate roots of functions, will be introduced such as the midpoint method and the Newtonian method. Furthermore, application of these methods using Matlab will be taught.


Prerequisites
The course requires basic algebra and calculus. (as long as you know that first derivative is slope, it will be good enough)

C8812: A Pyret's Life for Me: An Introduction to Computer Science through Functional Programming
Difficulty: **
Teachers: Zachary Zagorski

Hoist the anchor and lash the jib-boom as we venture into the world of functional programming with the Pyret language! We'll start pretty much from scratch and talk about functions, recursion (and recursive data), and much, much more!
Laptops are welcome for following along but are by no means necessary.


Prerequisites
None. Some programming experience might be slightly useful. Some idea of what recursion is might be more useful.

C8541: Keeping Your Code Neat, Reliable, and Flexible
Difficulty: **
Teachers: James Fleming

Once you've learned to program, one of the first difficulties you might encounter is developing large programs and dealing with the dreaded "spaghetti code". Programs with functions that comprise hundreds of lines of code, where you need to review parts multiple times just to figure out what you were working on.

Or, you might wonder if there is a neater, more intuitive way to write parts of your program -- to make it easy to understand and to develop more complex programs quickly.

Maybe you want your code to be able to do certain things, but you aren't sure how to do so without re-writing a lot of your base code.

Do you know how to properly test your code? Have you ever made a change and unintentionally broken your program?

In this class, I'll go over the basics of keeping your code neat, re-usable, and flexible. Topics include code formatting and documentation (boring, right?), helper methods, code testing, and programming patterns used in professional software engineering environments -- tools that are used in all kinds of circumstances from individual programmers to large software development teams.

My goal is to be able to instruct new and experienced programmers alike. The techniques I plan to teach can be done in any object-oriented language.


Prerequisites
Some knowledge of programming, preferably object-oriented programming.

C9116: Cyberespionage
Difficulty: **
Teachers: Benjamin Tidor

What happens when governments get into the business of computer hacking? Back in the good old days, viruses were written by criminals out to steal your money. Nowadays, we can do more interesting things—like sabotaging a nuclear enrichment facility, for example, or spying on an entire country’s private email messages. In this class, you’ll hear about recent break-ins on the international stage while learning a bit about the everyday systems that keep us safe and secure on the Internet.


Prerequisites
Know how to use a computer.

C9058: Learn to program by writing the AI for battling tank robots
Difficulty: **
Teachers: Jacob Cole

We'll teach you to program in the Java language through the awesome game robocode, in which you program virtual battling tank robots and pit them against your friends! Robocode is fun for everyone, from beginning to advanced programmers, and free so you can continue after the class. Robocode was a big part of what launched my own passion for computer science!
Site: http://robowiki.net
Jacob's Tutorials: http://robocode.jacobcole.net/

C8843: How to Hack Solitaire
Difficulty: ***
Teachers: Damon Doucet

Want to learn how to hack video games? Technically games (just like programs) are files on your hard drive. What's to stop us from modifying them just like you edit your Word documents?


Prerequisites
Programming experience in any of Java, C++, C#, Python, etc. Preferably a year at least

C8983: Become a Bash Wizard
Difficulty: **
Teachers: Diana Hernandez

Learn to navigate your computer more quickly and effectively! Look as pro as the matrix while you do it.


Prerequisites
None

C8794: Let's Git Started - A Brief Introduction to Version Control
Difficulty: **
Teachers: Zachary Zagorski

Do you program anything? Have you ever tried to do any programming projects with a team and had trouble coordinating? Do you think you're an expert on version control software?
If you answered 'yes' to any of those, you should take this course! We'll talk about what git is (and isn't), how you can use it to manage your code for both personal and large group projects, and some of the fancy-schmancy things you can do with it.
Oh, and you'll be able to say things like "Sure, just interactively rebase the cherry-picked commits onto your master branch before you push" and understand what they mean!


Prerequisites
You should understand what a command line (a.k.a. shell or terminal) is.

C8497: Let's Talk About Servers And Networking
Difficulty: ***
Teachers: William Little

If you are reading this then you are on the internet. You have requested information from a server which has now sent that information to your computer that is displaying the information in the form of this very description! This class will teach you how this is done, as well as some of the basics in what servers are, how they work, how the internet works, and above all: how to host game servers and other services of your own! Minecraft, Team Fortress 2, Web Servers, database servers (MySQL), email servers, and more!

There will be a great deal of resources being shown in this class so that you can do these things on your own to get started in the world of servers and networking. I will talk about (and tell you how to get) VMware's ESXi operating system, computer-based firewall software such as Slackwall, Linux operating systems popularly used in a server environment such as Solaris, CentOS, Oracle Linux, etc. and more! We will even get a chance to work with a rack server and some networking equipment. Expect a wide range of topics from why some game servers have lag while others don't, all the way up to what it takes to make it so your home hosted website can be accessed by the outside world.


Prerequisites
Basic knowledge of computer hardware and software

C9090: Word Graphs
Difficulty: **
Teachers: Lawrence Wu

Computers generally store text as strings of characters, but we'd like to do a bit more with these characters. In this class, we will think of each character that we add as changing the state of our text. So if we want to find some key words in our text, we could just let our state be how close we are to finding a word. We will also interpret human speech as a series of transitions between states of conversation, and show how a computer could mimic a human's preferred states.

C8831: Monads to Melody
Difficulty: ***

The first part of this class will provide an introduction to functional programming with Clojure, a Lisp that runs on the JVM.

In the second part of this class, we will be using Overtone, a music synthesis and sampling library, to code music.

We will provide music-related snacks!


Prerequisites
Programming experience essential. Some familiarity with functional programming recommended. Feel free to start hacking with Clojure before coming to the class. If possible, please install Leiningen (http://leiningen.org/) before coming to class.

C9033: Programs = Proofs
Difficulty: ****
Teachers: Daniel Ziegler

Some time ago, some mathematicians named Curry and Howard noticed a strange correspondence between the rules of type theory (which explain how to write correctly typed programs) and the rules of logic (which explain how to write valid proofs). Now, mathematicians have proved more and more facts as programs that can be checked by computers, including the four-color theorem. Come learn how types can actually be logical propositions, and programs can actually be proofs.


Prerequisites
You should know about logical formulas (with ands, ors, foralls, etc) and have an idea of how type systems work as well. If you know a functional programming language such as Haskell or ML, that would make this class much easier.

C9043: Learning Programming Through Elm
Difficulty: **

Let's say you're in math class, and you're supposed to be solving an equation, but rather than find out how old Bill is who will be twice as old as Mary in seven years you'd prefer to think about how in seven years you'll have taken over the entire world and surely equations won't get you any closer to world domination...

Enter computer programming, also known as writing equations for world domination.

This course will be a fast-paced introduction to programming. We'll be using Elm, a functional reactive programming language for web graphics with nice properties that let us reason about our programs as if they were mathematical equations. We'll learn how these properties make it a great programming language and how we can write programs in Elm that do cool things.

This is intended to serve as a first course in programming; no programming experience is necessary.

C9137: Programming Recursion in the TI-84 -- Blitz Edition
Difficulty: ***
Teachers: Chelsea Voss

**This is a one-hour shortened version of C8538. It was not open during the lottery phase.**

You've got a TI calculator. It does math. Yet, somehow, that's always felt... unsatisfying. Only math? You want it to do more!

With only 27 basic variables available to you, TI-BASIC is one of the more Fun(TM) programming languages out there. Yet, with certain tricks, you can wield the awesome power of lists, graphing, matrices, and more in order to write your own programs for any purpose.

In this class, we will use the concept of a "stack" in order to implement recursion in your TI calculator. This is the same way recursion is done by code running on real computers! With this tool in hand, our ultimate goal will be to create a program to draw fractals on the calculator's screen.

I will teach you what you need to know, and leave you to try it out on your own time afterwards. Therefore, if you do not have a TI calculator, you will be able to participate and learn from the class just fine. However, if you do have a TI calculator, please bring it so you can get more practice.


Prerequisites
(1) You should have already taken math at the level of Geometry. (2) Basic experience with programming in any language, OR experience with using the TI-83 / TI-84 / TI-89 calculator for basic math.

C8567: How to Speak Machine
Difficulty: ***
Teachers: Megan Belzner

Coders, Assemble!

What are we assembling? Why, programs of course! An assembly language is a low-level programming language with a strong (or one-to-one) correspondence with the actual machine-readable instructions. This class will cover the structure of a simplified machine instruction set by writing some small programs and exploring how they're interpreted by the machine.


Prerequisites
Familiarity with some higher-level language (Python, Java, C, etc). Knowledge of binary also useful.

C8786: The History of Operating Systems
Difficulty: **
Teachers: Michael Skuhersky

Let's go back to a time before any of us were born to learn about the formative years of operating system development! Learn why DOS dominated! Learn about the Unix family tree! Learn how the rise of personal computing forced OS designers to innovate! Emphasis on pre-1990.

C8585: The digital abstraction
Difficulty: **
Teachers: Olivia Brode-Roger

"Computers only understand 0s and 1s"
You've probably heard this and might have wondered why that was. And you might have that it's "on" and "off", but then wondered why nothing happens when you turn off the switch.

Come and learn why this all actually makes sense and see how we can build some computers with this!

C9073: Bits and Bytes: How to Build a Computer Processor
Difficulty: ***
Teachers: Quentin Smith

We'll take a whirlwind tour of the foundations of computing. Starting from the humble electron, we'll introduce transistors, logic gates, binary numbers, and instruction sets, and then we'll show how you can put them together to make a very basic computer processor out of the building blocks.


Prerequisites
A basic interest in electronics and math is helpful, but not required. If you know what a "volt" is, and how to add and subtract numbers, you're good!

C8751: Not Everyone's a Programmer! Computer Majors/Careers in an Hour
Difficulty: *
Teachers: Joseph Lodin

So, you're a high school student who's interested in computers, right? You know you want to study them, but every counselor you talk to just tells you the same thing, "go into computer science!" 5 minutes of research online and you realize that no, computer science isn't right for you, you want to build and run servers, or sanitize databases, or work as a security analyst, or whatever!

In an hour, we're gonna go over a bunch of different majors and possible careers for computer hobbyists like you, so maybe now you can do your own research instead of letting your counselor or someone else tell you that CS is the only way to go.


Prerequisites
Having an interest in computers

C8682: Dynamic Programming and other Algorithms
Difficulty: **
Teachers: Letitia Li

Imagine on Halloween, some grouch only lets you keep a certain weight in loot. How would you optimize your candy-induced happiness for the next year, while you plot revenge against that grouch? Ever wonder how google's pagerank works? Learn optimization algorithms, map-finding and other algorithms.

C8920: Splay Trees (and other search tree fun)
Difficulty: **

Learn about splay trees: the elegant and effective self-adjusting binary search tree! Topics covered include the construction of the data structure, runtime analysis, and discussion of performance in practice. Also will briefly discuss the dynamic optimality conjecture if time allows.


Prerequisites
Some familiarity with binary search trees recommended. Programming experience helpful.

C8848: Creating Your First Web Page
Difficulty: **
Teachers: Kathryn Siegel

Have you ever wondered how websites are created? Have you ever wanted to make your own web page? In this class, you will learn how to make your own personal page from scratch, no prior programming experience required. We will cover HTML, CSS, and a small amount of Javascript. By the end of this class, you will have a live personal website that you can access from anywhere!


Prerequisites
None

C8885: Promiscuous Mode-Network Protocol Analysis
Difficulty: **
Teachers: Harvey Yee

Do you want to be in Promiscuous (Monitor) mode? You may if you are a network engineer. Join us in learning what is involved in Network Protocol analysis, and along the way learn about network architecture and protocols. Depending on what is available in the classroom, a demonstration of a wired or wireless network session will be provided. A free copy of Linux LiveCD will be provided so that you can continue your learning of network protocol analysis after this class.


Prerequisites
just come with a sense of curiosity

C9075: Web application security
Difficulty: ***
Teachers: Favyen Bastani

As we increasingly rely on web applications for a variety of tasks, their security is becoming paramount. We'll discuss common vulnerabilities such as cross-site scripting, SQL injections, and cross-site-request-forgery attacks, and look at some examples and their implications. Then we'll see how modern technologies prevent these attacks by design, but why they continue to be a problem.


Prerequisites
Basic knowledge of how websites work. Knowing what GET and POST mean is useful but not required.

C9015: UNIX Operating System Architecture
Difficulty: ***
Teachers: Gurtej Kanwar

Ever wonder what goes into making operating systems like Linux or Mac work? How can you run 50 different programs on one processor? Why can't I write a program which steals all of your passwords?

The "kernel" is the lowest-level piece of software which sets up a structure for other programs to run on your computer in an isolated way, in parallel, and safely. In this class we'll talk about the principles behind one of the many possible kernel designs: UNIX.


Prerequisites
Some knowledge of the components of a computer will help in understanding, but this class should be accessible to all students who have worked with computers before!

C8918: Write a Sudoku Solver
Difficulty: ***
Teachers: Ziv Scully

There's this really cool programming language called Haskell. We could spend a while going over all of its features, slowly and rigorously introducing the language. Alternatively, we could jump in and write a Sudoku solver.

I like being alternative, but we'll have to move real fast. It's gonna be wild.


Prerequisites
Programming experience helpful but not required.

C9061: A Bit about Logic
Difficulty: **
Teachers: Lars Johnson

Ever wondered how computers can do so much with only those 1s and 0s you see in movies? Come learn about how your computer works at the lowest level!


Prerequisites
Basic logic

C8551: How to Make Your Own Website and Learn about the Internet at the Same Time Full!
Difficulty: **
Teachers: Abhishek Nagaraj

The objective of this class is simple -- we will make our own website with the most basic tool out there, HTML and learn how the internet works in the process! I will host your pages for you, for a year and you can share what you've created among your friends and family!

C9047: Your First Website!
Difficulty: **
Teachers: Jennifer Zhang

Never coded anything before? Learn basic web development languages (HTML, CSS, and Javascript) to make your first website!


Prerequisites
None

C8886: Wireshark Workshop
Difficulty: **
Teachers: Harvey Yee

Here is follow-up course to Promiscuous Mode-Network Protocol Analysis. In this course, we will hone our knowledge and skills in understanding and decoding network traffic.
Come prepared to get a deep dive into network protocol analysis by bringing a laptop so you can participate in a course discussion of some of the problems that we will uncover and solve.


Prerequisites
Basic understanding of Networking Protocols

C8952: Intro Programming for Newbs
Difficulty: ***

Don't know programming? Excited to learn? We'll try to help out! Warning: expect no pity. No seriously, you won't remember anything =D!


Prerequisites
no programming experience

C9077: Consensus
Difficulty: **
Teachers: Favyen Bastani

You and your friend have been captured by an evil computer scientist. She puts you into separate rooms and assigns each of you a number, either 0 or 1. Each of you can send one number back to her; if you and your friend both send the same number, and that number is one of the two you and your friend were assigned, then she lets you free. Otherwise, you will be locked in the room forever. To make this more interesting, the scientist also offers you a means of communication. She keeps track of an unlimited set of slots, and you and your friend can each request to read a value from or write a value to a specific slot at any time; she will respond saying that the write has completed or with the result of the read operation, after which you can make another request. She also may arbitrarily delay the requests from one of you, as long as she continues to respond to the other's requests immediately (this means she does not need to respond to one person's request until the other person also makes a request).

Unfortunately, there is no way for you to guarantee that you will both send the same valid number in a finite amount of time. Come to learn more about consensus, why it's not possible with only atomic read/write registers, and its enormous implications for multithreaded programming and concurrent computability.

C8818: Intro to Graphics Programming with Processing
Difficulty: ***
Teachers: Daniel Richman

Always wanted to do computer programming, but didn't know how to get started? We'll learn how to think the way computers do. Then we'll program some cool graphics/animation programs in Processing.

Not for you if you have substantial programming experience.


Prerequisites
Basic trigonometry. Please know what the unit circle is! That's it.

C8855: Sorting a List of Numbers
Difficulty: ***
Teachers: Ray Hua Wu

Did you know there's way too many ways to sort a list of numbers? Did you know that the way you probably sorted them is probably not the most efficient way to do so if you were a computer? Come to this class to learn about all the sorting algorithms (ways of sorting) you wanted or did not want to know.

C8631: Introduction to Programming in Microsoft Excel
Difficulty: *

Learn to code with an application you already know!! We will cover using message boxes to interact with the user, take in data,and automate data manipulation and formatting.

Intended for complete beginners, but can benefit anyone. The language is Visual Basic for Applications.

C8586: How do computers do math?
Difficulty: **
Teachers: Olivia Brode-Roger

Have you ever wondered how to write $$42$$ so that a computer would understand it? How about $$-42$$? How do you compute $$42+17$$? or $$42-17$$?
In this class we'll see how numbers are represented by computers, and then go on to build a simple adder to do some basic arithmetic. If we have time we'll try to make our adder even faster by modifying it.


Prerequisites
An understanding of basic logical operations might make this a bit (pun intended) more understandable, but is not required.

C8826: Put Together The Pile of Junk!
Difficulty: **

Ever wondered how to build a computer, or what all of those random parts do? Help us put together computers that are older than you are, and learn about the innards in the process!


Prerequisites
Interest in computer hardware, patience.

C8876: Intro to 3D Graphics with WebGL and Dart
Difficulty: ***
Teachers: Harry Stern

You know Notch, the creator of Minecraft? He made this http://www.youtube.com/watch?v=RVbPf0aJnbk a while ago using Dart and WebGL.

Dart is a language which compiles to Javascript, so it can run in the browser. WebGL is a browser API for 3D graphics based on modern OpenGL. Together, you can use them to do graphics programming in the browser without having to deal with Javascript.

We'll be doing a brief overview of how OpenGL works and then do a basic WebGL tutorial using Dart.


Prerequisites
Know how to multiply matrices and vectors. Some programming experience, not necessarily Dart.

C8612: Programming Concepts
Difficulty: **
Teachers: Aaron Dunbrack

Learn how to write a program, at least in theory. Note that this course will not use any particular language, because languages have syntax, and syntax is annoying. Instead, we are going to learn conceptually how to program in any language, which you can then use in any language you want, whether it’s Python, C, Java, or something else entirely.


Prerequisites
None - if you have some experience with programming (in fact, if you know how to program in just about any language) then this course will probably be too easy.

C8538: Stack Hacking: Programming Recursion in the TI-84
Difficulty: ***
Teachers: Chelsea Voss

You've got a TI calculator. It does math. Yet, somehow, that's always felt... unsatisfying. Only math? You want it to do more!

With only 27 basic variables available to you, TI-BASIC is one of the more Fun(TM) programming languages out there. Yet, with certain tricks, you can wield the awesome power of lists, graphing, matrices, and more in order to write your own programs for any purpose.

In this class, we will use the concept of a "stack" in order to implement recursion in your TI calculator. This is the same way recursion is done by code running on real computers! With this tool in hand, our ultimate goal will be to create a program to draw fractals on the calculator's screen.

In class, I will teach you what you need to know, and leave you to try it out on your own time afterwards. Therefore, if you do not have a TI calculator, you will be able to participate and learn from the class just fine. However, if you do have a TI calculator, please bring it so you can get more practice.


Prerequisites
(1) You should have already taken math at the level of Geometry. (2) Basic experience with programming in any language, OR experience with using the TI-83 / TI-84 / TI-89 calculator for basic math.

C9097: How This Website Works
Difficulty: *
Teachers: Jordan Moldow

Ever wonder what was actually going on when Splash registration opened? Find out how the ESP website (or any website) works behind the scenes.

We’ll cover, very briefly, the basics of all the major concepts of web design, including HTML, CSS, client-side scripting, and server-side scripting. Time permitting, we'll also talk about databases, version controlling, and caching. All examples will be taken from the ESP website.

If time allows, we’ll take a look at some of the administrative portions of the website - the pages that help the Splash directors administer the program.

This class will be an overview of many different concepts of web design, and how they interact. It will not be an in-depth look at any one concept, though links to resources for additional learning will be provided.

No computer experience is required. In fact, if you have a lot of computer experience, you’ll probably be bored. But if you don’t already know most of the terms listed in the description, then you’re encouraged to register for this class!

C8730: Find the Shortest Path! Full!
Difficulty: **
Teachers: Varot Premtoon

How map apps find you the best path in a gigantic map within seconds? This class explores how to create efficient algorithms to find the shortest route on a map represented in graph. We will begin with a basic way to represent a map, and then create and improve our code until it can perform on a 10,000-road map within a second! The class will be taught in C. (keywords: graph, breadth first search, dijkstra, floyd-warshall) (Don't be scared by the keywords!)


Prerequisites
Programming in C (or related language like JAVA)

C9062: Demystifying the Command Line
Difficulty: **
Teachers: Lars Johnson

Unleash your computer's hidden power by using the UNIX command line that underlies the Linux and Mac operating systems. Learn command-line syntax to speed up common tasks such as file management, data entry, and text manipulation. We will explore Unix from the ground up, starting with the basics of the command line and ending with powerful, advanced tools.

You will be able to search your computer using regular expressions, quickly compare what has changed between two files, create simple secret codes, quickly convert units, and even write your own simple program, all using only a few commands on the terminal.


Prerequisites
Basic surface understanding of the computer filesystem (filepaths, directories, etc.)

C8893: Software Engineering: Building Big Programs
Difficulty: **
Teachers: Louis Wasserman

If you’ve ever worked on a program for longer than a week, you know it can start to run away from you, and become a tangled morass of code.

We’ll talk about how big software engineering companies like Google, Amazon, and Facebook avoid these problems and manage hundreds of thousands of lines of code without their programs degenerating into spaghetti.


Prerequisites
Some basic knowledge of programming in any language.

C9036: Quantum Computation
Difficulty: ***
Teachers: Gaurav Singh

Have you heard that Quantum Computers can "try all the possibilities at once"? Do you want to know why people are spending so much effort trying to make quantum computers? Do you want to know why people are excited that they built a computer that could factor 15? If you come here, you will learn about how it really works.

C8913: Concurrency and Multithreaded Programming
Difficulty: ***
Teachers: Dan Noe

I started teaching this course in 2006 when dual core processors were a newfangled thing. Now even cell phones have multicore processors! Programming to take advantage of today’s multicore processors is tricky and filled with pitfalls. We’ll talk about Amdahl’s law and how it defines the the performance increases from adding processors. I’ll discuss how programming language locks are actually implemented by operating systems and language designers. And I’ll talk about different ways computer scientists like to abstract concurrency to make it easier to design complex systems for processing large amounts of data in parallel.


Prerequisites
You should know the hardware parts of a computer (Processor, RAM, etc) and have some experience with any programming language.

C8546: Computer Architecture: Speed Run!
Difficulty: ***
Teachers: Ziv Scully

We're going to start with transistors—electrical components that act kind of like switches—and build up from there to get as close to a designing a real live computer as we can. We're going to create structures that can make complicated logical decisions. We're going to draw a circuit on the board that can add numbers. We're might even go over the design of a fully functional processor. It'll be a party. No experience required!


Prerequisites
You should know about writing numbers in binary. If you don't know about binary yet, look it up! If you don't want to look it up, you'll still get a lot of the class, but there'll be one chunk that will probably be confusing.

C8756: Intro to Java Robots
Difficulty: **
Teachers: Steven Homberg

The computer programming you might be used to probably involves some computation and arithmetic and prints some answers to the screen, or maybe even draws some pretty pictures. But what if instead the program's output was actually mouse movements or key presses?

The Java Robot class lets you do just that! The applications are endless. You can do something as simple as trolling your friends with random mouse movements and typing while they're trying to work. You can also do more complicated things like writing a software bot to play flash games for you, get high scores and impress your friends! Whichever it is, the java.awt.Robot class has you covered.

Come learn some basic programming techniques with java Robots and see cool examples I've coded.


Prerequisites
Basic programming knowledge. Java in particular is useful but not required.

C8785: Introduction to Parallel Computing
Difficulty: **
Teachers: Michael Skuhersky

Have a lot of computer hardware? Link it together to make your calculations go faster! This class will explain the philosophical approaches to coarse and fine-grained parallelism, go over how different types of hardware are utilized by software and programming techniques, and include some real world examples of how researchers use parallel methods. Half the class will focus on multi-CPU methods, the other half will focus on advances in GPU methods. You will also learn the basic steps of building your own cluster.


Prerequisites
Some programming knowledge

C9128: Algo-Rhythms
Difficulty: ***
Teachers: Lisa Ho, Skanda Koppula

Musical algorithms

C8771: Graphics with JavaScript
Difficulty: **
Teachers: Ben Sena

A quick intro into using the HTML5 canvas element to produce graphics and animations in JavaScript. I will lead a quick demo for you to follow along, and then will answer questions as the class experiments. Interactivity will be encouraged for those that make sufficient progress.

C9096: Logic gates!
Difficulty: *
Teachers: William Navarre

Logic gates are electronic components that abstract the zero's and one's of computing into the ideas of "True" and "False" and allow you to do boolean operations on them. (In their not, "NOT AND", "NOT OR", "NOT", and "XOR").

We will be designing some simple logic-gate circuits that will do things you probably didn't know could be done with just the three operations above. We will also play with some real-life logic gates to see how they really work.

Goals of the class will be to play with some logic (something you already know how to do but probably don't do very often) and to get a feel for circuits (which is less scary than you think).


Prerequisites
You should be able to understand the following equality, but do not need to have already known it: a XOR b = (a OR b) AND NOT(a AND b) This course is intro-level. If you are comfortable with breadboards and logic gates already, you are not the target of this course.

C8914: Real Software Engineering
Difficulty: *
Teachers: Dan Noe

What is it really like to be a professional software engineer? Thinking about it as a career/major but you're not sure? I've been a full time software engineer since 2008 in both big and small companies. In this class we'll chat informally, answer questions, etc, about exactly what to expect if you go into a career in software engineering. We'll talk about some of the different types of software from web and mobile app development to operating systems and languages. Finally, we'll discuss some of the differences between "Computer Science" and "Software Engineering" and the parts of the software development process that universities often don't teach.

C9100: Painting with Computers: Recent Advancements in Magic
Difficulty: **

Learn to paint like Van Gogh through the wizardry of programming. Guaranteed probably the best class that you’ll ever take ever. We’ll dive into how you can make photographs from your phone look like impressionist paintings.

“Amazing”
“I just painted a picture of my dog instantly!”
“Wow holy wow that was great wow”
real testimonies (from you)

C8759: Machine Learning & Audio Analysis with Python
Difficulty: ***
Teachers: Daryl Sew

Machine learning is a field of computer science that concerns writing programs that can make and improve predictions or behaviors based on some data. The applications of machine learning are very diverse - they range from self driving cars to spam filters to autocorrect algorithms and much more. Using scikit-learn, an open source machine learning library for Python, we'll cover reinforcement learning (the kind used to create artificial intelligence for games like chess), supervised learning (the kind used in handwriting recognition), and unsupervised learning (the kind eBay uses to group its products). We'll then cover audio analysis through Fourier transforms with numpy, an open source general purpose computational library for Python, and we'll use our newfound audio analysis and machine learning skills to write very basic speech recognition software.

Applications of machine learning to the fields of multitouch gesture recognition and computer vision will also be discussed, drawing from my work at Tesla and research on self driving cars & autonomous submarines.


Prerequisites
Prior programming experience strongly recommended.

C8878: Rants on Programming Languages
Difficulty: **
Teachers: Pravi Samaratunga

Hey there, do you like programming? Yeah, well you're probably wrong. All programming languages are awful in their own special ways. Rants will come in many flavors, such as C, Java, Python, web development languages, and whatever your favorite programming languages are.


Prerequisites
Some basic familiarity with programming is helpful, but not explicitly required. You can still have fun with this class even if you have never coded before.

C8508: Introduction to Linux
Difficulty: **
Teachers: Anne LoVerso

Have you heard of Linux? Wondered what it's about? Why you should use it? How you use it? Look no further, and take this introductory class on the merits of open-source software, command-line usage, development environments, and more!

C8951: Sorting sensations
Difficulty: **
Teachers: Kayla Meduna

Come learn all about how you would sort items in a list! We have fast, slow, and strange options. Ones that will make perfect sense and ones that will leave you baffled. You will leave this class knowing almost everything about your sorting needs! (there will be some math too)

C8934: Calculating Pi with a Coconut
Difficulty: **
Teachers: Haley Cope

If you're on a desert island with a coconut and a stick, would you be able to calculate pi? We'll look at this question, figure out how to do it, and then see how we can generalize this process (formally called "Monte Carlo Method") to other applications.


Prerequisites
I'll be showing Python code, but you don't have to be able to code in it (I'll explain it/it's really easy to read)

C8629: Algorithms of the Dummies, by the Dummies, for the Dummies
Difficulty: *

Ever do excess work when it can be done more efficiently? What/who/when/where/how is efficiency? This class will teach you the tricks, shortcuts, and everything you need to know about algorithms: who they are, why they be, and what they want, etc etc. So much knowledge that we can't even: only odd!

C8505: Intro to MATLAB/Octave: Why Programming Shouldn't Scare You
Difficulty: **
Teachers: Akshara Thejaswi

Have you ever wanted to learn programming, but just found it too intimidating? Are the only languages you know ones that involve vocal cords and signing? Well, in this class you'll learn a different way to communicate with your hands - through programming!

(It's nowhere near as scary as it looks.)

In this class, you'll learn about MATLAB, a technical computing language that can be used in many different ways: data analysis, scripting, object-oriented programming, image processing, app development, and more...

... but we'll be going the slightly less scientific route, and making text-based games.

I'll be teaching you how to get started with MATLAB and Octave, and also answering any questions you might have about programming, computer science, or engineering in general. :)


Prerequisites
None, just be curious about programming! No laptops or computers required, we will be in a computer lab!

C8605: Introduction to Programming with Python Full!
Difficulty: **

Ever wondered how to write code for your computer? We'll teach you the basics with Python, a computer programming language with an emphasis on ease-of-use and friendliness to beginners. In two hours, you'll be able to write simple programs that have the potential to make some of your tedious tasks much more enjoyable.


Prerequisites
None

C8845: An Introduction to Java and Object Oriented Programming
Difficulty: ***

Do you like Computers?

Do you like Programming?

Are you signed up for or thinking of taking AP Computer Science?

If so, this class is for you! The object of this course is to teach new programmers with little to no experience how to make a small Java program using objects.

C8846: Writing BOTS: how to destroy your friends at any computer game
Difficulty: **
Teachers: Kevin Chen

Have a game that you really want to beat your friends at? Well, you can either
spend countless hours of practice clicking and mashing keys. Or, you can write a BOT that does everything for you!

Learn how to write a program that can type and move the mouse for you, giving
you insanely high scores in any game.


Prerequisites
You MUST know Java.

C8899: AI and Board Games
Difficulty: ***
Teachers: Jin Pan

Ever wonder how computer AI works in video games and reality? In this course, we'll show you how to write your own AI code for tic tac toe and at the end, we'll have a checkers AI tournament!


Prerequisites
Programming background, python preferred

C9040: Command Line One-liners
Difficulty: **
Teachers: Changping Chen

Ever need to scape gazillion lines of data from a webpage? Want to manipulate a text file like an SQL database or Excel sheet? Need to organize files but drag and drop is too tedious? You may be a Python master, and sure you can get these jobs done using your favorite language in an hour. BUT wouldn't it be nice if you don't have to code? Come learn all the command line tools you need to structure that perfect one-liner!

C9113: Learn Haskell
Difficulty: ***
Teachers: Jason Schuchardt

Haskell is awesome. Haskell is a purely functional programming language http://xkcd.com/1270/.


Prerequisites
Some programming experience preferred but not mandatory.


[Deprecated] Engineering

[ Return to Category List ]

E8840: Dip Into the Charles

Learn more about the measures used to determine water quality in the Charles river and other bodies of water. Then take a trip outside to the river to perform some simple tests yourself. (Make sure to bring warm clothes!)


Prerequisites
Ability to plot points on a graph

E8887: How Combination Locks Work Full!
Difficulty: **
Teachers: Harvey Yee

Come to this class to get a hands on introduction to the science and art of combination locks. Together, we will examine and explore their construction, their designs, and their weaknesses, from a physical and mathematical perspective.


Prerequisites
A sense of curiosity

E8939: The History of the T
Difficulty: **
Teachers: DW Rowlands

Have you ever wondered why each line on the T uses a different,
incompatible, type of train? Or why the Red Line goes around such a
slow, horribly squealing curve between Central and Harvard? What
about why there are four tracks at JFK/UMass, or why there's a
"High-Speed Line" attached to the Ashmont end of the Red Line? Did
you know that the Orange Line used to directly connect North and South
Stations? We'll cover 115 years of the building and rebuilding of
Boston's rapid transit system.

E8510: Engineering Design Challenge!
Difficulty: **
Teachers: Anne LoVerso

Work on a team to design and build a solution to a challenge using only given materials! Will be fun, fast-paced, and involve likely failure. Good luck!

E9084: Introduction to Biomechanics Full!
Difficulty: **
Teachers: Kristi Oki

What is biomechanics and why is it useful? How can we study the mechanics of the human body? This class will discuss some of the basic postulates and equations necessary to understand biomechanics.


Prerequisites
Algebra I and II Basic calculus would be helpful

E8573: Modern Heat Engines Full!
Difficulty: **
Teachers: Brandon Zoss

Have you ever wondered why your parent's car doesn't have a jet under the hood, or why jets, well, have jets? Come in and learn what makes them tick, and what makes them better suited for each use. We'll derive the basic concepts that make them possible and evaluate each with respect to efficiency, and how you can make a change. Once we are finished, you'll leave inspired to never look at your daily commute the same again.


Prerequisites
None! Come in and be inspired!

E9111: Arduino - Open Source Hardware
Difficulty: **
Teachers: Ali Shaik

Arduino is "Open Source Hardware" .. an inexpensive microprocessor board with digital/analog inputs/outputs that you can program and use to build electronic gadgets. I will bring a few boards with me and show how to program the board as well as connect it to other electronic stuff.

This class is for beginners to electronics and programming.

E8803: Mechanics and Materials: Introduction to Statics
Difficulty: **

Introduction to statics and the mechanics of deformable solids. Stress and its relation to force and moment.


Prerequisites
Basic understanding of Newtonian physics.

E8715: Evaluation of Products Designed for the Developing World
Difficulty: **
Teachers: Gaurav K

This course introduces students to evaluation theory and models, as well as their application and planning, with a focus on appropriate technologies designed for developing world use. We will discuss how to evaluate such technological solutions, from the perspectives of suitability, scalability, and sustainability, and also draw on specific case studies from Africa, Asia and/or Latin America. Upon completion of the course, students will be able to develop a simple, yet reliable framework for evaluating technological products (esp. designed for the developing world), and can also apply the concepts while pursuing more focused applications within the areas that are of interest to them.

E8724: Racecar Design 101
Difficulty: **
Teachers: Jared Hecht

An introductory course in racecar design, covering aspects of aerodynamics, brakes, tires, steering, transmission, suspension, chassis, and powertrain concepts. Students will get a look into the design and optimization of various vehicle subsystems.

E8697: Build a Mini Aeroponic Farm!
Difficulty: *

Interested in the future of farming? Aeroponics is a soilless method of growing plants, in which roots are suspended in air and sustained with a nutrient mist. Learn about aeroponic farming technology and its applications to sustainable farming. Tour the Media Lab's aeroponic urban farm. Then build your own mini aeroponic farming system to take home!!!

E9028: Introduction to Feedback and Control Systems
Difficulty: ***
Teachers: Daniel Kramnik

Learn the basic math and science that allows thermostats to regulate temperature, satellites to hold precise orbits, and supermaneuverable aircraft to perform turns that would normally be impossible. We'll start off by covering some basic topics in signals and systems and introducing the Laplace transform as a powerful technique for solving differential equations. Then, we'll define what a feedback system is and learn to rigorously analyze whether a control system built with feedback is stable. Along the way, we'll investigate various examples of physical and electronic systems with feedback such as the polarization of water molecules, electric motor speed controllers, and operational amplifiers.


Prerequisites
Be familiar be with complex numbers and Euler's formula (the complex exponential function). Have enough background in physics to know what an electric field and a mass-spring oscillator are. Know what an integral and derivative are and how to take some basic ones, including improper integrals. If you can figure out how to evaluate $$ \int_{1}^{\infty} \frac{1}{(x+2)^2} dx $$ and would be comfortable with me doing it in 30 seconds, you'll be all set for this class.

E9107: Puzzles and Physics
Difficulty: **
Teachers: chase lambert

Puzzles are wonderful, especially when the answer can be seen in real life. Come learn a bit of physics through puzzles!


Prerequisites
Maybe a bit of a physics class, although not totally needed

E8998: All about Nuclear Science and Engineering!
Difficulty: ***
Teachers: Maximillian Major

Does the idea of nuclear energy excite you? Do you want to gain a better understanding of radiation and its applications? Then come join this class! You'll learn the difference between fission and fusion, all about binding energy and radioactive decay, the basics of how a reactor functions, and more!


Prerequisites
Basic Chemistry, Basic Understanding of Classical Mechanics

E8936: Rockets!
Difficulty: **

Love things that fly? Love things that go boom? Well... come learn about rockets! MIT's Rocket Team will be teaching about how rockets work and sharing some of their experience as a team.

E8787: Modern Rapid Fabrication
Difficulty: *
Teachers: Michael Skuhersky

Suppose you designed some cool 3D model and wanted to hold it in your hand. Or say you are making a prototype of a product you want to bring to market, but you don't want to make an entire assembly line for it! The most visible solution is FDM 3D printing, but this has plenty of limitations. We will take a look at the history of rapid fabrication techniques, the wide range of current methods and their limitations, and options being developed for the future. Examples of many different fabrication processes will be present.

E8705: Why the MBTA is so slow
Difficulty: *
Teachers: Joshua Fabian

Ever wonder why the [insert color] Line is always delayed at rush hour, or why buses appear to come in bunches?

Come make sense of these questions by learning the basics of queuing theory and traffic modeling, as well as how they apply to everyday operations on the T - dealing with situations such as disabled trains, schedule adjustments, bus bunching, and, yes, even headways on the Green Line branches.

Students are of course encouraged to bring their own transit-related questions or discussion.


Prerequisites
Some basic probability and statistics will be involved, but previous experience is not compulsory. Best to have previously ridden the T around Boston.

E8506: When Life Gives You Lemons...
Difficulty: **
Teachers: Akshara Thejaswi

Imagine yourself stranded on an island. You have a near-infinite supply of lemons. What do you make with these lemons?

Not lemonade, because lemonade has been done a million times before, and it's not particularly useful when you're stranded on an island. This time you're gonna do something cool, new, and useful: circuits!

Learn how to build circuits out of things you have just lying around your house, and in the process, how circuits and batteries work!


Prerequisites
None, you don't even have to like lemons! We won't be eating any. :)

E9006: How to Solder (Almost) Anything
Difficulty: **

Interested in electronics and want to make something awesome? Join us for an introduction to through-hole soldering of resistors, capacitors, jacks, and other components.
We'll be making an analog, portable headphone amplifier from scratch which you can use to power your headphones! No prior soldering experience is necessary.


Prerequisites
Mind, hand, love, and dreams.

E8509: Engineering Design Challenge!
Difficulty: **
Teachers: Anne LoVerso

Work on a team to design and build a solution to a challenge using only given materials! Will be fun, fast-paced, and involve likely failure. Good luck!

E8678: Intro to Solidworks
Difficulty: **
Teachers: Elizabeth Mittmann

Want to learn how to make a 3d representation of an object on a computer? In this class you will get to create a Computer Aided Design (CAD) using SolidWorks software.

E8521: Building a Race Track in a City: Lessons from the Singapore Grand Prix
Difficulty: **
Teachers: Christopher Choo

We discuss some of the infrastructure considerations for building a race track in the middle of a city, and running a Formula One race at night.

We will touch on race infrastructure such as roads, barriers, fences, and lights in the context of an urban setting. What are the design considerations, and how did engineers come up with solutions to solve some of these problems?

What facilities are needed for spectators? How are these facilities serviced from an engineering standpoint, and what supporting infrastructure is required?

Lastly, we will briefly discuss the reasons for organizing a night race in the city. Who benefits? Who is adversely affected? How do we as engineers deal with these issues?

E8621: Factory Physics
Difficulty: ***
Teachers: Vrajesh Modi

This class will introduce students to the equations behind running a successful manufacturing and/or supply chain operation. Topics covered include capacity, Little's Law, queueing, inventory, economic order quantity, the Newsvendor model, safety stock, replenishment policies, quality, statistical process control, and Lean/Six Sigma.

E8892: Singular Construction Projects
Difficulty: *

An overview of construction projects and description of six massive and complex projects in Gibraltar (UK).


Waterport Terraces ($83M)

Mid Harbour ($100M)

Gibraltar Airport ($96M)

Tunnel under runway (under sea level) ($80M)

Buena Vista Park Villas ($50M)

Aerial Farm ($125M)



Prerequisites
Students with interest in Construction/Architecture/Engineering

E9110: CHDK - Canon Hack Development Kit
Difficulty: **
Teachers: Ali Shaik

Canon Hack Development Kit (CHDK) is free public license software that runs together with operating software of many Canon cameras. We will learn how to install it, and I will demonstrate (a) Remote triggering of a camera (b) Motion detection (c) Making time lapse videos. I will provide enough information that you can try these projects at home.

E8617: Environmentally Benign Design and Manufacturing
Difficulty: **
Teachers: Vrajesh Modi

After this class, you will be able to: (1) justify why environmentally benign design and manufacturing matters; (2) evaluate and compare the environmental impact of various products and technologies; and (3) recognize and challenge questionable environmental analysis. Format will consist of a blend of lecture on theory and discussion on current issues.


Prerequisites
Chemistry and/or Physics background encouraged but not required.

E8677: Engineering Life: Synthetic Biology
Difficulty: **
Teachers: Shinjini Saha

We are now in an era where biology is no longer limited to just studying nature. As the database of knowledge about the interactions of biochemical pathways and gene interactions grows bigger, so does our ability to manipulate them.

Synthetic biology allows us ways to engineer cells to behave in ways we want them to, providing potential ways to cure the yet incurable or solve problems yet unsolvable.


Prerequisites
No prerequisites, but very basic knowledge of enzymes, genes, DNA replication or DNA to protein formation will help (we'll go over everything!)

E9091: Engineering for International Development
Difficulty: **
Teachers: Jason Yang

Here we will learn about engineering designs and practices when engineering for developing countries. Curriculum will be largely hands on to foster a love for engineering focused towards beginning to think about the unique problems in engineering for the developing world.

E8623: Build a Bridge

Learn about bridge design from some of MIT’s Civil Engineering students, then put your knowledge to the test in a competition to build the strongest bridge. We’ll provide materials and feedback on your designs, and at the end of the class, we’ll see which bridge can hold the most weight.

E8696: Using computers to discover drug targets
Difficulty: ***

Cancer is a really complicated disease. Sometimes drugs that target tumors are very effective -- but often patients become resistant to the drugs they take and their tumors come back. In this class you will try to overcome this drug resistance using your knowledge of biology and computers! We will teach you the basics of a new field called 'Cancer Systems Biology'. Join us to learn how to tackle difficult health problems using engineering!

E8841: How lithium-ion batteries (in your iPhone, laptop) work
Difficulty: **

If you have a smart phone (iPhone, Galaxy) or a laptop, you have certainly said this at least once: "My battery is dead." But, do you know why? Lithium-ion batteries are in our smart phones, our laptops, and are now in electric vehicles. Come learn about how they work, why they are so exciting, and what the future holds for lithium-ion batteries.

Without lithium-ion batteries, our smart phones and laptops would not even last for as long as they currently do. Can you imagine that?? And current electric vehicles would not even exist!!


Prerequisites
Some knowledge of chemistry would be helpful (ions, electrons, positive charge...)

E8647: Signals and Systems!
Difficulty: ***
Teachers: Jimmy Mawdsley

Come learn about the exciting mathematics and applications of signal processing! We will start by defining various systems in both continuous and discrete-time contexts before branching out to discuss signal transforms, Fourier series, convolution, filters, etc. In addition, we will talk about how the theory is used in practice for such applications as audio processing, medical analysis, the JPEG image format, and biometrics. There will be demos and interactive activities!


Prerequisites
- Calculus BC is *strongly* recommended. - A first year high school physics background would be very helpful. - Familiarity with Euler’s formula ( $$ e^{i\theta}=cos(\theta)+isin(\theta) $$ ) would be a plus.

E8881: Speaker Design Crash Course
Difficulty: **
Teachers: Corey Walsh

You like wubs? I like wubs. Here's how to make more wubs.

Want to tell your friends why their 100000 watt sound system sounds worse than a dying mule? I'll explain why most cheap commercial speakers are terrible, and how you can do better.

Learn about the ups and downs of Sealed, Bass Reflex, Transmission line, MLTL, Horn, and Taped Horn enclosures. I'll walk you through the basics of acoustics design and send you off knowing more than you did an hour before.

E8969: Industrial Ventilation Systems
Difficulty: **
Teachers: Riley Drake

Is that a pipe or a duct? Why does moving air around buildings have to be so complicated? What happens if you get stuck in a positive pressure room? What about a negative pressure room?

What kinds of ducts are there, and how can you identify them from the ground level? Duck hunting is a surprisingly popular sport, considering it pales in comparison to its sister sport, duct hunting. The class will include a guided duct hunt.

E8689: Electric Cars: how do they work?
Difficulty: **

A deep-dive into electric vehicle technology and a comparison to the old clunky topic of gasoline cars. Gas engines are 18% efficient. Electric motors are 85%-95% efficient. It is a no brainer to use electric right? It is a bit more complicated than that.

A demonstration of a tiny electric motorcycle will introduce you to the world of electric vehicles. Then we will talk in detail about: battery technology, battery management, motor types, motor controllers, efficiency, rapid charging, and why the world isn't electric yet.

E8627: Introduction to Thermodynamics
Difficulty: ***
Teachers: William Livernois

An hour-long introduction to basic thermodynamic concepts with fun demonstrations. What s temperature? What is entropy? What does the Second Law of Thermodynamics *really* mean? Answer these questions and more...


Prerequisites
AP Chem level knowledge preferred. Email if you have any questions.

E8496: What's The Deal With 3D Printing? (Now with LASERS!)
Difficulty: ***
Teachers: William Little

The world's media has been going crazy over 3D printers every now and then, but what's so special about them? What can you do with them, and how?

In this class I will show you the practical sides of 3D printing. I'll show you the current consumer grade printers available to the public as well as talk about the massive printers used by companies such as ShapeWays. I will also show you what some of the current issues and limitations are and how they're being improved upon, including a live demo featuring 3D printers made by Solidoodle! By the end of this class you will have a foundation to build upon to start 3D printing on your own. I will present several sources for printer control software, modeling software, 3D modeling communities, printer manufacturers, and more!

I will also go over some of the basics of 3D modeling, as well as talk a little bit about the home manufacturing revolution with laser cutters and CNC machines as well as 3D printers to make just about anything you need!


Prerequisites
A curious mind and perhaps a pair of eyes.


Humanities

[ Return to Category List ]

H8938: The Origins and Writing of the Constitution Full!
Difficulty: **

We often think today of the Constitution as the piece de resistance of the Colonial period, a perfect government that sprang from the Founding Fathers fully formed and without precedent. In fact, few things could be further from the truth. The Constutition wasn't even supposed to exist --- the committee that forged it was supposed to propose amendments to the existing government, not overthrow it. The Founders themselves hardly thought their document was perfect --- it had a host of compromises, over religion, slavery, power, and other critical aspects of the government. In fact, several Founders spent months locked away in a room with the others making the Constitution --- and then refused to sign it! How did the founders arrive at the Constitution? Did they come up with something new, or was it foreshadowed by the British system? Why did they make the choices they made? Come learn and discuss these and many other Constitutional topics!

H8926: Geography: Science for the rest of us
Difficulty: *
Teachers: Brynna Downey

Come quiz yourself on what geographs you know and forgot existed. Maybe you think you don't need this class, but my friend asked me what the capital of Chicago was. If you are my friend, you should take this class. Maybe you also like geography because you are cool kid number one! *You* should definitely come! We'll have some geographantastic moments.


Prerequisites
Know your state capital.

H8821: Pictogram introduction to philosophy of law
Difficulty: **
Teachers: Andrei Klishin

What is a just society? Oh, there are so many answers. Equality, freedom, greater good - where do these concepts start to contradict each other? Is it possible to build a justice system that is not self-contradictory?
Yes, and even a few such systems, choose to your taste. This class provides an overview of three big schools of thought in political philosophy and a few dilemmas to which there are different answers. We will use pictograms and schemes to illustrate the difference of approaches.

H8571: Making of the Modern Mind
Difficulty: **
Teachers: Carol Hardick

Making of the Modern Mind is the intersection of cognitive science, philosophy of mind, humanities and critical thinking.
Section I introduces you to theories of behavior, including priming, conditioning and morality and how these concepts relate to brain physiology and functions. We also discuss how our answers differ and how they relate to the "mind-body problem" and everything from law cases, health care to education.

We'll answer questions like: Are we bodies, or do we have bodies? How much would you have to be paid to lie? Should robots have equal rights if they can think and feel?

We'll discuss famous experiments on these topics including Rebecca Saxe and her experiments at MIT.

Some of the material is college level, but I make it very accessible with a lot of open class discussion. I add tips for study skills throughout the class.

H8796: Palestine vs. Fox News
Difficulty: *

We've all heard of Palestine. The West Bank. Gaza. But mostly from the perspective of our own American media.

This class is going to eat some popcorn, watch some American news, some international broadcasts, and enlighten ourselves to what the media really does to the Palestinian/Israeli Conflict. It's going to be a party!

After 50 minutes of SPLASH-certified training, every one of you smart people will sound better informed than the average American news anchor. Why not, right?

H8829: Introduction to Positive Disintegration - Part 1 Full!
Difficulty: ***
Teachers: Josh Shaine

Dr. Kazimierz Dabrowski’s Theory of Positive Disintegration (TPD) provides a lot of explanations for why some of us feel as if we fit into this world so poorly.

In this session, we will explore the basics of TPD, including OverExcitabilities, Dynamisms, and Levels of Development of personality.

So, if you are looking for alternate explanations for why some things bother you far more than they bother most folks, join us!

H8740: Dabrowski and Overexcitabilities
Difficulty: **

We will talk about the implications of heightened sensitivity for everyday living in gifted people and take a quiz to see which Dabrowski's Overexcitabilities manifest in us.

"Overexcitabilities are inborn intensities indicating a heightened ability to respond to stimuli. Found to a greater degree in creative and gifted individuals, overexcitabilities are expressed in increased sensitivity, awareness, and intensity, and represent a real difference in the fabric of life and quality of experience. Dabrowski identified five areas of intensity-Psychomotor, Sensual, Intellectual, Imaginational, and Emotional. A person may possess one or more of these. “One who manifests several forms of overexcitability, sees reality in a different, stronger and more multisided manner” (Dabrowski, 1972, p. 7) - See more at: http://www.sengifted.org/archives/articles/overexcitability-and-the-gifted#sthash.SVDb8uHh.dpuf

H9070: Experimental Writing
Difficulty: *
Teachers: Cathleen Nalezyty

Have you heard of blackout poems? Erasure text? Concrete poetry? Have you ever played Exquisite Corpse or Syllogism?

In this class, we'll talk about some forms of "experimental" writing and have some fun coming up with our own forms of experimental writing. We'll play some collaborative word games and, at the end, hopefully you'll come away with some new ideas about what constitutes "writing".

H9089: Arabic 101
Difficulty: *
Teachers: Annalise Pforr

Learn to speak and write Arabic in 50 minutes!
Seriously. No experience necessary.

We'll learn the alphabet, how to write your name, and some useful phrases.


Prerequisites
None

H9071: Greek Pottery
Difficulty: **
Teachers: Cathleen Nalezyty

Let's delve into the world of Greek pottery! In this class, we'll look at a couple of pieces of Greek pottery and explore them both as art pieces and as records of myth. We'll spend some time talking about the design elements of the pottery, the main techniques in pottery making of the time, and a little bit about the depiction of the mythology on the pieces.

H8700: Making of the Modern Mind: Topic #2
Difficulty: **
Teachers: Carol Hardick

Making of the Modern Mind is the intersection of cognitive science, philosophy of mind, humanities and critical thinking.

The topic for Section II will be group theories, identity, morality and the problem of good and evil, and how these concepts relate to the physiology of the brain and the"mind/body problem." We also discuss how our ideas on this connect to everything from the law to ethics to health care. We'll discuss famous experiments on these topics.

Some of the material is college level, but I make it very accessible with a lot of open class discussion. I add tips for study skills throughout the class. I hope you join us for some interesting debate!

H8902: Ethical and Environmental Food Issues
Difficulty: **
Teachers: Elizabeth Berg

If you carefully stroll through the supermarket, you'll notice that everything is plastered with a variety of labels: Organic, Natural, Fair Trade, non-GMO. What do all of these words mean, and why should you care? In this class, we'll learn about and discuss both sides of many contemporary food issues.

H9072: History of Art in 50 Minutes Full!
Difficulty: **
Teachers: Cathleen Nalezyty

Let's race through all of art history in 50 minutes! From the Venus of Hohle Fels to modern art to contemporary art, let's whisk through the major periods and styles of art, briefly (and I mean briefly) mentioning some of the most important pieces of various styles.

H8722: The Fun Parts of History
Difficulty: *
Teachers: Robert Rusch

Who was the 23rd president? When was the Battle of Thermopylae? What was the socioeconomic reasons responsible for the fall of the Roman Empire?

BORING!

Instead, you will hear the tales of mighty men and women as they live out their exceptional, fascinating and occasionally incredibly dumb lives.

In addition, any student that would like to share a favorite historical story of theirs is welcome to speak during the class.

H9120: Autism, Aspergers and the spectrum
Difficulty: **
Teachers: Joshua Frisch

Autism, Asperger's syndrome, and related conditions, are some of the fastest growing mental health challenges in the country. In this class I will give firsthand knowledge about living with Autism, its effects on socialization and intelligence, and the importance and success that early occupational and social therapy can have to alleviate social and communicative difficulties.

H8986: Battle School
Difficulty: **
Teachers: Kevin Yue

Have you ever wanted to conquer the world? Ever wondered if you could if you had the chance?

Well, here it is. Come, face down like-minded individuals! Vanquish them on the field of battle! Win eternal glory*

Oh, and learn some military history while you're at it.

*For the duration of 1 class period. Actual results may vary.


Prerequisites
Willingness to read the game rules in advance

H9123: History of Homosexuality
Difficulty: **
Teachers: Joshua Frisch

Gays, Lesbians, and alternate sexualities have existed for thousands of years and controversies and opinions about them for nearly as long. We will discuss same gender relationships, different societies reactions and tolerance to them, and the affect that individuals had in a variety of places and times, modern and ancient, foreign and familiar. We will discuss issues ranging from the silly to the striking with, hopefully, a healthy dose of humor.

H8592: Is belief in god reasonable?
Difficulty: **
Teachers: Michael Denigris

This class will provide a very basic introduction to the academic discussion of whether or not god exists, and in what ways one can attempt to establish a justified answer to that question.

We will address philosophically rigorous arguments both for and against the existence of god, and attempt to find flaws in their reasoning.

The format of the class will be a mix between lecture and discussion. I'll present the arguments, the justifications for the arguments' premises, and some possible objections for consideration, and invite the class to make their own objections or ask questions.

Topics:
-Burden of proof and the construct of the null hypothesis
-Positions one can have on the question of god's existence
-Arguments for the existence of god: Teleological Argument, Kalam Cosmological Argument, Moral Argument
-Arguments against the existence of god: Problem of Evil, Hume's argument against miracles, the Omnipotence Paradox.


Prerequisites
>An open mind. >Willingness to have your beliefs changed by others. >Basic understanding of philosophical arguments (validity and soundness - will be quickly reviewed). >Cursory knowledge of the Big Bang Theory.

H8856: "Cogito, Ergo Machina?": Topics in Machine Thought
Difficulty: **
Teachers: Arnav Sood

On January 14, 2008, IBM's Watson won a million dollars on Jeopardy; since then, it's studied complex diseases and landed a job with Boeing, but can it even think?

This course uses Watson, and other hypothetical machines, to explore problems in machine thought. Topics might include the Turing Test, the Blockhead, Searle's Chinese Room, and the functionalist and behavioralist approaches to intelligence, based on seminar participants' choices. Time permitting, we will also discuss the computational nature of human thought.


Prerequisites
Students of all backgrounds, and all levels of familiarity with AI, are welcome! The class should be rewarding to all, since we will spend most of our time exploring the ideas we introduce in class.

H8726: Philosophy and Morals in Anime Full!
Difficulty: **
Teachers: Yini Qi, Charlene Xia

Blurring the line between pop culture and academia. Let's discuss some philosophy and moral questions hidden in Anime. Anime include Death Note, Madoka, Psycho-pass, and Evangelion.


Prerequisites
Open minded.

H9080: Philosophy of Mind and Consciousness
Difficulty: *
Teachers: John Gregg

What is a mind, and why is it so special? Is it special? How could it possibly work? Won't brain science, psychology and/or cognitive science answer any questions anyway? What do we need philosophy for? Do I have to wear a toga? No to that last one, but for the rest, sign up for this class. A brief history, and a primer on the current debates in this contentious field.

H9014: Why they "hate us"? A brief history of the Middle East
Difficulty: **
Teachers: Malte Ahrens

A brief dive into the history, religion and people of the Middle East; why the maps are as they are today, why wars are still being fought to this day, and what our involvement is.

Grab onto your seats, this is one wild and fascinating ride through history!

H9049: Islam 101: Religion of Peace or Terror ?
Difficulty: *
Teachers: Mehmet Efe Akengin

We will first make a short introduction to Islam: What does Islam mean, is that something similar to Christianity?

Then we will dive into controversial topics and stereotypes about Islam such as terrorism and universal moral values. Can someone killing innocent people claim to be a real Muslim? Does Islam promote their actions?

We will try to answer all our questions by using the fundamental sources of Islam such as Quran and sayings of the Prophet Mohammed.

At the end, we will answer your questions ANYTHING about Islam.


Prerequisites
Being open-minded and eager to overcome biases

H8530: The Roman Empire
Difficulty: *
Teachers: Diptarka Hait

Follow the Roman Empire over the course of 1480 years from Antiquity to the Medieval Era. Learn how the Empire survived despite barbarians, inflation, political instability, corruption, plagues, religious divisions and even the brief loss of its Capital. Witness the cyclical rise and fall of fortunes, until the last Emperor casts down his crown and rushes to attack the invaders who had breached the walls of his city, never to be seen again.

And finally, understand how the Roman national identity survived despite the loss of the Empire, and still affects the world today. As you admire the bones of the Empire, do not forget the shadow it still casts, whether for good or for evil.


Prerequisites
Nothing other than interest in history.

H9078: Thinking About Religion
Difficulty: **
Teachers: Amy Estersohn

Come with questions, leave with even more questions! This class is a discussion-intensive tour de force of thinking through questions about religion that you and your classmates have. You may also realize that people who have been long dead have asked similar questions.

H8945: The User Experience - An Intro to UI/UX Design
Difficulty: **
Teachers: Jessica Wang

Ever wondered how people use things? From physical objects in our daily lives, to websites we browse, the user experience plays a large part in determining the success of the product. UI (user interface) and UX (user experience) designers work hand-in-hand to design and optimize how people use things. The field as a whole is an interdisciplinary mix of visual design, psychology and user behavior, and computer science. Learn about exactly what UI/UX is, and gain insights into how to craft beautiful experiences.

H8732: Do We Have a Purpose? Full!
Difficulty: **

In this class, we'll be discussing and comparing the philosophies of essentialism and existentialism, and whether or not our life have an inherent purpose. We will be exploring the views of ancient Greek philosophers, such as Aristotle and Plato, as well as the works of early 20th century philosophers Kierkagaard, Hume, and Sartre.


Prerequisites
None! Come with an open mind, and the eagerness to learn and influence the ideas of others.

H8709: Intro to Humanistic Psychology
Difficulty: ***
Teachers: Ben Carton

Could psychology serve a bigger role than just diagnosing "what's wrong" with people and offering to "fix" them? Humanistic psychology emphasizes each person's dignity, creativity, and potential for growth. It holds that people should be valued for, and understood through, their experience of the world and themselves. Humanistic psychology in practice tries to create conditions - in therapy, in the classroom, in the workplace - which help each individual's unique potential unfold. This class will cover the basics of humanistic philosophy and how it is put into practice. A special focus will be put on the work of Carl Rogers, an incredibly influential figure who is seen as one of the founders of humanistic psychology.


Prerequisites
Recommended, but NOT required: Read "A Way of Being" by Carl Rogers

H8916: Robots! Space! Time! Stories!
Difficulty: *
Teachers: Bianca Homberg

Interested in science fiction, futuristic engineering, artificial intelligence or interplanetary empires? Ever wondered what would happen if people lived forever? What would happen if the world split in two every time you had to make a choice, and both options happened? What would happen if there was a center of time where time stood still?

Come read a few of the short stories of Isaac Asimov, one of the most prolific science fiction writers of all time and excerpts from the book Einstein's Dreams, which describes numerous different ways in which time could work. Come spend an hour devouring tales of robots, space, and time!

H8947: Classpect!

Explanation and discussion of the heroic titles system used in Andrew Hussie's Homestuck.

H8569: Dreams, Dreaming and the Subconscious
Difficulty: *
Teachers: Carol Hardick

Dreams, Dreaming and the Subconscious introduces you to cognitive sciences, thinking and memory from the perspective of the subconscious and the sleeping brain, using an interdisciplinary approach of cognitive psychology, dream science and humanities.

Movies and books include these ideas with lots of twists and turns, and bring up questions about the brain, knowledge and artificial intelligence. What’s possible and what isn’t? Can an idea be planted in a person’s mind? Can two people share a dream? Can a person’s mind be controlled? What's deja vu? With lots of class discussion, we’ll answer these questions, and more.

As we discuss the breadth and depth of the mind, the sheer ingenuity of an individual’s ability to think and create in so many ways, (and even do it while we’re sleeping,) we open the door to understanding that vast universe we call a mind.

H8937: Topics on International Development
Difficulty: *
Teachers: Jose Esparza

Do you want to save the world? We will discuss the current issues around the world that can be addressed by international development work such as poverty, global health issues, education, waste management, etc. And how to address these issues effectively in our modern society through policy and projects. Case studies will focus on Africa, India, and East Asia.

H8589: Once Upon a Time, The End
Difficulty: *
Teachers: A L