MIT: Independent Activities Period: IAP 2016

IAP 2016 Subjects: Electrical Engineering and Computer Science


6.037
Structure and Interpretation of Computer Programs
Zombies drink caffeinated 6.001
Alex Vandiver, Mike Phillips
Tue, Thu, Jan 5, 7, 12, 14, 19, 21, 26, 28, 07-09:00pm, 32-044

Pre-register on WebSIS and attend first class.
Listeners allowed, space permitting
Prereq: 
Level: U 6 units Graded P/D/F   

Studies the structure and interpretation of computer programs which transcend specific programming languages. Demonstrates thought patterns for computer science using Scheme. Includes weekly programming projects. Enrollment may be limited.
This fast-paced course covers the material in the classic book Structure
and Interpretation of Computer Programs -- a class previously known at
MIT as 6.001. It uses Scheme to introduce students to principles of
computation, and to teach thought patterns for computer science.
Students are taught to apply structural, procedural, and meta-linguistic
abstraction to solve computational problems. Four projects, one per
week, will be assigned and graded.

Prerequisites: some programming experience; high confusion threshold.

Cosponsored by the Student Information Processing Board.
Web: http://web.mit.edu/alexmv/6.037/
Contact: Alex Vandiver, 6.001-zombies@mit.edu

6.057
Introduction to MATLAB
James Noraky
Mon Jan 25 thru Fri Jan 29, 07-09:00pm, 34-101

Pre-register on WebSIS and attend first class.
Limited to 300 participants.
Listeners allowed, space permitting
Prereq: 
Level: U 3 units Graded P/D/F   

Accelerated introduction to MATLAB and its popular toolboxes. Lectures are interactive, with students conducting sample MATLAB problems in real time. Includes problem-based MATLAB assignments. Students must provide their own laptop and software. Enrollment limited. Web: https://learning-modules.mit.edu/class/index.html?uuid=/course/6/ia16/6.057
Contact: James Noraky, 6.057-staff@mit.edu

6.058
Preview of Signals and Systems
Introduction to Signals, Systems, and Feedback Control -- Preparation for 6.003
Hussein Abdallah, Khaled Moharam, Alex Sludds
Mon-Fri, Jan 5-8, 11-15, 19-22, 11am-12:00pm, 37-212

Pre-register on WebSIS and attend first class.
Limited to 50 participants.
Listeners allowed, space permitting
Prereq: GIR:CAL2 or permission of instructor
Level: U 6 units Graded P/D/F   

Preparation for 6.003 or 6.011, focusing on several key concepts, including LTI systems, convolution, CT and DT Fourier series and transforms, filtering, sampling, modulation, Laplace and z-transforms, and feedback.
Introduction to the fundamental concepts for 6.003, including Fourier and Laplace transforms, convolution, sampling, filters, feedback control, stability, and Bode plots. Problems will be solved by making extensive use of Mathematica and Matlab (both available from MIT IS&T) to help visualize signal processing in the time and frequency domains. Intended to prepare students for 6.003 but could also serve as a refresher for 6.011. 6.01 or permission of the instructor is the only prerequisite.
Contact: Hussein Abdallah, hmabdall@mit.edu

6.117
Introduction to Electrical Engineering Lab Skills
Use of Lab Equipment Plus MatLab
Gim Hom
Mon Jan 11, Wed Jan 13, 20, Mon Jan 25, Wed Jan 27, 02:30-04:00pm, 32-144, Labs TBD, 38-600

Selection by departmental lottery. Do not pre-register on WebSIS.
Enter lottery by: 16-Dec-2015
Limited to 34 participants.
Listeners allowed, space permitting
Prereq: 
Level: U 6 units Graded P/D/F   

Introduces basic electrical engineering concepts, components, and laboratory techniques. Covers analog integrated circuits, power supplies, and digital circuits. Lab exercises provide practical experience in constructing projects using multi-meters, oscilloscopes, logic analyzers, and other tools. Includes a project in which students build a circuit to display their own EKG. Enrollment limited.
Lab sections will be assigned. Sign up by December 1st to be guaranteed a spot in the class. After 12/1, the remaining spots will be selected by lottery on 12/16.
Day 1: Intro to Safety, Electronic Components and Theory
Day 2: Use of Measurement Equipment: Multi-meters & Oscilloscopes; Construction & Debugging of Simple Electronic Circuits
Day 3: Integrated Circuits: ECG, Digital ICs & Opamps, Intro to MatLab
Day 4: Digital Systems
Day 5: Video, AD&DA conversion
Web: http://mit.edu/6.117
Contact: Gim Hom, gim@mit.edu

6.146
Mobile Autonomous Systems Laboratory: MASLAB
Erin Main, Travis Libsack, Asra Ali
Mon Jan 4 thru Fri Jan 8, 10am-12:00pm, 32-144, final comp 1/29, 32-123

Pre-register on WebSIS and attend first class.
Limited to 50 participants.
No listeners
Prereq: 
Level: U 6 units Graded P/D/F Can be repeated for credit   

Autonomous robotics contest emphasizing technical AI, vision, mapping and navigation from a robot-mounted camera. Few restrictions are placed on materials, sensors, and/or actuators enabling teams to build robots very creatively. Teams should have members with varying engineering, programming and mechanical backgrounds. Culminates with a robot competition at the end of IAP. Enrollment limited.
The course begins with a week of instruction intended to serve the competitors as they start to design and prototype their systems. The bulk of the course consists of spending time in the lab building robots. This course is a great choice for all of those who would like to get hands-on experience in working on a team project. Lab hours MTWRF 11-5 in 32-044.

Notifications out by Dec 8
Web: http://maslab.mit.edu/
Contact: Erin Main, maslab@mit.edu

6.147
The BattleCode Programming Competition
Maxwell Mann, James Gilles, Min Zhang, Jessica Hyde, Alex Chen, Nicholas McCoy, David Lu
Mon-Fri, Jan 4-8, 11-15, 07-08:00pm, 1-190, final comp 1/30, Kresge

Pre-register on WebSIS and attend first class.
Limited to 300 participants.
Listeners welcome at individual sessions <b>(series)</b>
Prereq: 
Level: U 6 units Graded P/D/F Can be repeated for credit   

Artificial Intelligence programming contest in Java. Student teams program virtual robots to play BattleCode, a real-time strategy game. Competition culminates in a live BattleCode tournament. Assumes basic knowledge of programming in Java.
Battlecode is a real-time strategy game. Two teams of virtual robots roam the screen managing resources and attacking each other with different weapons. You will write code to strategically manage your robot army. Contestants learn to use artificial intelligence heuristics, pathfinding, and distributed algorithms.

Assumes basic knowledge of programming.

Battlecode is a great opportunity to have fun and rapidly develop important software skills, such as building a codebase from scratch, managing a large software system, and getting hands-on Java experience. For beginners, our lecture series walks you through creating your first bots and teaches more advanced techniques, and the Newbie Tournament has its own share of the $50,000 prize pool. The class culminates in a final tournament held live in Kresge.

Compete in teams of one to four students. Learn more at battlecode.org!

Lectures are optional. Knowledge of real-time strategy games or artificial intelligence is not necessary.

Cosponsored by the Student Information Processing Board.
Web: http://battlecode.org
Contact: Maxwell Mann, battlecode@mit.edu

6.148
Web Programming Competition
(6.470)
Alan Chiao, David Wong, Eva Yeung,, Dongfang Mi, Slava Kim, Kimberli Zhong, Runpeng Liu,, Budmonde Duinkharjav
Mon-Fri, Jan 4-8, 11-15, 11am-03:00pm, 10-250, awards ceremony 1/28 32-123

Pre-register on WebSIS and attend first class.
Limited to 250 participants.
Listeners allowed, space permitting
Prereq: Permission of instructor
Level: U 6 units Graded P/D/F Can be repeated for credit   

Teams compete to build the most functional and user-friendly website. Competition is judged by industry experts and includes novice and advanced divisions. Prizes awarded. Lectures and workshops cover website basics. Enrollment limited.
Teams of 1-3 compete to build the most functional and user-friendly website over IAP. Sites will be judged by industry experts. Over $30K in prizes will be awarded! Lectures and workshops teach everything you need to make a complete website. Competition will have novice and advanced divisions with separate prizes. Novice topics include web programming basics like HTML, CSS, and jQuery. Advanced topics include Node.js and other back-end frameworks, layout, debugging, and security.

Beginners and experienced web programmers welcome, but previous programming experience recommended. You will receive the instructor's permission automatically by coming to lecture or by passing the first milestone check-off.

Second week of classes will be in 4-370.
Final Presentation 1/27, 37-212, Awards Ceremony, 1/28, 7 pm, 32-123.
Web: http://6.148.scripts.mit.edu/
Contact: Alan Chiao, 6.148-staff@mit.edu

6.149
Introduction to Programming Using Python
Totally Basic Programming - a great preparation for 6.01
Sylvan Tsai, Katy Johnson
Mon-Fri, Jan 5-8, 11-15, 19-22, 10am-11:00pm, 32-123 (1/5- 1/8),, Labs 32-044; Lec10-250 1/11 on

Selection by departmental lottery. Do not pre-register on WebSIS.
Enter lottery by: 10-Dec-2015
Limited to 300 participants.
No listeners
Prereq: 
Level: U 6 units Graded P/D/F   

Face-paced introduction to Python programming language for students with little or no programming experience. Covers both function and object-oriented concepts. Includes weekly lab exercises and final project. Enrollment limited.
Recommended for those planning to take 6.01 in the Spring who don't have programming experience. For those who have programmed before (not necessarily in Python!) please take 6.177.

If class is oversubscribed, preference will be given to freshmen; if you've taken 6.0001 you do NOT need to take this.

IMPORTANT! To take this class you must sign up for the lottery on the course website below by the deadline AND attend the first lecture on January 5th. You must be an MIT undergraduate to take this class -- graduate and cross-registered students should take 6.0001.
Web: http://web.mit.edu/6.149/www/
Contact: Sylvan Tsai, 6.149-staff@mit.edu

6.169
Theory and Application of Circuits and Electronics
Kayla Esquivel, Karl Berggren
Mon-Wed, Fri, Jan 19-20, 22, 25, 27, 29, 01-05:00pm, 38-500

Selection by departmental lottery. Do not pre-register on WebSIS.
Enter lottery by: 15-Dec-2015
Limited to 15 participants.
No listeners
Prereq: [6.002]
Level: U 3 units Standard A - F Grading   

Building on the framework of 6.002, provides a deeper understanding of the theory and applications of circuits and electronics.
6.002 is not a prerequisite, but is targeted at freshmen and those who have not had any circuit lab experience.

Introduces basic electrical engineering concepts, components, and laboratory techniques, culminating in the design and construction of an EMG.

Sign up by emailing esquivel@mit.edu by 12/15/15.
Contact: Kayla Esquivel, esquivel@mit.edu

6.176
Pokerbots Competition
Alex Huang, Kevin Wen, Tony Zeng, Larry Zhang
Wed Jan 6, Fri Jan 8, Mon Jan 11, Wed Jan 13, Fri Jan 15, 04-05:30pm, TBD, final comp 1/31

Pre-register on WebSIS and attend first class.
Limited to 150 participants.
Listeners allowed, space permitting
Prereq: 
Level: U 6 units Graded P/D/F Can be repeated for credit   

Build autonomous poker players and aquire the knowledge of the game of poker. Showcase decision making skills, apply concepts in mathematics, computer science and economics. Provides instruction in programming, game theory, probability and statistics and machine learning. Concludes with a final competition and prizes. Enrollment limited
Pokerbots is a programming competition where teams of up to four students build autonomous poker players. Learn and apply concepts in mathematics, computer science, and economics not normally taught together in classes. Poker has become a cultural phenomenon: learn the intricacies of the game and showcase your decision making skills. As a game of incomplete information, poker is an interesting problem because of its complex dynamics and real world applications, such as trading. We'll have over $30,000 in prizes from some of the best technology and finance firms.

Five lectures, in which students will learn programming, game theory, bankroll management, probability and statistics, and machine learning, and how to put them all together to make a successful pokerbot.

The final event will be held in Kresge; date to be finalized.
Web: http://pokerbots.mit.edu/
Contact: Alex Huang, pokerbots@mit.edu

6.177
Building Programming Experience in Python
Amin Manna, Cristhian Ulloa
Pre-register on WebSIS and attend first class.
Listeners welcome at individual sessions <b>(series)</b>
Prereq: 
Level: U 6 units Graded P/D/F   

Preparation for 6.01 aimed to sharpen skills in program design, implementation, and debugging in Python. Programming intensive, with one short structured assignment and a supervised, but highly individual, mandatory project presentation. Intended for students with some elementary programming experience (equivalent to AP Computer Science). Enrollment limited.
The purpose of this class is to prepare those who are about to take 6.01, have never used Python, and HAVE prior programming experience in another language, or if you just want to know Python and can program in other language(s).

We have a week of lectures with one problem set, and then a week-long project to 1/22, with labs and office hours arranged.

Please register on Websis and sign up at stellar course website.
Web: http://stellar.mit.edu/S/course/6/ia16/6.177/
Contact: Amin Manna, 6.177-staff@mit.edu


Amin Manna, Cristhian Ulloa
Mon Jan 11, 01-02:30pm, 10-250, final presentation 1/22


Amin Manna, Cristhian Ulloa
Tue Jan 12, 01-02:30pm, 10-250, final presentation 1/22


Amin Manna, Cristhian Ulloa
Wed Jan 13, 01-02:30pm, 10-250, final presentation 1/22


Amin Manna, Cristhian Ulloa
Thu Jan 14, 01-02:30pm, 10-250, final presentation 1/22

6.178
Introduction to Software Engineering in Java
Kathryn Hendrickson, Katherine Muhlrad, Andreea Bobu
Mon, Wed, Fri, Jan 11, 13, 15, 20, 22, 25, 27, 29, 03-05:00pm, 10-250, Lab Hours TBA

Pre-register on WebSIS and attend first class.
Limited to 200 participants.
No listeners
Prereq: 
Level: U 6 units Graded P/D/F   

Covers the fundamentals of Java, helping students develop intuition about object-oriented programming. Focuses on developing working software that solves real problems. Designed for students with little or no programming experience. Concepts covered useful to 6.005. Enrollment limited. Contact: Kathryn Hendrickson, 6.178-staff@mit.edu

6.179
Introduction to C and C++
Richard Chew, Sophia Wang
Mon-Fri, Jan 11-15, 19-22, 25-29, 11am-12:00pm, 54-100, Afternoon office hours

Pre-register on WebSIS and attend first class.
Limited to 100 participants.
Listeners allowed, space permitting
Prereq: 
Level: U 6 units Graded P/D/F   

Fast-paced introduction to the C and C++ programming languages. Intended for those with experience in other languages who have never used C or C++. Students complete daily assignments, a small-scale individual project, and a mandatory online diagnostic test. Enrollment limited.
An introduction to programming in C and C++, focusing on using the languages in practice. The class will cover a broad range of C and C++ related topics, ranging from basic operations like input/output and data types, to more advanced tools like parallelism, with special treatment on using pointers. By the end of this course, students will be fully capable of contributing to production-level code, demonstrated in a week-long final project. Prior programming experience is expected.
Contact: Richard Chew, Sophia Wang, 6.179-staff@mit.edu

6.S087
Special Subject in Electrical Engineering and Computer Science
The Art of Software
William Qian
Mon-Fri, Jan 4-8, 11-15, 26-29, 02-03:00pm, 3-333, after 1/26 in 56-114

Selection by departmental lottery. Do not pre-register on WebSIS.
Enter lottery by: 01-Jan-2016
Limited to 16 participants.
No listeners
Prereq: Permission of instructor Prior programming experience
Level: U 6 units Graded P/D/F Can be repeated for credit   

Covers subject matter not offered in the regular curriculum. Consult department to learn of offerings for a particular term.
Improve your software engineering skills in preparation for projects in an internship, research project, or project class. Students will participate in daily exercises, complete weekly projects, and a deliver a final project. Covers techniques on how to write production-level code, including code style, the software design process, and making design decisions. Students completing the course will have a concrete understanding of and consistent practice with writing production-level code. Prior project experience and knowledge of either C, Java, Python, or PHP required. Bring laptop to class.
Web: http://mit.edu/6.S087/www
Contact: William Qian, wqian94@mit.edu

6.S187
Special Laboratory Subject in Electrical Engineering and Computer Science
Code for Good
Anish Athalye, Victoria Dean
Mon-Fri, Jan 4-8, 11-15, 20-22, 25-28, 12-04:00pm, 32-155, Expo 1/29, 2-4, 32-123

Selection by departmental lottery. Do not pre-register on WebSIS.
Enter lottery by: 10-Dec-2015
Limited to 50 participants.
Listeners allowed, space permitting
Prereq: Permission of instructor : programming experience necessary
Level: U 6 units Graded P/D/F Can be repeated for credit   

Laboratory subject that covers content not offered in the regular curriculum. Consult department to learn of offerings for a particular term.
6.S187 provides opportunities for students to work on software-related projects with nonprofit organizations. Teams of 3-4 students will be matched with a nonprofit that has a project that is of interest to the student. Students will be mentored by a representative from the organization and subject instructors, and engineers from industry will be giving talks and workshops on topics relevant to student projects. Students can sign up as individuals or in groups.

Project listings and detailed information are available on the website: http://codeforgood.mit.edu/projects/

The class will be limited to 20 participants. Please fill out the application by December 10th: http://codeforgood.mit.edu/iap-class/#application
Web: http://codeforgood.mit.edu
Contact: Anish Athalye, codeforgood@mit.edu

6.S190
Special Laboratory Subject in Electrical Engineering and Computer Science
Rapid Application Development Design Competition
Daniela Cako
Mon-Fri, Jan 19-22, 25-29, 01-02:00pm, 34-301, office hours TR 3-5 34-301

Pre-register on WebSIS and attend first class.
Limited to 20 participants.
Listeners allowed, space permitting
Prereq: Permission of instructor no programming experience necessary; interest in solving bus
Level: U 6 units Graded P/D/F Can be repeated for credit   

Laboratory subject that covers content not offered in the regular curriculum. Consult department to learn of offerings for a particular term.
Learn how to rapidly develop web and mobile applications using the current Platform as a Service. Students will learn how to build applications starting with the back-end including data structures, security, and the main modeling. Then they will learn about front-end development by building responsive UIs that are easily integrated with web and mobile applications.
Contact: Daniela Cako, danielac@mit.edu

6.S192
Special Laboratory Subject in Electrical Engineering and Computer Science
Rapid Prototyping: ISN Soldier Design Contest
Kurt Keville
Tue, Thu, Jan 12, 14, 19, 21, 26, 28, 03pm-04:30am, NE47-183, labs NE47-183

Pre-register on WebSIS and attend first class.
Limited to 24 participants.
Listeners allowed, space permitting
Prereq: Permission of instructor Permission of instructor
Level: U 6 units Graded P/D/F Can be repeated for credit   

Laboratory subject that covers content not offered in the regular curriculum. Consult department to learn of offerings for a particular term.
Compete in this year's Soldier Design Contest and Rapid Equipment Force Grand Challenge. Attend all sessions for a foundation in the fundamental processes of Rapid Prototyping and build a winning design for prizes.

Jan 12: SDC Contest Overview, project descriptions, interest statements and class scheduling.

Jan 14: Caffeinated Crash course in PCB design (and finish up SDC project description/signups)

Jan 19: Lab equipment training and checkout. Partial equipment list; Various Microscopy (AFM, SEM, TEM), assorted chromatography, basic metal and wood shop, 3-D printing, sundry CVD.

Jan 21: Lincoln Labs RP Facility Tour
http://www.ll.mit.edu/news/core3studio.html

Jan 26: US Army Sustainment Lab Tour
http://www.army.mil/article/66467/

Jan 28: Final Project (Powerpoint) Presentations
http://isnweb.mit.edu/sdc13.html
Web: http://mit.edu/isn/sdc
Contact: Kurt Keville, kkeville@mit.edu

6.S194
Special Laboratory Subject in Electrical Engineering and Computer Science
Error-Efficient Computing (Exploiting Failures for Speed and Battery Life on Existing Hardware)
Phillip Stanley-Marbell
Mon, Wed, Fri, Jan 6, 8, 11, 13, 15, 20, 09am-12:00pm, 36-112, Office hours 4-5, 36-112

Pre-register on WebSIS and attend first class.
Limited to 20 participants.
No listeners
Prereq: Permission of instructor
Level: U 6 units Standard A - F Grading Can be repeated for credit   

Laboratory subject that covers content not offered in the regular curriculum. Consult department to learn of offerings for a particular term.
At the end of this course, you will be able to: (1) Describe examples of computing systems and applications that exploit tolerance of errors in their inputs, in their algorithm operations, and in their outputs. (2) Use hardware based on the low-power ARM Cortex-M0 and OLED displays, as well as open-source software tools, to illustrate examples of error-efficiency. (3) Differentiate between precision, accuracy, and reliability, to describe the role they play in numerical computations, and to apply these concepts to analysis and design of new computing systems.

Course materials are funded by the MIT-SUTD collaboration office and will be provided for each participant.
Web: http://stellar.mit.edu/S/course/6/ia16/6.S194/
Contact: Phillip Stanley-Marbell, error-efficiency@mit.edu

6.S915
Special Subject in Electrical Engineering and Computer Science
Predicting with Time Series Data at Scale
Cancelled
Devavrat Shah, Muhammad Amjad
Mon Jan 25 thru Thu Jan 28, 09am-12:00pm, 32D-707

Pre-register on WebSIS and attend first class.
Limited to 15 participants.
Listeners allowed, space permitting
Prereq: Permission of instructor interest in topic, ready for firehose
Level: U 3 units Graded P/D/F Can be repeated for credit   

Covers subject matter not offered in the regular curriculum.
With the ubiquity of time series data in modern times, there has been an increased interest??
in understanding the structure in such data sets to make predictive decisions. Examples include anomaly detection in real-time services, fraud alerts, predicting outcomes of elections and algorithmic financial trading. Such data sets are invariably very high??in volume and usually require real-time prediction and decision making.??

The primary purpose of this short course is to explain a method for using large scale statistical and??machine learning approach for predictions using time-series data. Concretely,??we will discuss the following:?

- how to store, process and visualize time series data at large scale;
- how to understand the structure in the data;
- how to make real-time high fidelity predictions.

The prediction methods will incorporate an overview of classical approaches as well as a recent time series prediction method developed by the instructors. As concrete examples, we shall discuss all of the above in the context of Bitcoin price prediction.
??
Contact: Devavrat Shah, devavrat@mit.edu