Splash 2015
Course Catalog

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


Visual and Performing Arts

[ Return to Category List ]

A10066: How to be a Slightly Less Terrible Photographer Full!
Difficulty: *

You love photography, but for some reason things are just not working out. You see gorgeous photos, worthy of the high heavens, but in comparison your photos are the equivalent of potato lumps. Something needs to be done.

No need to fear! Come learn some quick small changes you can do to make your photography astronomically slightly less worse. Pose people to hide their ugly side, clean up the messy background, and STOP USING FILTERS.


Prerequisites
Some photography experience. Will mostly cover composition topics, but a knowledge of basic technical aspects is nice.

A9798: Intro to Cosplay Full!
Difficulty: *

Ever wanted to dress up as your favorite character? Want to try cosplaying but don't know where to start? Come learn about the basics of making a screen accurate costume and some of the tips and tricks to get you started on your first costume.

A10019: Cheerleading 101 Full!
Difficulty: **

Learn some fun cheers and dances! Cheers will be MIT, science, and sports related!

A10087: Crash Course in Conducting - Beginner's Section! Full!
Difficulty: **
Teachers: Aisha Wang

There is a rather infamous analogy that involves comparing the conductor of a large ensemble to a meerkat flailing about and the rest of the orchestra as wildebeest, elephants, and other creatures as depicted in the "Circle of Life". Conducting is about expression, creativity, leadership, all coupled with a deep desire to focus the herd and create art. Come learn how to synchronize your arm flailing to the heartbeats of your musicians, raise a ruckus, and control your ensemble with your eyebrows alone!


Prerequisites
Some musical experience is necessary to follow the class material. Musical experience can be loosely defined as jamming out to the radio, performing a symphony, trash can drumming, and/or watching copious amounts of broadway performances. You should also be willing to experiment with flailing your limbs about and be comfortable with being critiqued by your peers and instructor on your technique. If you have more formal training than this and want a greater challenge, you should check out the advanced version of this class!

A10023: Analyzing Symphonic Music
Difficulty: **
Teachers: Kyle Swanson

Symphonic works are a core element of western classical music, representing some of the greatest pieces of music ever written. Composers spent months (days if you're Mozart) inventing, writing, and rewriting what would become the pieces we know and love today.

We may have a great appreciation for the music when we hear it, but if you open the score of a symphonic work, all you see is a giant mess of notes. How does that over-sized blob of ink turn into the lyrical melodies and inspiring harmonies we can't get enough of?

In this class we'll quickly review some basic music theory terminology and then dive right into analyzing the scores of one or two major orchestral works. We'll look at the overall structure of the work to get a sense of how it's all put together, and then we'll narrow our focus, dig into the notes themselves, and figure out how to construct sensible harmonies that explain just how the music has the wonderful effect it does.


Prerequisites
The ability to read music is required. Knowledge of elementary music theory (major and minor keys, triads, seventh chords) strongly recommended but not required.

A9613: Preparing for Art and Design School
Difficulty: *
Teachers: Steven Faerm

What’s the first year of college like in an art and design school? How is the experience similar/dissimilar to high school art and design? What challenges do students experience and how can they best prepare?

In this presentation, the transitional experience from high school to design school is described based on a year-long research study performed at Harvard University by an Associate Professor from Parsons School of Design. The first year college experience, the future of art and design education, and how students can best prepare for the transition are discussed.

Although this presentation focuses on art and design studies, the general transition from high school to college is discussed.


Prerequisites
None

A10118: Close Looking: Examining Art
Difficulty: **
Teachers: Daniel Richman

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, 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.

A9645: Bookbinding and Printing for Zines and Indie Comics
Difficulty: ***

So you've got your fantastic zine*, or comic, or booklet of artwork finished, and you're ready to share it with the world! The only trouble is...there's only one copy, and it doesn't really look like a book. :(
But never fear! Come to this class and learn the tricks of the indie bookbinding trade. Learn how to make book layouts with nice margins and everything! Discover binding techniques to spiff your books up like stab binding, false perfect binding, and decorative stitch binding. Maybe if we have time, we can even talk about some really wacky ways you can make books, like the flippy book, expandy comic, or one page choose your own adventure! No fancy-pants photo shop required, you'll be able to do everything you learn in this class on an old school photo copier.

*a zine, coming from the last syllable of "magazine," is any sort of independently published booklet. Whether you want to make a comic book, a fan magazine, or an angry manifesto about communism, if you want to print it by yourself on paper, congrats, you're a zinester!


Prerequisites
None!

A9706: Portrait Drawing Full!
Difficulty: **
Teachers: Maeve Hedstrom

This class is for every skill level, from beginner to pro. You will learn how to draw a portrait, practicing by making a self portrait in a mirror. You will learn about factors of portraits including composition, proportion, and shading. There is an optional (volunteer) critique at the end of class. This classroom is a fun, non-judgemental learning environment, for building up portrait drawing skills, building confidence, and having fun!


Prerequisites
None.

A9805: Introduction to Adobe Photoshop & Web Design
Difficulty: **
Teachers: Timothy Ibrahim

Have you ever come across a really ugly website? Thought you could probably make a better one but didn't know how? Maybe you have always wanted to make a logo for your Youtube channel featuring videos of cats sitting in boxes far too small for them.

Whatever your reason, if you want to learn the fundamentals of web and graphic design using the industry standard image editing and rendering software Adobe Photoshop, join us for this barebones introductory session! We will demystify Photoshop's seemingly confounding layout and discuss the vast array of tools at your disposal. We will delve into a short discussion on the basics of web design and demonstrate the initial design stages of a basic website. We will even dedicate some time after our quick introduction for you to work on a project of your choosing!
Whether you've never used any graphic design software before, you're a seasoned Photoshop battler on Reddit, or somewhere in between, you can expect to gain something from this really fun, low-stress course!


Prerequisites
No graphic design or Photoshop experience necessary. Bring a creative and attentive mind!

A9942: Theater Games Full!

Come play theater games with members of the MIT Shakespeare Ensemble! From freeze to zip-zap-zop, it'll be loads of fun!

A10009: Knitting for Beginners Full!
Difficulty: **
Teachers: Lauren Bustamante

Learn how to knit so you can make cute scarves, hats, coasters, and mug cozies for all your friends and family members for the holidays!

A9714: Intro to Musical Improvisation
Difficulty: **

Play an instrument/voice? Want to try/practice/experiment with improv?
No prior improv experience necessary!
No particular style (e.g., Pop, Jazz) is given a privileged role. So please join us for some improvsation games! Depending on the class size, we will divide the class into sections, and a battle of the bands will commence.


Prerequisites
Prereqs: Must be good at listening and responding to others musically. Must be comfortable with avant-garde music.

A9630: Printmaking! Full!
Difficulty: *
Teachers: Clio Macrakis

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

A9925: Shakespearean Language: Make the words your own!
Difficulty: *
Teachers: Joseph Cox

This course will focus on getting students familiar with Shakespearean text and will involve reading and performing his works. We will also cover how to analyze and interpret Shakespearean text. Students are recommended to wear clothes they can move around in for theatre games and warm-ups.

A9610: Juggling 101 Full!
Difficulty: **
Teachers: Ian Chesser

We will teach you how to juggle and much more! This is the perfect class if you want to learn how to juggle or if you want to sharpen your skills. We have talented jugglers on hand and more things to throw in the air than you can wrap your head around.


Prerequisites
None

A9712: It Don't Mean A Thing If It Aint Got That Swing: Swing Dance 101
Difficulty: **

Want to look like cool people from old movies? Swing is an awesome social dance from the 1930s, and you too can learn how to dance it! Come learn the basic steps, as well as some exciting turns, passes, and other flashy moves. We'll also teach you about dance floor etiquette, and everything else you need to go social dancing on your own once you get hooked on swing!

Also, you should probably shoes you can dance in (sneakers are the best), and clothes you can move in. Or, y'know, just show up in your best vintage 1930s outfit. Your choice!

A9801: Alternative Approaches to Music Composition Full!
Difficulty: **
Teachers: Sam Moore

If you've ever tried composing music, you might be used to staring at a blank piece of staff paper, wondering what dots to write next. While this tried-and-true approach has lead to many masterpieces throughout the ages, it is often time-consuming. In this class, we will discuss alternative approaches to composing, from graphical notation to written instructions that are quick . Examples include Terry Riley's In C. Performance of works will take place in class and may include performance of an in-class composition (time permitting). Instruments are helpful but not necessary. Singing---or for that matter any other creative form of noise making---is perfectly acceptable.


Prerequisites
Basic familiarity with instrument and a willingness to perform or sing weird music.

A10080: Learn to Throat Sing
Difficulty: *
Teachers: Steven Keyes

Learn to sing two notes at once! Throat singing is a musical tradition in Tuva and other cultures that involves producing two tones at the same time. This course will include the theory behind throat singing, its cultural significance, and exercises to learn throat singing.

A9736: Introduction to Parody Song Writing
Difficulty: **
Teachers: Lee Friedman

Parodies of songs have long been in existence, as long as songs themselves. In this class we’re going to learn about what makes a good song parody, and create one (or more, depending on time) together as a class.

A9946: Intro to Photography
Difficulty: **

Ever wondered what the heck an f-stop or an ISO is? Have you ever even heard of these words!

This class will teach the basics of photography. We will cover framing, the rule of thirds, shutter speed, exposure, and a whole mess of other factors that go into a fantastic photo.

After learning the basics, we will then go on a photo safari through the jungle of Splash to put theory into practice.


Prerequisites
Use of a camera before is assumed.

A9794: How to Make Craft Foam Armor
Difficulty: *

Have you ever wanted to make costume armor but didn't know how? Or the materials were too expensive? Come learn how to make armor out of nothing but craft foam, poster board, glue, cheese cloth, and paint! You will not only learn about the whole process of making metallic looking armor, but you will also get a chance to start your own project.

A9581: Clothes for Imaginary People: Crash-Course in Costume Design
Difficulty: *
Teachers: E Rosser

Imaginary people need clothes, too! Whether they're on stage, on the screen, or from your favorite tabletop campaign, you can tell loads about a character from the costume they wear. Learn how to convey feelings through line and color, try your hand at some design, and visit a working costume shop!


Prerequisites
None

A9861: Salsa Dancing
Difficulty: **
Teachers: Francesca Majluf

Come learn how to dance one of the most fun partner dances ever! There may or may not be dips involved.

A9897: Knitknitknit Full!
Difficulty: **
Teachers: Haley Cope

Take some time to relax and learn a cool skill. Knitting is a great stress-relief that lets you see some progress as you loop string around and around.

If you already know how to knit, bring a project you're working on and hang out with cool people and some music.

A10198: Crash Course in Conducting - Advanced Section! Full!
Difficulty: ***
Teachers: Aisha Wang

There is a rather infamous analogy that involves comparing the conductor of a large ensemble to a meerkat flailing about and the rest of the orchestra as wildebeest, elephants, and other creatures as depicted in the "Circle of Life". Conducting is about expression, creativity, leadership, all coupled with a deep desire to focus the herd and create art. Come learn how to synchronize your arm flailing to the heartbeats of your musicians, raise a ruckus, and control your ensemble with your eyebrows alone!


Prerequisites
Musical experience is required for the advanced section, as I will be discussing musical terms, watching clips of performances, and handing out sheet music to be read and followed. You should also be willing to experiment with flailing your limbs about and be comfortable with being critiqued by your peers and instructor on your technique. If you have had less formal training, but are still willing to engage in this musical adventure, check out the beginner’s section!

A9820: The Physics of Dance Full!

Come learn about the laws that make turns, leaps and many other dance moves possible and experiment with them out as we dance together!

A9769: Learn to Waltz Full!
Difficulty: *

Elegant? Yes.
Classy? Definitely.

Come learn to dance the waltz so you may impress everyone else with how gracefully you can spin in circles.

A10085: Learn To Knit! Full!
Difficulty: *
Teachers: Lisa Winer, jill singer

Learn to Knit!

Ever wanted to knit your own hat, scarf, or toys for your cat?

It's not that hard! In this class we will learn to knit and purl.

No experience required, just willingness to play with sticks, yarn, and the realization that it will seem awkward at first (with practice, it becomes smooth and relaxing!)

A10204: Math-y Beading
Difficulty: **
Teachers: Vivian Wang

Beads are pretty, but polyhedra are prettier. We'll learn to make buckyballs (a.k.a. truncated icosahedra for math folks or C60 for chem folks) out of beads and string. By the end of the class, you'll have your own shiny geometric trinket to keep! Depending on time and interest, we might learn to make other geometric things...A fractal dodecahedron? Polyhedral carbon nanotori? The possibilities are (almost) endless.


Prerequisites
We'll be working with seed beads (which are pretty small), so a little finger dexterity and a lot of patience will go a long way!

A9709: Intro to Swing Dancing
Difficulty: *

Hey cool cats! Come learn some basic east coast swing moves to impress your friends (and enemies too). Absolutely no dance experience or partner necessary. Wear something comfy, including shoes that won’t go flying off your feet when you’re showing off your ultra-cool moves.

A10194: Chalk Pastel: An Inquiry into Color, Form, and Technique Full!
Difficulty: *
Teachers: Jessica Ulman

Ever wonder how Degas and Da Vinci did it? Come experiment with chalk pastel techniques and learn about color, texture, layering and form. Blending, scumbling, feathering, and more


Prerequisites
All levels of experience are welcome!

A9938: How to Draw People Full!
Difficulty: **
Teachers: Carolyn Lu

Want to design characters for your comic? Draw more realistic portraits? Sketch people in cafes with greater precision?

In this class, we'll go over the basics of human anatomy for art and the various techniques you can use to draw the human body from reference or imagination. Recommended that you have some prior art experience (you've tried to draw more than a stick figure before).

A9609: Chain Mail Weaving
Difficulty: *
Teachers: Miranda Gavrin

This class will teach the fundamentals of making your own chain mail. Learn the basic weave you can use to make anything from keychains and bracelets to a full suit of armor!

A9642: Intro to Comics Theory
Difficulty: ***

Do you want to make comics? Do you like to read comics, but want to try your hand at them? Are you already working on your feature length graphic novel? In this class, we'll talk about what makes a comic a comic, and discuss the way that we tell stories through a strange combination of pictures and words. We'll go over some basics of comics theory, analyze your favorite comics, and then use those tools to make our own comics!


Prerequisites
None whatsoever! There are plenty of great cartoonists who can't really draw!

A10086: Bollywood? Hip hop? Jhumka!
Difficulty: **
Teachers: Lillia Baird

Learn a song or two from past seasons of MHC Jhumka, Mount Holyoke's first bollywood hip hop fusion dance group!
Depending on what the class wants to learn it could be bollywood, hip hop, or something in between. I'll have a few routines prepared for people to vote on.


Prerequisites
Wear clothing you can dance in. Sneakers are optional, and dancing barefoot is also completely okay. No dance experience required.

A9670: Oriental Dancing
Difficulty: *
Teachers: shahd labib

This class will take you through the basic belly dancing steps. By the end of the two hour class, you will know a short dance.

A9774: In Need of Improv-ment Full!
Difficulty: *

Introduction to improvisational theater, fun games, and lots of laughs.


Prerequisites
Willingness to participate

A9863: Stravinsky and the Birth of Twentieth-Century Music: "Firebird", "Petrushka" and "The Rite of Spring"
Difficulty: **
Teachers: Marshall Estrin

From 1909 to 1913, Igor Stravinsky wrote three ballets that would define modern music. In this course we will examine how Stravinsky's "The Firebird", "Petrushka" and "The Rite of Spring" incorporated a century of Russian music, turned it inside out and used the past to create the future.

A9558: Round Singing: Beyond "Row, Row, Row, your Boat"
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.

A10071: Building Blocks of Music
Difficulty: *
Teachers: Nyree Jauhar

Learn to make simple homemade instruments with materials provided in class, or experiment with sound and design your own instrument. Explore melody, rhythm, and harmony using the instruments you've made. Finally, in groups, we'll break down popular songs or create music using knowledge of the three basic elements through the use of your instruments or voices (or whatever else makes a sound). The class ends with a chill jam session in which we all layer our sounds in a loop, with some solo improv. It’s going to be pretty casual, so don’t worry about sounding like a pro.

A10004: Framing Light: Photographic Composition 101 Full!
Difficulty: *
Teachers: Riley Drake

Have you ever felt drawn in to a particular photograph? Has an image
in a magazine or a newspaper ever made you feel like you were part of
a story? In this class, we'll look at some photos we love,
thinking about how the photographers have used composition to tell a
story or bring the viewer to notice something previously unseen. Then,
we'll set out with simple cameras to photograph the world around us.
Finally, we'll look at the images that we have captured, and discuss
our own compositional strategies, what worked, and what didn't. This class will not focus on the technical aspects of photography.


Prerequisites
Interest in photography. Student should bring in two to three photos, from any source, that they particularly like.

A9845: Céad Mile Fáilte: An Introduction to Irish Dance
Difficulty: *
Teachers: Kathryn Buggs

Come learn the basics of Irish dance, music and culture! We'll practice a few words in Gaelic and dance some jigs, reels, and ceilis. We may even have a fierce ~Irish dance-off~!


Prerequisites
Please wear tennis shoes or socks that won't slide on the floor. No dance experience necessary!

A9773: Learn to Swing
Difficulty: *

Learn the dance that makes your grandparents feel young again!

Swing is a fun and playful dance filled with fun and playfulness!

A10213: Make your first YouTube video: Fun with green screens
Difficulty: *
Teachers: Jim Flannery

In this course you will learn how all the famous (and not so famous) YouTubers make their videos. I will walk you through filming, audio, green screens, and more. You can see some of the physics comedy sketches I've made at wtfisx.com. Most of them use green screens. I also run monthly video contests for high school students at OpenSourceHigh.com!


Prerequisites
Interested in having fun

A9770: Needs Improv'ment

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!

A9657: Acting in the Moment
Difficulty: *
Teachers: Adam Strandberg

In this class, we'll explore acting exercises to help get yourself out of your head and into the present moment. We'll do physical exercises followed by nonsense word improv, and wrap up with some Meisner technique.

The class is open to anyone who is willing to commit to things that might make them look really silly.

A9779: Plush Toy Workshop
Difficulty: **
Teachers: Shain Neumeier

In this workshop, participants will learn how to make a plush toy of a humanoid character. This will teach the basics of how to make the body form. Students will receive basic supplies like needles, thread, fabric and polyfil, and patterns for the body form, face and clothing for future reference.


Prerequisites
Basic sewing skills are helpful, but not strictly necessary.

A10212: Affirmative Art
Difficulty: *
Teachers: eirik trondsen

Affirmative Art is a way for young people to visualize their dreams and aspiration. It is a tool for self reflection and what their future may look like. Using images, colours and if need be words. It is a fun and light way of getting closer to what we truly want in life, and therefor very useful. It normally ends with a presentation of each art work to explain it and discuss it.

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

Performers' Practice Circle returns!

The rules are simple:

After a brief warm-up, you get five minutes to perform something. We go around the circle and take turns. You can choose whether or not to get feedback, but everyone must perform something.

Your voice is your instrument. (Or your body, if what you want to perform is something like mime.) Time to practice using it.


Prerequisites
Come with something to perform!

A9954: Exploring Different Styles of Art
Difficulty: *

Do you love drawing or painting? Does it relax you and make you happy? Or is it simply something you've always wanted to try? If so, join our class during SPLASH to explore different styles of art (such as perspective or pointillism). The class will be offering multiple times (with different material each time) throughout the weekend in 2-hour blocks. The class will be a mixture of instruction and application, but it will mostly focus on the application part. So come and have fun immersing yourself in art!


Prerequisites
Eagerness to learn and be creative!

A9694: Mathematical Music: The Revolt of Serialism
Difficulty: **
Teachers: Marshall Estrin

Defying centuries of western musical tradition, a revolutionary group of twentieth-century composers created a new language of music based not only on sonic artistry but mathematical beauty. Learn how Arnold Schoenberg, Alban Berg, Anton Webern, Bela Bartok, Luciano Berio, Pierre Boulez and others transformed the world of modern music.


Prerequisites
The ability to read music is helpful but not necessary.

A9857: The Symphony Full!
Difficulty: **
Teachers: Katherine Young

This class will examine the form and evolution of the symphony from its origins to the 20th century. We will spend time listening to excerpts from symphonies by Mozart, Beethoven, Tchaikovsky, Mahler, and more.


Prerequisites
Classical music background is useful but not necessary

A9951: Piano Sonatas of Beethoven
Difficulty: **
Teachers: Ray Hua Wu

This class discusses the variety and evolution of Beethoven's musical style through the thirty-two piano 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.

A10099: Learn to Cross-Step Waltz!
Difficulty: **
Teachers: Katarina Dutton

The Cross-Step waltz is an elegant and modern form of waltzing! Come learn the basic step and a few variations in this beginner friendly class.

This is a social dance class. Please wear comfortable clothes, and shoes (or bare feet) you can dance in.


Computers and Programming

[ Return to Category List ]

C10210: Intro to Algorithms: How to Do Stuff and How Hard That Stuff Is Full!
Difficulty: **

Do you want to convince your coder friends that you're smarter than them? Be a totally ninja programmer? Understand the fundamental ideas that make things like Google Maps work? Know the most efficient way to sort your collection of coffees? Land a job at Google? Just learn some really cool stuff? Then take this class!

Algorithms are instructions for doing stuff. Like finding the fastest route to Starbucks or computing a square root. The theory of algorithms is what's used to make the modern world do its thing. Algorithms transcend computers and programming; they also emerge in the behavior of the natural world. In this class, we'll cover several important and fundamental algorithms like sorting (how do I organize my coffees?), searching (how do I find the coffee I want?) , graph traversal (how do I get to the coffee-store?), some numerical approximation techniques (how do I cheat at calculus homework so I can go get coffee?), genetic algorithms (how can I find the optimal coffee recipe?) and simulated annealing (another way to find optimal coffee recipes). We may not have time to get to everything, so which of the more advanced techniques we cover may be determined by class vote. We'll also learn the basics of complexity theory, which tells us how hard certain problems are to solve, and how fast a given algorithm can solve them. Implementations of these algorithms will be discussed hands-on using Python, and we may have a programming competition where you can win PRIZES! Like CHOCOLATE and COFFEE!


Prerequisites
Basic knowledge of Python programming. What you can learn in a couple hours on CodeAcademy is fine. You do the coding, this class will provide the theory! Algebra will also be helpful. Calculus not at all required but may allow you a deeper understanding of many of the topics in this class.

C9998: An Introduction to Penetration Testing Full!
Difficulty: **

Is your network secure? Can you test it? How? We'll attempt to answer these questions and more by introducing the art of penetration testing, a method of scanning and testing networked machines for security issues. We'll start by covering some networking basics and eventually move our way up to discussing the anatomy of a security vulnerability. From there we'll go over some common tools of penetration testing and discuss how you can apply these when diagnosing security risks on your own devices. To wrap up, we'll demonstrate what a security vulnerability looks like from a series of networked virtual machines.


Prerequisites
A basic knowledge of the unix command line

C9832: Building Your Own Website: Intro to HTML & CSS Full!
Difficulty: **
Teachers: Rachel Wang

Have you ever wanted to make your own webpage but didn't know where to start? We'll start at the very basics, learning what HTML and CSS are, and learn step-by-step how to build your own website. You'll leave this interactive workshop with a website you can show your friends! This workshop is beginner friendly -- no programming experience needed!


Prerequisites
Make sure to bring a laptop to this hands-on workshop!

C10095: How To Be A Systems Engineer Full!
Difficulty: *
Teachers: Hope Harrison

The world is controlled by computers - but how? How do you write a program on your computer that interacts with the real world? In this class I will teach you the programming of real world systems from the basics and show demos using real hardware!

C9785: Functional Programming in Haskell
Difficulty: ***

Come learn the basics of Haskell and why functional programming is awesome!


Prerequisites
Be comfortable with at least one programming language.

C9843: 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!

C9719: Learning Computer Science Through Tic Tac Toe
Difficulty: *
Teachers: Katy Muhlrad

Want to learn computer science but don't know how to program? No problem! Computer science is more than just coding, and today you can learn some of it through the familar game of tic tac toe. This is a fun and interactive class suitable for anyone, regardless of prior experience with computer science.

C10157: How This Website Works Full!
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!

C10125: Grammars and automata and Turing machines, oh my!
Difficulty: **

Computers, in theory but not in practice.


Prerequisites
Some interest in computing and mathematics

C10158: Computer Architecture: How Processors Work Full!
Difficulty: **
Teachers: Taylor Sutton

Inside your computer, phone, fancy TV, newish car, digital camera, printer, etc, there's a small collection of electronics called a processor the device work. We're going to see how processors themselves work.

We're not going to talk too much about the low level electronics - mostly we'll be one level of abstraction up, using logic gates. By the end you'll have an idea of what's going on inside your computer as you use it.


Prerequisites
None!

C10152: Designing Fault Tolerant Applications Full!
Difficulty: **
Teachers: Favyen Bastani

Servers inevitably fail: whether it's filesystem corruption, power loss, or a fiber cut, eventually something will happen that brings the server down. In large-scale services that involve thousands of servers across multiple datacenters, servers may be failing every hour.

To remain online with regular failures of individual servers, applications employ a variety of fault tolerance techniques. We'll focus on replication approaches and will consider primary-backup replication, state machine replication with Paxos, and sharding. On the way, we'll build a fault tolerant messaging application in Golang.

C9589: Robust Cooperation in the Prisoner's Dilemma: Program Equilibrium via Provability Logic Full!
Difficulty: **
Teachers: Jason Gross

The Prisoner's Dilemma is a standard example in game theory of a situation in which two "rational" players will choose not to cooperate, even though they would both be better off if they cooperated.

However, if both players are mind readers, then it is possible to construct rational agents that cooperate without going in to infinite loops.

C9850: Who is Bobby Tables? Exploring Security with XKCD Full!
Difficulty: ***
Teachers: Zachary Zagorski

What makes a "good" password? How did Heartbleed work? And who is Bobby Tables?
We'll discuss some topics at the intersection of computer security and Randall Munroe's XKCD, including SQL injection attacks (and how to prevent them), creating good passwords (and techniques for guessing bad ones), and the Heartbleed bug, plus additional topics as time allows.

C9635: Why Computer Science?
Difficulty: *
Teachers: Jessica Pointing

Do you know anything about Computer Science? If not, join this class! We will go over what computer science is, what you can use it for and we might even do some programming.

C9704: How to Analyze Big Data Full!
Difficulty: **
Teachers: Ang Cui

Have you wondered what the buzzword "big data" is all about? Have you collected a large amount of data and wondered how to deal with them?

In this introductory class, we will demonstrate how to analyze data using the R programming language. We will go through some basic statistical methods and machine learning algorithms. You will get a chance to write code and make pretty figures. No prior programming experience is required.

C9876: Intro to Animation & Game Making in JavaScript Full!
Difficulty: **
Teachers: Martin Schneider

Enjoy playing games? Enjoy playing with computers? Let's combine the two!

We'll explore the basics of JavaScript and programming, and then talk about animation, drawing, and user interaction. Make pong, an avoider game, or something of your own invention!

No previous programming or JavaScript experience is required. If you have experience, that's great too - we'll just make even cooler stuff (and you can learn some JS drawing libraries).

You'll get to take everything you make home and even upload it to the web if you like.


Prerequisites
Algebra

C10141: Consensus
Difficulty: **
Teachers: Favyen Bastani

Consensus, the problem of getting many machines to agree on one outcome, is a fundamental problem in distributed systems. For example, if you're implementing a high availability scheduling system, you don't want two clients to be able to schedule the same resource; the machines in your system need to agree on which client scheduled first.

In this class, we'll explore consensus and its applications under several scenarios, including some where consensus is not possible. We'll end by considering Paxos, an eventual consensus algorithm widely used in practice.

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

Ever wondered what Linux is? Why people use it? How to use it yourself? Find out!

C9629: 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!

C9599: Löb's Theorem: From the prisoner's dilemma to the halting problem, and back again
Difficulty: ***
Teachers: Jason Gross

What do the prisoner's dilemma, the halting problem, and Gödel's incompleteness theorem have in common? Löb's Theorem!

Come learn how Löb's theorem robust enables cooperation in the prisoner's dilemma! Come learn how, via the Curry-Howard isomorphism, the proof of Löb's theorem is essentially the same as the proof that the halting problem is undecidable! Come learn how Löb's theorem trivially proves Gödel's incompleteness theorem!


Prerequisites
Familiarity with basic coding; familiarity with what it means for a problem to be undecidable

C10121: 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.

C9647: How Computer Systems Break
Difficulty: **
Teachers: Megan Belzner

It's been said that "complex systems break in complex ways", and computer systems are getting more and more complex every day. So how do they break? What can go wrong when they do? And what happens when someone tries to exploit these errors? We'll take a look at some major system failures over the past several decades, how they could have been avoided, and why building an infallible computer system is so hard.


Prerequisites
If you know how to represent numbers in binary and/or what integer overflow means, you're probably good. If you don't, you should still be able to understand the high-level ideas, you just may not get all the details.

C10145: Terraria Modding with Lua
Difficulty: **
Teachers: Kelvin Lu, Willie Zhu

Know basic programming skills?
Love playing Terraria?
Want to learn how to make mods without worrying about that pesky depth dimension (*cough* Minecraft *cough*)?

Terraria is a 2D sandbox game with infinite potential–especially with you, the modder, at the coder's helm.
Learn how to write Lua and create awesome mods to share with your friends!


Prerequisites
Some knowledge of programming is preferred. Bring a flash drive to take your creations home!

C10123: Simulating the World in your Computer
Difficulty: **

Ever wanted to see the planets orbit from up close, or understand how heat flows through a metal plate? In this class we will introduce you to Python and tackle hard problems to solve by hand using the computer. Come and join us build our own solar system!

C9626: Interactive Theorem Proving: The Law of Excluded Middle, Double Negation Elimination, and Peirce's Law
Difficulty: ***
Teachers: Jason Gross

Are you interested in getting computers to do your math homework for you? Are you confused about what constitutes a "valid" proof? Are you interested in seeing computers check your proofs? Come experiment with the interactive proof assistant, Coq!

I'll begin by talking a bit about the history of computer-assisted proofs, including the first proof of the four color theorem and the recent formalization of the odd order theorem. Then, you'll experiment with simple logic proofs in the Coq proof assistant, while I walk around and answer questions and give help.

The central puzzle of the class will be proving the following three statements equivalent:
1. $$\forall P, P \vee \neg P$$
2. $$\forall P, \neg\neg P \to P$$
3. $$\forall P\ Q, ((P \to Q) \to P) \to P)$$

Near the end of class, I'll tell a story about how to use a time machine to solve P vs. NP (or to solve the Riemann Hypothesis); this story will prove that $$3 \Longrightarrow 1$$.


Prerequisites
You should understand basic logic (if you can do the puzzles on http://www.math.hawaii.edu/~hile/math100/logice.htm, you'll be fine). You should understand the programming concepts of "function" (or "procedure" or "method"), "function arguments", "if statement", and "data types" (such as integer, string, double, etc.). You should understand what it means to prove something (reading and understanding http://www.mathcamp.org/prospectiveapplicants/quiz/proofs.php should be sufficient).

C9991: Building M.E.A.N Web Applications
Difficulty: **

No, we're not going to build applications that are actually mean, however, we will talk about building web applications on the M.E.A.N stack! What is the M.E.A.N stack you ask? Why it's a amazing collection of software that lets you build sleek, modern web applications with amazing speed. M.E.A.N stands for Mongo (A really awesome database), Express (A framework for assembling web applications in Node), Angular (A front end framework for web applications in Javascript) and NodeJS (A JavaScript engine for JavaScript in the backend). Sound like a lot? It sure is! We'll start with the basics of setting up Node and gradually move up the chain, touching on Express, Angular and Mongo as well as talking about what makes each so unique. By the end of the class, we'll have covered all you need to know to start building you own web apps on the M.E.A.N stack.


Prerequisites
A basic understanding of some SQL based database and a working knowledge of JavaScript will be helpful.

C9933: How To Program A Factory Full!
Difficulty: **
Teachers: Hope Harrison

In this course, we will talk about how to program BIG things - things that are really complex, like entire factories or research systems. We won't focus on any particular programming language, but rather on principles that you can use for the rest of your (engineering) life to program all kinds of systems in whatever language you choose. Topics include: object oriented programming, inheritance, and the actor model.

C9653: Introduction to Machine Learning and Machine Ethics Full!
Difficulty: **
Teachers: Yuancheng Yu

Machine learning studies and designs programs that learn from experiences to improve performance, just like us, hopefully. We will discuss some classic methods, its applications, potential, limitations, and some ethical concerns. No programming experience necessary.


Prerequisites
Willingness to proactively participate in discussion and ask questions. Optional: your favorite pencil(s), scratch paper/notebooks, a laptop.

C10062: Splash Hackathon
Difficulty: **

Whether you're new to programming or have experience, we'll help you learn new things and get better!

This will be a self-paced programming workshop, where you get to work on whatever you want -- either pursue your own idea, or let us suggest a project. We'll be here to guide you if you get stuck. If you've never programmed before, we'll have suggestions for resources to use to get started.

We'll be in a computer lab, but feel free to bring your own laptop (just make sure to keep an eye on it – Splash is hectic, and it's easy to lose things!).


Prerequisites
None.

C9584: Promiscuous Mode: Network Protocol Analysis
Difficulty: *
Teachers: Harvey Yee

Do you want to be in Promiscuous mode? You may if you are a hacker or 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 class room, 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
A sense of curiosity, adventure, and fun!

C10170: Creating Games: Using Unity and Practical Skills to Create the Impractical
Difficulty: **
Teachers: David Perera

Do you love games? Have you ever been playing and thought to yourself "Man, it would be so cool if there was a game that did (x, y, and/or z)? Learn about the thought processes and skills you need to develop your own games using Unity, as well as a demonstration to show you how to create a prototype game starting from nothing. Come take the first steps into the wonderful world of game dev!


Prerequisites
Coding experience helpful, but not necessary

C9818: ScratchMIT Full!
Difficulty: **
Teachers: Ahaan Rungta

Scratch is a free programming language and online community where you can create your own interactive stories, games, and animations. In this class, we'll learn the basics of Scratch!

C9984: Build an Enterprise Grade Network with Linux Full!
Difficulty: **

Enterprise grade networks often conjure up images of expensive hardware, fancy software licenses and datacenter's full of servers. While much of that is true, we'll be showing you how it's possible to build your own (Mini!) enterprise grade network using only Linux virtual machines and a bit of basic networking hardware. We'll start by covering some networking basics including network structure, IP assignment, virtual networks and routing terminology. We'll also go over a bit of simple networking in Linux and some of the commands we can use to do so. Then we'll dive into a variety of services and cover as many as time allows. We'll try to talk about pfSense, DNS, DHCP, Samba and Apache2. If you've never heard of any of those, fear not!


Prerequisites
Some basic Linux knowledge would be helpful

C9855: Intro to Image Processing
Difficulty: **
Teachers: Kelly Liu, Nalini Singh

Ever wondered what Photoshop is actually doing when you edit your pictures? Come learn the math behind some basic image processing, make hybrid pictures of you blended with your friends, and learn to make cool filters like the ones you use on Instagram.


Prerequisites
Very basic coding ability (we will be using Matlab, but as long as you have some prior experience in any language, you will be fine).

C9828: 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.

C10107: 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.

C9674: Programming For A Living: What They Don't Teach You In School Full!
Difficulty: **
Teachers: John Gregg

I've been doing this for a long time, and there is a lot more to doing it happily and well than clever coding. This is the talk I wish I could have heard when I was closer to your age.

C10195: Intro to Machine Learning Full!
Difficulty: **
Teachers: Matvey Genkin

Computers these days are doing some crazy things: driving cars, speaking English, and even making artwork.

We couldn't have taught them all that, of course. They had to figure some of it out for themselves.

In this class, we'll take a mathematical perspective to show that the ideas behind these achievements are not very hard to understand.

I'll explain the basic ideas of machine learning and dive deeper into some of the algorithms, starting with logistic regression, and (time permitting) build up to neural networks and Google's Deep Dream.
I'll try to strike a balance between rigid mathematics, hand-wavy philosophizing, and cool-looking pictures.


Prerequisites
Programming, matrices, calculus would all be nice, but are not required; I won't leave you behind.

C9737: How to Program a Peanut Butter and Jelly Sandwich
Difficulty: *
Teachers: Matthew Kolosick

Come learn how to program without ever touching a computer! Along the way we will hopefully create some delicious sandwiches and learn about how programming runs much deeper than computers.

ALLERGEN INFORMATION:
Course contains peanut products.

No programming or computer experience required!

C10113: Introduction to the Command Line/Terminal
Difficulty: **

Most people use graphical interfaces and a mouse when working with computers. While this makes computers pretty and user friendly, it also makes them more limited, especially for power users like you and me. It's also pretty lame. Take this class to learn to use the command line (which you might know as Terminal or Command Prompt), specifically with the bash shell. We'll cover the basics of use and a bunch of commands that will help you work more efficiently and be more legit.


Prerequisites
Typing skills probably

C9688: How to Hack Minesweeper
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
At least a year of programming experience in any of Java, C++, C#, Python, etc.

C9830: Learn Every Programming Language Full!
Difficulty: *

Ever wanted to learn how to program, but weren't sure which language to learn? Try learning ALL of them! Or, at least a few during this quick class, as we compare and contrast Java, Python, Haskell, and more!

C9906: 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
You've got to know polar and rectangular coordinates: $$(r, \theta)$$ and $$(x,y).$$

C9871: How do operating systems work?
Difficulty: **
Teachers: Marcus Boorstin

Why do we need operating systems? What do they do? How do they do it? We'll discuss some of these ideas, and then look at some actual code.


Prerequisites
You'll probably get more out of this class if you know a bit of C.

C9685: Cryptographers vs hackers... who'll win?
Difficulty: **
Teachers: Le Nguyen Hoang

For centuries, cryptographers have tried to secretly send encoded messages, and hackers have tried to crack the messages. In those days, cracking a message could win wars and save millions of lives, as Turing did. More recently, this opposition has been formalized within computer science, and we understand better than ever the essence of it... but we are still largely ignorant. In this class, I'll mention historical encryption methods, as well as modern open questions every computer scientist dreams to have the answer to.

C10102: Intro to the command line
Difficulty: **
Teachers: Zoe Snape

Have you ever wondered how people used computers before graphical user interfaces? The answer is with a command line interface. A CLI is a powerful tool still used today to control a computer just by typing! Take this class to learn the basics of how and why to use the command line.

C10078: Writing Shorter Programs
Difficulty: **
Teachers: Isaac Grosof

Learn how to write short, elegant code. Squeeze all of the redundancy out of your programs. Find out about powerful primitives, and powerful ways to combine them. We'll examine Code Golfing, Functional Programming and more.


Prerequisites
Programming experience in any language.

C9590: What is a "what if"?
Difficulty: **
Teachers: Jason Gross

Say there's a $5 bill and a $10 bill on a table. You can take either one of them.

Which would you take?

The $10 bill, right? What if you took the $5 bill?

This is a surprisingly subtle question, especially when you consider the fact that you are a good decision-maker, and so must have had a good reason to take the $5 bill if you took it. It's subtle enough that many decision theories get it wrong. Come learn about four decision theories (evidential, causal, timeless, and updateless), and about the decision puzzles that demonstrate why none of these is an entirely satisfactory answer to the question "What is a 'what if'?"

C9958: Advanced Functional Programming

Oh sure, you could write a program that runs over all the elements of a list and does something, but that's not interesting. How about something that iterates over any data structure? Or a function that runs backwards? Maybe we'll even make the "printf" function type-safe. Monads and typeclasses will be among the easier things we cover in this class. This class will be taught in Haskell, but the concepts covered are more general.


Prerequisites
Some functional programming experience. You should understand idioms such as map, reduce (aka fold), tail recursion -- we will move past these quickly into more advanced topics

C9567: Learn to make iPhone Apps!
Difficulty: **
Teachers: Ben Cootner

In this course I will be teaching you how to make apps for iOS devices. First we will start with the basics of Apple's new language Swift. We will then learn how to use Storyboards in Xcode and finally finish the class by making an actual app.


Prerequisites
Basic programing knowledge (for, while, if) are extremely useful, but we will review them briefly.

C10016: Stack Hacks: 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. As an appetizer, we'll cover the basics of TI-BASIC in class.

For our main course, 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.

There will be opportunities to write and run code in class -- so if you have a TI calculator, please bring it. If you do not, you can download a TI calculator emulator to your phone (yes, there's an app for that) or to your computer, or you can write code with paper and pencil -- you'll still be able to follow along and learn.


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.

C10076: Bitcoin: The Basics
Difficulty: **
Teachers: Connor Duffy

Blockchain. Coinbase. Mining. You've heard all the bitcoin buzzwords -- but what do they actually mean? In this class, we'll survey the tumultuous history and bright potential of the first-ever cryptocurrency, bitcoin; dive into the technical underpinnings of bitcoin and its companion public ledger, the blockchain; and discuss how you -- yes, you -- can participate in this cashless and bankless revolution taking the worlds of finance and distributed computing by storm.


Prerequisites
Strong understanding of high school algebra required; basic understanding of public-key cryptography recommended but not required

C9821: Computer Behind Pixar
Difficulty: **

What does it mean to 'draw' or 'model' an object inside a computer? How do computers see objects? We will learn about fundamental concepts in computer graphics and the science and programming behind computer images and animations.


Prerequisites
Interest in computers and science Basic math

C10156: 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. If you have programmed with Python before, you probably already know all the material that will be covered in this class.

C9735: How to be Artificially Intelligent
Difficulty: ***

How did a computer beat a grandmaster at chess? How does a robot explain to you that Macbeth is a play about revenge, even if the word isn't mentioned to it?

Learn about classic artificial intelligence algorithms and understand more about your own ways of thinking.

C10040: Introduction to Image Processing
Difficulty: **
Teachers: Jing Lin

Come learn about different ways to process images for computer vision! We'll be going over different techniques involving Gaussian, Laplacian, Steerable and Gabor convolution filters. Then a demonstration will be shown for applications such as edge detection, image sharpening, Laplacian blending, and hybrid images.


Prerequisites
Some understanding of linear algebra.

C10132: A Class of Sorts
Difficulty: ***

Say I give you a list of numbers and tell you to sort them. While this may seem like a trivial task, computer scientists have been analyzing and identifying the best sorting algorithms for over 50 years. We'll cover the basics of some of the most famous and efficient sorting algorithms, which play a key role in a wide variety of computer systems we use on a daily basis. Along the way you'll learn the fundamentals of analyzing algorithms, and how to think like a true computer scientist.


Prerequisites
Familiarity with programming concepts in any language is recommended, but not required

C9689: How to Make a Twitter Bot
Difficulty: **
Teachers: alyssa smith

Twitter bots are pretty cool. They can say random things (sometimes meaningless; sometimes surreal; always pretty amusing). They're also not that hard to implement in Python. We'll talk about different examples of Twitter bots, things to be aware of when making a bot, and the math (yes, real math) behind many Twitter bots you see online.


Prerequisites
Be comfortable programming in Python (if you know how things like for loops and dictionaries work pretty well, you should be fine.) You might also want to have a basic grounding in probability, but that's not a hard requirement.

C10025: Animation Academy: Parametric Modeling
Difficulty: **
Teachers: Emily Salvador

Learn how to parametrically model lego bricks and other fun objects in OpenSCAD. We'll also talk about how film studios use computer programming to make better movies.

C9753: Designing the Game of Life: Implementing Cellular Automata in Python
Difficulty: ***
Teachers: Srinivas Kaza

Ever heard of Conway's Game of Life? No? Well, come find out what the world's most popular zero-player game is all about, and even implement it yourself! You'll have the opportunity to write Python code to play the Game of Life, and discover other (even more interesting) automata that can model diverse physical behavior from snowflakes to sea shells. We'll also discuss multiple ways of implementing the game, and exploring various patterns which can arise.


Prerequisites
Basic understanding of Python or a similar language

C10127: CDNs: The Hidden Companies Handling 40% of the Internet Full!
Difficulty: **
Teachers: Alex Dehnert

What companies handle the most web traffic? You'd likely guess Google, Netflix, Facebook... household names. However, about 15-30% of the world's web traffic is handled by Akamai, a company that the vast majority of Internet users have probably never heard of.

Akamai is what's known as a content delivery network -- a company that offloads bulk traffic (like images or videos) from servers run by household names like Facebook, providing higher performance and availability and letting those companies concentrate on their product.

We'll be talking about how CDNs like Akamai work: What makes a request fast or slow? What's the relevance of the cache hit rate? How do CDNs decide which servers should handle which requests? What can a CDN do to accelerate dynamic content?


Prerequisites
None.

C9909: Cryptography and Security Capture the Flag

Want to learn about cryptography, computer systems security, and networks?

Come to this class, participate in a capture-the-flag contest where you will try to find and exploit vulnerabilities in various systems--teams will try to solve various challenges for points and prizes.


Prerequisites
Some amount of programming experience would be helpful, but not required.

C9742: Compilers: Theory and Practice
Difficulty: **
Teachers: Gurtej Kanwar

In this class we will learn how to write code that lets other people write code!

Compilers are programs that accept a program in some code language and reduce that program to an equivalent representation in a lower-level language. For example, the GNU C Compiler (GCC) accepts C program files (text) and can output binary executable files which you can then run on your computer!

As you may imagine, compilers are as complex as they are powerful. We will discuss first how to break down the functions of compilers. Then, with any remaining time, we will delve into various properties of compilers that we can play with to get different behavior.

Even if you are not interested in writing compilers for life, understanding how they work makes you a much better programmer!


Prerequisites
Knowledge of ANY programming language would be very helpful.

C9591: An Introduction to Java and Object Oriented Programming Full!
Difficulty: ***
Teachers: Ryan Jerue

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.


Prerequisites
Knowledge of basic Algebra

C9592: Making a Minecraft Mod with Java and Forge Full!
Difficulty: ***
Teachers: Ryan Jerue

Interested in computers?
Want to make a cool item in Minecraft?
Do you know basic programming skills?

Then this course is for you! In this class, we will be creating basic items in Minecraft for you to use in your game! Reinforce your programming skills through practical object-oriented programming by making swords that strike lightning or create an explosion!

At the end of this class, you will have the code for your item as well as a JAR file that you can use at home or give to your friends!


Prerequisites
The ability to write code, preferably in Java. Understanding of object-oriented programming. Bring a flash drive if you can. I can not stress enough that you must know programming. Otherwise, you will have difficulty understanding the contents of this class!

C9799: Intro to MATLAB
Difficulty: **

Have you ever wanted to learn programming, but just found it too intimidating? Are the only languages you know ones that involve opening your mouth and speaking? 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 and doing other fun projects. 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!

C9902: Build Your Own Fractals! Full!
Difficulty: **
Teachers: Ian Clester

Hey! Do you know about fractals? Do you think they look pretty cool? Would you like to build your own? Have any interest in programming? Want to learn about a language with homoiconicity and a whole lot of parenthesis? Wonder why I'm asking so many questions? You should sign up for this class? Wait, that last one wasn't supposed to be a question; you should sign up for this class!


Prerequisites
Some programming familiarity helpful but by no means required.

C9978: Do-it-yourself Programming Language Walkthrough Full!
Difficulty: ***
Teachers: Ziv Scully

Come learn the basics of how interpreters are made. From start to finish, we'll walk through the implementation of a simple programming language. As a completely intended side effect, we'll also learn about functional programming, a style of programming that lends itself particularly well to this sort of task.


Prerequisites
You should know how to program in at least one language (doesn't matter which).


Engineering

[ Return to Category List ]

E9776: What is the Fourier Transform? Full!
Difficulty: ***
Teachers: Jimmy Mawdsley

We will discuss the Fourier Transform, its use as a tool for analysis, and some engineering applications.

E9936: Make Your Own Rockets! Full!
Difficulty: *

Come learn a little about rocket science as we design and build our own miniature rockets for blast-off on Killian Court! We'll teach a little bit about the science and engineering behind rockets, and then let you guys build and test your own using alka-seltzer and film canisters!


Prerequisites
None

E10215: Build a Bridge! Full!
Difficulty: **
Teachers: Julia Hogroian

Ever wonder how bridges and buildings stand up? Come learn about the basics of civil engineering in a fun way! We'll be building bridges and testing them to see how much they can carry in a fun design competition with prizes!

E9890: Really cool airports
Difficulty: *
Teachers: Anagh Tiwary

Come learn about some really neat airports and statistics about airports all over the world!


Prerequisites
Should enjoy airports (not required though)

E9995: Nylon Highway Full!
Difficulty: ***
Teachers: Riley Drake

You're hiking along the snowy terrain, and then suddenly, unexpectedly, you fall into an ice crevasse. Your friends peer into the crevasse and see that you are conscious, and they want to save you. They consider throwing you a line, but they also want to avoid falling into the crevasse themselves. As you slip out of consciousness, you yell up the crevasse "three-to-one haulingggggg". Your friends look at each other. They have no idea what that means.

We'll learn how to haul and hoist and gain mechanical advantages on ropes, using a combination of practices from outdoor climbing and industrial rope access manuals.

E10180: Security for the Internet of Things
Difficulty: **
Teachers: Lisa Ho

What do smart lightbulbs, fitness devices, and baby monitors have in common? They're all players in the Internet of Things, the buzzword people are applying to the rise of small, connected devices. Although these devices have the potential to make many everyday objects easier to use, they also open us up to new privacy concerns. This class will talk about the technical difficulties of keeping data from these devices private.

E10209: What Do Mechanical Engineers Do All Day?: Compressor Selection 101
Difficulty: **
Teachers: Marianne Olsen

Interested in engineering, but have no idea what engineers do on a day-to-day basis? Well, even people studying engineering here at MIT aren't entirely sure. But come learn about one specific intern's experience doing engineering office work, and find out about how oil companies pick compressors and drivers for their natural gas platforms!


Prerequisites
None!

E9597: Engineering Design Challenge! Full!
Difficulty: **
Teachers: Anne LoVerso

Work in teams to solve a problem with a given set of weird materials. Have fun!

E9795: User Centered Design Challenge!
Difficulty: **

MIT Design For America will be teaching the user centered design process. Students will then be put into groups and given a design challenge with unique constraints and materials to solve the challenge!

E10130: Tiny Technologies: a Tour of Nanotechnology
Difficulty: **
Teachers: Anubhav Sinha

Are you interested in nanotechnology? What about designing things? Then this is the class for you!

In this class, we'll talk about emerging nanotechnologies. We'll talk about what is and isn't possible and future possibilities. We'll also spend some time brainstorming and coming up with creative ideas for the future.

E9848: Exploring Aerospace Full!
Difficulty: *

Come and learn about exciting topics relating to aeronautical and astronautical engineering! We'll talk about current research, fascinating phenomena and fundamental principles relating to aerospace. Hosted by MIT's Women in Aerospace Engineering group.

E9986: Alarms Full!
Difficulty: ***
Teachers: Riley Drake

Alarms are everywhere! Given their prevalence, it's probably alarming how little you know about alarms. We'll go over some classic alarm circuits. We'll also learn about interesting failure methods for alarms connected to the internet and biometric sensors.

E10203: Speaker building Full!
Difficulty: **
Teachers: Emily TenCate

Why do some speakers sound really good while others sound really bad? How do speakers *actually* make sound? In two hours, we'll go through the basics of how speakers work, tear apart a bad speaker, and make our own voice coils and speaker cones!

E9585: How Combination Locks Work
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.

E9913: Questions about Living in Space and Future Space Settlements Full!
Difficulty: **
Teachers: Bruce Mackenzie

Bring your questions about how we might live in space, on Mars, on asteroids, on moons of planets, or on Luna (what Earthlings consider ‘the Moon’,
forgetting that there are lots of moons). I will try to answer them, and maybe throw some questions back at you. Preference for questions about how to live in
space, construct spinning space settlements for artificial gravity, grow
food, find air and water, stay warn or cool, etc. There will be little math or equations, just general information.

E9686: The Mechanics of Twisty Puzzles
Difficulty: **
Teachers: Matt Bahner

Ever wonder how Rubik's Cubes work? There's a whole science behind how twisty puzzles mechanically function. This course will show the types of twisty puzzles that can and do exist, and take a look into their mechanisms.

E9899: Rockets!

Come learn about rockets and how they work! Hosted by members of the MIT Rocket Team.

E9768: How does Wi-Fi work?
Difficulty: ***
Teachers: Jimmy Mawdsley

Come learn a bit about signal processing in the context of Wi-Fi communications. Focus will be on the physical layer communication schemes used in the Wi-Fi standards.

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

Work in teams to solve a problem with a given set of weird materials. Have fun!

E9668: How to Design and Build Structures
Difficulty: **

How engineers design structures?
What do I need to design a building?
How are buildings built?
Do you know how to build foundations?
Should we use concrete or steel?
If you want to know how engineers design and build buildings, come to this class!

E9687: How It's Made
Difficulty: **
Teachers: Kristina Schmidt

Have you ever wondered how every day items around you are made? If so, you came to the right place. We'll go through most major manufacturing techniques, and you'll leave understanding how everything is made, from plastic bags to iPhone cases.

E10201: How to make a trigger timer circuit with the Casio F-91W Full!
Difficulty: ***

Ever wonder how to make a timer circuit that sets off at a particular time? Come learn how with an inexpensive digital watch (the Casio F-91W). Every student will get an F-91W and solder up a timer circuit, and we'll have an array of buzzers, motors, and spinners you can set off with your timer.

See how Al-Qaeda does it, to demystify what shouldn't be scary and learn about how easy it is to make timers, especially in light of cases like Ahmed Mohamed's clock. Actually making explosive devices is, of course, illegal, and we neither condone nor will cover it.


Prerequisites
Knowledge of circuits (resistors, transistors, etc.), and having constructed/soldered circuits before.

E9910: 3D Print Your House on Mars Full!
Difficulty: *
Teachers: Bruce Mackenzie

Can we take a 3D Printer and Laser Cutter to Mars, and make most of
the equipment needed to live there? Perhaps we can make whole
habitats (aka houses) and greenhouses out of thin air on Mars (which
is good, because thin air is the only kind Mars has). The Mars
Foundation is working toward permanent settlement of Mars, using
custom manufacturing to lower the cost. We also have a 3D printer
at a Mars habitat in Hawaii, and could use your help demonstrating
what can be made there. Come find out how
expand beyond this planet, and consider joining the design project.
Or, email Info@MarsFoundation.org .

E10055: How to Cause the Robot Apocalypse Full!
Difficulty: **
Teachers: Bianca Homberg

Robots are cool -- and there's a growing number of super awesome, capable robots, from self-driving cars to humanoids.

Here's a smattering of what robots are capable of:
Big dog: https://www.youtube.com/watch?v=W1czBcnX1Ww
Passive walking robot: https://www.youtube.com/watch?v=e2Q2Lx8O6Cg
Darpa challenge 2015 robots: https://www.youtube.com/watch?v=8P9geWwi9e0
Self-driving car: https://www.youtube.com/watch?v=TsaES--OTzM
Modular cubes: https://www.youtube.com/watch?v=6aZbJS6LZbs
Soft gripper: https://www.youtube.com/watch?v=Y5kZO8SSxVw

In this class, we'll talk about some of the cool robots that exist. We'll talk about what problems have been well-solved and what problems still remain as important, key challenges, from technical challenges to robot ethics.

E9988: A Brief History of Doors
Difficulty: **
Teachers: Riley Drake

Humans are unique in that they are both indoor and outdoor cats. To clearly differentiate between the two, and sometimes to protect ourselves from tyranny we invented doors. And we didn't just stop there: we have hinged doors! rotating doors! high speed doors! tambour doors! rebated doors! Come to learn the rich history and engineering behind an object you once considered "ordinary".


Prerequisites
Deep interest in doors

E9911: Minimum One-Way Mars Settlement Full!
Difficulty: **
Teachers: Bruce Mackenzie

We are working on a plan to start the settlement of Mars
starting with only 2 people, with equipment to grow food and
produce plastics, and bootstrap a fab-lab to manufacture
more habitats and equipment. Taught by the Mars Foundation.

E9887: Napoleon's Buttons and Other Interesting Materials
Difficulty: **
Teachers: Harry Thaman

Did you ever wonder which wars were fought over a single type of molecule? Or did you wonder how many man made materials you are touching right now? If so, this is the class for you!

Taking inspiration from books such as "Napoleon's Buttons" and "Stuff Matters" we will look at the materials and chemicals that we interact with every day to see the impact they have had on our lives

E9702: What Is 3D Printing And The Maker Movement? (With lasers & CNC Milling, Oh My!)
Difficulty: ***
Teachers: William Little

3D printing has grown in popularity over a very short period of time and is one of the most popular pieces of equipment in the maker movement! But wait, what is the maker movement? what is open source? what is all of this about? and apparently lasers and something called "CNC Milling" are involved too? what is all of this?

In this class, I will be talking about all of the above! We'll dive into 3D printing with a live printing demonstration and move into CNC milling and laser cutting. We'll then look at the bigger picture with home manufacturing, independence, and the maker movement! Get ready to smell the smell of progress as we melt some plastic and get creative.


Humanities

[ Return to Category List ]

H9622: Case Studies in Environmental Ethics Full!
Difficulty: **
Teachers: Gabriel Davis

What moral duties or obligations do human beings have to the natural world? Even if we want to see ourselves as “environmentally friendly,” it is not always so obvious what that means, or how we should act consistently with those beliefs. For example, consider a conflict between an animal rights activist who opposes all hunting, and a conservation biologist who sponsors deer hunts to reduce predation on vulnerable native prairie grasses. Both believe themselves to be acting ethically; who, if either, is correct?

In this course, we’ll first take a brief tour of the major traditions in American environmental thought. Then, we’ll split into small groups to explore case studies centered around ethical conflicts involving humans and the natural world. The goal is not to find “correct” answers, but to arrive at a deeper understanding of how these complex issues relate to our own values. Possible case study topics (depending on student and teacher interest) could include climate change and geoengineering, biofuels, conservation biology, animal rights, nuclear energy, GMOs, water rights, and land use policy.


Prerequisites
None

H9904: The Sacred Bee
Difficulty: *
Teachers: Caitlin Fischer

The force behind society, the source of countless legends, the most noble and relevant of creatures: the sacred bee. Come and buzz with excitement about the folklore surrounding the insect that is literally the bee's knees (and also the rest of the bee).

H10079: From Brahma to Ragnarok: A Study of Mythologies Around the World Full!
Difficulty: **
Teachers: Jahnavi Kalpathy

Are you secretly building an underwater sustainable living pod so you can survive after Ragnarok floods the world? Do you pray to the sun before every big test or project? Are you trying to avoid a curse that will come into effect on your sixteenth birthday by dedicating yourself eternally to the Goddess of the Hunt?
If so, you can probably help me teach this class! But if you're fascinated by mythologies - how they develop, how they effect culture and social norms, how they are merging with different aspects of pop culture today - come to this class to learn more!

This class will be both lecture and discussion based. I'll touch on as many different mythologies as I can, including all the smaller myths that are not often discussed like Slavic gods of revenge and African tribal folk stories. This class will focus much more on the stories and character in myth rather than on the religious implications. We will also discuss the way traditional myths have entered contemporary pop culture (Neil Gaiman's books, the Percy Jackson series, animated movies).

Please feel free to contribute your own knowledge of myths and folk stories!

H9564: The Devil's Casino: A Debate on the Morality of Finance
Difficulty: **

In this class, me and some other students from NYU will be having a debate about the morality of finance. We'll be guided by you (you can submit questions ahead of time, and ask them as we talk). Topics we want to touch on are free enterprise (finance is legitimate economic activity, governed by contract and subject to law, so how could it be bad?), information asymmetry (is it moral to sell products you know to be overly risky?), the role of government (regulatory capture and lobbying are highly legal, yet are they also highly immoral?), and other related philosophical questions.


Prerequisites
Nothing. It'd be good to stay on top of the news, but we'll email out a short primer to everyone so they can have the same baseline for the debate.

H10089: Let's talk about Watergate Full!
Difficulty: **
Teachers: Marcus Boorstin

Let's talk about Watergate - what actually happened (people broke into DNC headquarters), what people think happened (Rose Mary Woods erased some tapes?), and what probably didn't happen (aliens did everything?). Bring questions and conspiracy theories!

H9853: Seeing Is Believing - Or Is It? The Psychology of Optical Illusions
Difficulty: *
Teachers: Corey Bernstein

Your eyes and brain are constantly working together to interpret the world around you. But what happens when what you see and what you think you see don't match up? Do we all see the world the same way?
We'll explore the neurological and psychological processes involved in various types of optical illusions and see how our eyes and brain can play tricks on us.

H10206: Hard Rock Networking Full!
Difficulty: **
Teachers: Matthew Davis

Rock out with your classmates as you make new friends and learn how to network! Show up for food, drinks and fun.

H9673: 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.

H9696: Phonology: Strange Sounds of the World's Languages
Difficulty: **
Teachers: Roan LaPlante

In this course we will go over the theory, anatomy, and orthography (International Phonetic Alphabet) of different speech sounds, including sounds in English and lots of amazingly fun sounds that are not at all like sounds in English.

Depending on interest we will also talk about differences in regional dialects of English.

This is a very interactive course, with an emphasis on speech production.

H9740: Friendship: From Plato to Tolstoy Full!
Difficulty: **
Teachers: Yuancheng Yu

What is a friend? Why are friends friends? How to be a friend? To answer these questions, we gaze at classics and history really hard and beg for clues.


Prerequisites
Willingness to proactively participate in discussion and ask questions.

H9711: Ethics and Justice
Difficulty: *

Should you kill one person to save two? Is it ever justified to lie? Theories of ethics and justice can help us answer these questions.
We will give a brief rundown of the ethics of Mill and Kant, and also contrast the two most prominent theories of justice: those of Rawls and Nozick.

H10024: Armchair Philosophy Full!
Difficulty: *
Teachers: Elise Bickford

Let's talk about philosophy! Topics include but are not limited to free will, consciousness, morality, personal identity, and Nietzsche's moustache.

H10133: Mindfulness and Appreciation Through Television and Film
Difficulty: **
Teachers: Tommy Tsang

The Oxford English Dictionary defines mindfulness as, "the meditative state of being both fully aware of the moment and of being self-conscious of and attentive to this awareness; a state of intense concentration on one's own thought processes; self-awareness" and appreciation as, "grateful recognition of kindness, a favour, etc.; gratitude." With the help of brief clips from television shows and movies, as well as discussion, this class will attempt to encourage students to be mindful of, and appreciate, moments in life that they might otherwise just skid by as they go through the motions of everyday, mundane life. Clips from television shows include Breaking Bad, The Flash, Boy Meets World, and Girl Meets World (list subject to change). Clips from movies include Dead Poets Society, Fight Club, and Titanic (list subject to change).

H9903: Much Ado About Shakespeare
Difficulty: **

Come read through Shakespeare's master comedy, Much Ado About Nothing! We'll read through the play, taking breaks to switch parts and eat snacks.


Prerequisites
You should feel comfortable reading aloud in a group!

H9854: Creative Writing and Tea
Difficulty: *

There will be paper, pencils, and tea. Come and write (I'll provide prompts, or you can choose your own topic) and then we'll share what we wrote and give constructive criticism!

H9662: Poetry Composition
Difficulty: **
Teachers: Peter Klapes

In this course, you will have the opportunity to read and discuss a few published poems and then write some yourself. The last part of the class will be an optional open-mic forum in which you may read your poetry for the class.

H9758: The Poetry of Gerard Manley Hopkins
Difficulty: **
Teachers: Peter Klapes

In this course, we will read and discuss the poetry of the Romantic poet Gerard Manley Hopkins. You will have the opportunity to read a handful of Hopkins's poems and learn about the poet's short life. No prior knowledge necessary!

H9877: Playwrights' Workshop Full!
Difficulty: *
Teachers: Daniel Epelbaum

Interested in writing plays? Come and get some hand-on experience in this class taught by the Experimental Theatre Company!

In the first hour, we will teach you the basics of writing scenes for the stage. We will address stage space, character voice, and conflict structure.

In the second hour, you will write scripts in groups of four. After dinner, we will PERFORM as many of these scenes as possible for you and your friends!

H9690: TBOLAT: Let's learn to speak together!
Difficulty: **
Teachers: Rodolfo Garcia

Are you scared of public speaking? Does the idea of expressing even one miniscule opinion terrify you? Well some people would say that exposure therapy is for you! Come join me in welcoming the bucket of love and tenderness as we give spontaneous 1 minute speeches on anything!

H10178: The World and The American Civil War
Difficulty: **
Teachers: Mark Markov

This course will discuss the far reaching effects of the American Civil War on the world at large. This includes the position of European powers on the war (why did the British not side with the Confederates?), the global economic effects of the war (where were the new sources of cotton?), and the effect of the war on foreign nationals in the States themselves (were foreigners supposed to be drafted?).

H9634: Idioms and Orwell Full!
Difficulty: *
Teachers: Ahaan Rungta

We often hear and use idioms but, most of the time, we don't even know what they literally mean. In this class, we'll talk about common and not-so-common idioms and what they _really_ mean by looking at their origins. We'll also talk a little bit about this dude named George Orwell.


Prerequisites
None!

H9615: Memes Can Literally Explain Society
Difficulty: *

We all know memes as those silly, obnoxious, and admittedly infectious jokes that tend to end up virally transmitted to every part of the world. But, did you know that, by definition, memes help explain the evolution of humanity? It's pretty weird.

H9733: Conquering Writer’s Block Full!
Difficulty: *
Teachers: Lee Friedman

Learn how to vanquish the evil Writer’s Block with some simple tricks that will get your brain and pencil moving. We will discuss writer's block, how to conquer it, and do some practice exercises. Come ready to do some writing!

Note: This can be helpful for any kind of story-making whether its written fiction, comics, play-writing, role-playing, etc.

H9964: Robots! Space! Time! Stories! Full!
Difficulty: *

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. We'll spend an hour devouring tales of robots, space, and time!

H9561: Cogito Ergo Machina: Introduction to Machine Thought
Difficulty: **
Teachers: Arnav Sood

On February 15, 2014, 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
None! Students already familiar with ideas in artificial intelligence should feel free to sign up, since most of our time will be spent on discussion, and you'd probably have valuable things to say.

H9873: Education in America
Difficulty: *
Teachers: Haley Cope

Have you ever wondered why politicians insist on making you take the same tests year after year? Or how education policy has evolved over time?

In this class we will be looking at the educational goals of America from the 1900s to present.

H9880: Lobbying and Advocacy to Change the World
Difficulty: **
Teachers: Brock Adler

Is there a cause you are passionate about? Would changing laws or regulations, or having new government funding for your area of interest be useful? By joining together and advocating and/or lobbying with others, you can work towards accomplishing your personal, community, and societal goals. This session will give you (and your collaborators) a great start at being able to plan and carry out campaigns to create or change laws that you feel will improve things. You will learn about strategies and tactics applicable to a variety of different kinds of causes. I will use as an example an effort I have been working on for a few years, to pass the Federal “No Child Left Inside Act” H.R. 882, but the lessons presented will be applicable to a wide variety of other issues and levels of government. We will spend much of the time helping you think about how to advance your causes or projects.


Prerequisites
Have a basic understanding about how laws are passed http://kids.clerk.house.gov/high-school/lesson.html?intID=17; do some thinking about what cause you are passionate about; and find out who your Congressional Representatives are at www.house.gov and www.senate.gov, and look on their websites to find which committees they sit on.

H10148: 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.

H10008: Freedom and Determinism
Difficulty: **
Teachers: Shi Ke Xue

Do we have free will? If the universe is deterministic, is it even possible to act freely?

Come dip your toes into the metaphysics of freedom! We'll cover all combinations of having free will, deterministic worlds, and the compatibility of the two.

H9636: The Power of an Illusion – Is Race for Real?
Difficulty: *

Is Race for Real? Come learn how scientific discoveries have toppled the concept of biological race. The class will engage in small and large group discussions to unpack what was learned
from the video and have questions answered.


Prerequisites
None

H9677: False Memories: When What You Remember Never Happened
Difficulty: *
Teachers: Laura Eckman

Memories aren't perfect - in fact, almost all of your memories, especially the ones that seem particularly vivid, are markedly different from what you would see if you watched a video tape of the original incident. We'll be looking into different instances of fallacious memories, from alterations to entire false creations. We will also discuss what the unreliability of memory means in a larger context, specifically legal issues with potentially inaccurate eyewitness testimony.

H10010: Metaphysics of Time
Difficulty: **
Teachers: Shi Ke Xue

Metaphysics is the philosophy which questions how the physical world works. This class will discuss theories about how time works, how objects exist and persist through time, and how relativity destroys any common-sense notions about time.

H9638: The Power of an Illusion – Does Race Affect Your Life?
Difficulty: *

Does race affect your life? Unveil the ordinary social institutions that quietly channel wealth and opportunity, giving different groups vastly unequal life chances. The class will engage in small and large group discussions to unpack what was learned
from the video and have questions answered.


Prerequisites
None

H9815: Does god exist?
Difficulty: ***
Teachers: Michael Denigris

In this course, we will analyze the philosopher William Lane Craig's formulation of the Kalam Cosmological argument for the existence of god. Similar to Plato's "prime mover" argument and Leibniz's cosmological argument from the Principle of Sufficient Reason, the KCA attempts to show that the universe must have had a cause, and further that that cause is necessarily the being we refer to as god.

We will explore various topics in physics (cosmology/astrophysics and cosmogeny) and metaphysics (philosophy of time, causality, etc) to come to an informed conclusion as to whether or not the Kalam is likely to be sound and also discuss what other answers might explain how the universe and everything within it came to be.

If you took my course "Does god exist?" last year, this course will be substantially more specific and detailed than what was covered then, so I encourage you to take this class as well!

H9829: The Roman Empire in the Middle Ages
Difficulty: **
Teachers: Diptarka Hait

Despite exagerration from Renaissance historians, the collapse of the Western Roman Empire in 476 was merely a minor event for the people at that time. The wealthier and more populous Empire in the East still survived and preserved the old knowledge of the classical world. It would evolve, wane and wax over the years (even re-holding Rome for over 200 years) but it would endure till 29th May 1453-when at last it gave up the ghost.

H10128: American Suburbia Full!
Difficulty: *
Teachers: Nicole Glabinski

For decades, suburbia has been an integral part of the American dream. How did this form of living come to be? We'll cover the origins and proliferation of suburbs in the 19th and 20th centuries.

H9839: Impressionism
Difficulty: *
Teachers: Bryce Hwang

Ever wondered about the difference between Manet and Monet? Ever wanted to know what's so special about a bunch of paintings of sunflowers, water lilies, and haystacks? Just curious and want to learn more about Impressionism? Come join us for a low key discussion about art and a lot of candy!

H9695: Introduction to Socionics
Difficulty: ***
Teachers: Roan LaPlante

In this class we will review Socionics, a personality typology and branch of Jungian analytical psychology developed by a Lithuanian woman named Ausra Augustinavicitue in the 1970s. Socionics is moderately well popularized in Eastern Europe and almost unheard of in Western Europe or America.

Socionics is an abstract philosophical model and language for describing people and their social interactions, which attempts to answer the question, "How are different people different?" More concisely, it is a system of personality types. In this class, we will simultaneously review the conceptual foundations of this typology, and in doing so, we will address the problem of knowledge and numerous issues in practice. Specifically we will point out the problems and vagueness of the topic of personality types in itself, how it relates to science (socionics is *not* science) and ask what understanding personality types is actually useful for.


Prerequisites
A desire for self-knowledge and a willingness to think critically. Familiarity with MBTI is potentially helpful but also potentially detrimental. Some background in psychology is helpful but not needed.


Languages and Literatures

[ Return to Category List ]

L9699: An Introduction to Deconstruction Full!
Difficulty: ****
Teachers: Tabrez Alam

What does it mean to have meaning? Why do we immediately associate words with a certain definition? How does language contradict itself? French philosopher Jacques Derrida pondered these questions and pioneered a form of critical analysis known as "Deconstruction." Through this lens, we can identify the inherent discrepancies within language, literature and pop culture. An incredibly vague and complex topic, we will attempt to tackle and apply this method to analyzing the world around us.

L9782: Marhaban Bikum! or, Who Wants to Learn Some Arabic? Full!
Difficulty: ***
Teachers: Lydia Brown

I spent the last four-six years (arguable either way) cramming Modern Standard Arabic and two dialects into my brainspace, including a stint in Jordan. Come to this class and I will spit some of it up for you! You will learn how to write in the Arabic alphabet, how to sound out unfamiliar words, and how to say some useful basic phrases -- if we're lucky, you'll even progress to basic conversation and then you can go home and impress your friends and family with your ability to correctly pronounce all of those words every newscaster totally butchers!


Prerequisites
Ability to make weird sounds with your throat. Also, a throat.

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

This class is for absolute beginners. You'll learn the alphabet and by the end of the class, you'll be able to read!

L10021: Classifying the Sounds of the English Language
Difficulty: **
Teachers: Ray Hua Wu

There's much more to classifying sounds than just consonants and vowels, including many properties of sounds you use every day but didn't even notice exist.

L10039: 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.

L9765: Tengwar: the Elvish Script for Beginners and Hobbitses
Difficulty: *

Like scripts? Linguistics? Fantasy? Over the course of this workshop you will learn the Elvish alphabet from the Lord of the Rings.

L10013: Writing Systems of the World
Difficulty: **
Teachers: Sophie Mori

As confusing as English spelling is, sometimes it DOES make sense. Come learn about all different types of orthography and how they try to capture a language's sounds on paper.


Prerequisites
None!

L9985: How to Create a Language Full!
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!

Conlanging is the art of constructing one's own languages, either from scratch or with inspriation from existing natural languages. In this hands-on, collaborative workshop, we'll put together the basics of our very own language, and by the end we will be able to form simple sentences and talk to each other in a brand-new language!

L9661: An Introduction to Latin Full!
Difficulty: **
Teachers: Peter Klapes

This course will cover the basics of the Latin language--case, the 1st and 2nd declensions, the 1st conjugation, and just enough vocabulary to be able to put it all together.

L10033: Quirky Linguistics Full!
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!

L9840: Syntax! (The Linguistics Kind)
Difficulty: **
Teachers: Ezra Morrison

Syntax is the part of linguistics that deals with how we form sentences. This class is going to (hopefully) be a crash course on the stuff that happens when you take English grammar and try to make it logical. We'll go over things like constituency, diagnostics for various parts of speech, and tree diagrams (if you don't know what those are, don't worry! You can take this class and find out!) Sign up! It'll be great!

L9807: Learn the International Phonetic Alphabet!
Difficulty: **

Or, [lɝn ði ɪntərnæʃnəl fənɛdɪk ælfəbɛt]!
Ever seen a word's pronunciation on Wikipedia and not understood how to read it? Ever wanted to be able to precisely and accurately explain how to say a certain word? Come learn the IPA! You'll understand the basics of how to transcribe American English pronunciation, and if we have time, we'll begin to cover sounds that appear in other languages.


Prerequisites
Must not be afraid of unfamiliar words.

L9952: Babies Are Smarter Than You - When it Comes to Words
Difficulty: *

Googoo. Gaagaa. Googoo gaagaa? Googoo gaagaa! Gaaaaaaa!!!
It takes 5 months for babies to go from incoherent babbling to producing their first words. You still don’t know how to ask to go to the bathroom in Spanish even though you’ve been learning it for the past three years. Give babies their well-deserved credit by learning about words, which are arbitrary combinations of form (sound in spoken language) and meaning. Maybe we’ll show you cute pictures. Let’s talk about words!

L9707: Eminem to Emerson- A contemporary comparison between modern day hip hop music and classical poetry
Difficulty: **
Teachers: Caroline Noble

This course will analyze and critique a variety of hip hop song lyrics as well as compare and contrast their mechanisms with those used in classical poetry.

L10028: 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.

L10075: Profound and Entertaining Quotes You Can Use in Your Life
Difficulty: *
Teachers: Laura Koemmpel

Find the perfect quote for every situation! Read about how people from over 100 years ago dealt with things such as Mondays, love, and understanding life. We’ll be delving into the poetry, plays, and other writings of authors such as Oscar Wilde, Johann Wolfgang von Goethe, and Samuel Hoffenstein.

L9640: Down the Rabbit Hole - An Exploration of Wonderland
Difficulty: **
Teachers: Lilly Chin

"Somehow it seems to fill my head with ideas — only I don't exactly know what they are!"

Alice's Adventures in Wonderland have certainly filled many people's heads with ideas - references show up to it in Japanese video games, The Matrix, and even biological theories!

But just what are these ideas? In this class, we'll be investigating how Alice's portrayal has changed over time and discuss what these changes mean for the nature of childhood, history of mathematics, drug culture and more!


Prerequisites
You'll need to be familiar with something related to Alice in Wonderland. This could be "I've read the book", "I've watched the Disney cartoon", "I like the song 'White Rabbit'" or something totally different! The direction that this class goes is highly dependent on what you bring to the table so be prepared to discuss.

L10137: Introduction to Indonesian Full!
Difficulty: **
Teachers: Beverly cahyadi

Will you ever need to be able to speak Indonesian? Probably not. Will you have the coolest party trick in the world after taking this class? Absolutely! In this class we will cover basic language skills such as numbers and greetings as well as go through some common phrases and slang.

L9664: Chinese for Absolute Beginners
Difficulty: **
Teachers: Jacqueline Clark

This three-hour crash course is intended to bring students with no background in Chinese language from tones and letter sounds all the way through common grammar structures and phrases.

Of course, no one-day course will teach you a language, but this will give you a strong basis from which to learn more, or else enough conversational Chinese to annoy your monolingual friends!

L10041: Beginning Esperanto
Difficulty: *
Teachers: Robert Knighton

Since it was so popular last year, Esperanto is returning to Splash!
Come learn the world's most popular constructed language! Esperanto was invented in the late 19th century as a means of easy international communication, yet it still persists today among certain groups. Come see what all the fuss is about!


Prerequisites
No experience necessary. Enthusiasm recommended. Brain stem required.

L9947: Learn How to Speak in Gibberish
Difficulty: **
Teachers: Kathy Camenzind

Ever wanted to be able to learn a new language in an hour? Want to speak and have no one understand you? Wonder what thidigis phridigase means? Come check out this brief introduction to the little-known language called Gibberish!

Disclaimer: It sounds way cooler than Pig Latin.

L9928: Intro to Morphology: Linguistics for Sherlock
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.

L9632: 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 Russian language and culture for the absolute beginner.

L9804: Introduction to American Sign Language Full!
Difficulty: **
Teachers: Sarah Gluck

This course is a basic introduction to American Sign Language, both formal and colloquial.
We will cover basic greetings and conversational skills, and potentially a brief introduction to Deaf culture and the Deaf community.

L9831: 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.


Prerequisites
No prereqs :)

L9844: Intro to Etymology: Learn Languages, Ace the SAT, Take Over the World.
Difficulty: **
Teachers: Clarissa Towle

Ever notice that words like universe and reverse seem similar but have totally different definitions? How did that happen? What are prefixes and suffixes? What's a cognate and how can you learn romance language vocabulary rapidly? This course will teach you how to identify and exploit word families, primarily focusing on Latin and Greek roots.


Lunch

[ Return to Category List ]

L10200: Lunch Period
Difficulty: None
Teachers:

Enjoy a break for lunch with your friends! Please register for at least one lunch period on each day of the program.

L10199: Lunch Period
Difficulty: None
Teachers:

Enjoy a break for lunch with your friends! Please register for at least one lunch period on each day of the program.


Mathematics

[ Return to Category List ]

M10042: Points on a Plane Full!
Difficulty: ***
Teachers: David Yang

A Mobius transformation of the complex plane sends z to $$\frac{az+b}{cz+d}.$$ Any collection of three points can be sent to any other collection of three points by a Mobius transformation. Two collections of four points can be sent to each other only if they have the same cross ratio. What happens with more points?


Prerequisites
Familiarity with complex numbers.

M9833: How To Become a Better Gambler with Math Full!
Difficulty: ***
Teachers: Yihui Quek

This class is really a class that teaches probability. But because gambling uses a lot of probability, and much of life is a gamble, I am going to teach probability through the lens of a gambler. Don't rip your friends off. Rip off large corporations. :)
1. Simple probability exercises: calculating probabilities of poker hands
2. Horse race (what is the best way to bet?)
3. Gambler's ruin problem
4. The principle behind Gambler's ruin: Markov chains


Prerequisites
Must have some familiarity with logs and exponentials

M10182: Set Theory: A Framework for Everything
Difficulty: **
Teachers: Benjamin Chan

A fast-paced introduction to set theory*. If everything is a set, how do we define the natural numbers? What is addition, multiplication, and exponentiation? What is infinity? We'll try to cover as much as we can.

*of the ZFC variant.


Prerequisites
Calculus

M10056: (Geometric) Transformers: Now in 2D! (And Black and White)
Difficulty: *
Teachers: Herng Yi Cheng

Given two shapes of the same area, can one be cut into pieces and rearranged into the other? For a century, puzzlemakers have challenged each other to solve such "dissection puzzles" using the fewest number of pieces. Try your hand at one! http://www.herngyi.com/blog/geometric-dissection-puzzle

This lecture will cover basic techniques to create and solve dissection puzzles, some of the math behind them, and special types of dissection puzzles like 3D or hinged dissections.

M10150: 1 square 2 square 3 square 4 square
Difficulty: ***
Teachers: Joshua Frisch

What numbers can be written as the sum of 2,3, or 4 square numbers? (1 is left as an exercise to the student). In this class we'll fully answer the question including showing the incredibly cool result that ALL natural numbers are the sum of four squares. En route we'll cover connections to geometry, modular arithmetic, complex numbers, and a weird 4 dimensional version of the complex numbers called quaternions and how this all depends on the fact that $\pi^2>8$


Prerequisites
Familiarity with modular arithmetic is a must. (Make sure you can figure out what 7^31 mod 10 is with pen and paper). In general a lot of mathematical maturity will be assumed so while calculus is not strictly necessary, mathematical maturity at a calculus level or beyond is very much necessary.