SIPB IAP 2015 Activities
What is this?
SIPB, the computing club at MIT, sponsors a series of classes over IAP. Visit our homepage.Over for now!
Check back again next year!
What else happens during IAP?
See the official IAP activities index.
I have a question about {x}
Contact sipb-iap at mit dot edu.
Calendar
These events are available as a Google Calendar along with the SIPB calendar.
Programming in Perl |
Quentin Smith Date: Jan 8, Jan 13, and Jan 15, 8-10pm in 4-231
Introduction to programming in Perl: syntax, flow control, I/O, regular expressions, data structures, objects, and some CGI programming. NOTE: It is highly recommended that participants attend all three sessions, as different material will be covered in each session. The last session will probably be a question and answer session and will cover participant-requested material. More information and slides from the class can be found on the class webpage. Attendance: Participants requested to attend all sessions. |
A Purely Functional Sudoku Solver |
Ziv Scully, Anthony Lu, Ben Kraft Date: Jan 9, 5-7pm in 4-231 Why would anyone ever want to write a program in a language that didn't have variables? We're going to see a few reasons as we write a Sudoku solver in Haskell, a purely functional programming language. Please leave your ++'s at home. Download the code created during this class here. Attendance: Single event. |
Introduction to Haskell |
Joshua Cough Date: Jan 12 5-7pm and Jan 14 5-7pm in 4-231. Jan 16 CANCELLED. In this class we will cover the basics of the Haskell programming language and functional programming in general. We'll do so by writing a typechecker and/or an interpreter for a language similar to the simply typed lamdba calculus extended with some basic data types. Topics covered will include:
You'll need to bring a laptop to the sessions, and it would help to have GHC installed, preferably 7.8.3. Attendance: Three-session series. |
Vim |
Ray Hua Wu Date: Jan 13 5-6pm in 4-231 Learn the basics about using the mysterious and slightly ancient text editor you have probably heard quite a bit about, Vim. Attendance: Single event. |
The Secret Life of C++11: What your compiler doesn't want you to know (C++ Internals) |
Richard Tibbetts Date: Jan 13 6-8pm, Jan 14 6-8pm in 4-237 C++ is filled with strange and wonderful features, with a few more added in C++11. We will explore in detail how these features are implemented under the covers, in terms of the assembly code generated. Features to be explored include construction and destruction, copying, references, virtual methods, method dispatch, object layout, exceptions, templates, anonymous functions, captures, and more. No one should claim to be a C++ expert (including the instructor) but this class should help you win a geek fight (or job interview) with anyone who does. Examples will be worked on OSX or Linux with clang or gcc, but we will encourage experimentation if you show up with a Visual Studio 2013 environment. Attendance: Two-session series. |
How to Build Reliable Systems |
Tim Abbott Date: Jan 15 5-6pm in 4-231 This is a 1-hour talk on principles for how to build reliable software systems at scale, focused on issues like monitoring, error reporting, debuggability, and engineering processes that are essential to success to the industry but aren't covered in classes like 6.033. Tim Abbott was a co-creator of Debathena, Linerva, and XVM, and a co-founder of Ksplice (sold to Oracle in 2011) and Zulip (sold to Dropbox in 2014). Today he is a Staff Engineer at Dropbox. Attendance: Single event. |
Building iOS, Android and OS X Applications with RubyMotion |
Rajiv Aaron Manglani Date: Jan 20, 5-7pm in 4-231 RubyMotion is a revolutionary toolchain for iOS, Android and OS X. It lets you quickly develop and test cross-platform native applications for the iPhone, iPad, Mac OS X and Android devices. RubyMotion apps are written in Ruby and use native platform APIs. Applications are compiled, run at full speed on iOS, Mac and Android hardware, and can be submitted to the app stores for each platform. RubyMotion runs on OS X and is a commercial product. Come to the class then decide if it is the right technology to use for your next application. We will explore the history of the project, tour the framework, and build a functioning app. Attendance: Single event. |
Building Mobile Apps with Parse |
Jamie Karraker, Christine Yen, Eric Nakagawa Date: Jan 19, 5pm-midnight in 4-237 Do you have an idea for an app that you want to build over IAP? Not sure where to start, and feel a bit overwhelmed by building the app top to bottom? Don't want to reinvent the wheel by building a complex backend infrastructure just to get your app working? With Parse, you can add a scalable and powerful backend in minutes and launch a full-featured app in record time without ever worrying about server management. We offer push notifications, social integration, data storage, and the ability to add rich custom logic to your app’s backend with Cloud Code. Parse is cross-platform, allowing you to use the same data backend for iOS, Android, JavaScript, Windows 8, Windows Phone 8, and OS X. We are having a Parse hackathon starting at 5pm on January 19, and finishing with demos and prizes at 11am the next day. There will be a short intro presentation, where we'll go over what Parse is and how it can help you build a backend for your mobile app. We'll cover data sharing, basic login, social login with Twitter and Facebook, push notifications, and more. After the presentation, we will start the hackathon, where our MIT alumni Parse engineers will be circulating to help you with your projects. Snacks and pizza will be provided, and everyone who participates in the hackathon will get $100 in Parse credit! Prizes for the best hackathon projects are:
Preexisting projects are allowed, but we will be judging based on what you complete during the hackathon, with an emphasis on how well you incorporate Parse into your project. If you are planning on attending the hackathon, please fill out this form: <http://goo.gl/forms/VrMAZJp6yS> Pass it on, forward it around, and sign up! Attendance: Single event. |
The Athena Command Line |
Jonathan Reed Date: Jan 22 5-7pm in 4-237 Not sure how to do anything on Athena besides browse the web and print? Never used that Terminal window, except to type in some commands you found on a web page? Ever wondered what your friends are doing when they have a single giant green-on-black text window taking up their entire screen? This class is for you. We'll explore Athena using only the command line, and talk about shells, filesystems, dotfiles, Kerberos and much much more. Because Athena is based on Ubuntu Linux, many of the skills you'll learn are transferrable to other Linux distributions and Mac OS X. If you have a laptop, and would like to follow along, please bring it. If you choose to bring a laptop, take some time prior to class to ensure you can connect to the Athena remote login servers (athena.dialup.mit.edu) from your laptop. If you have already installed Debathena, you should feel free to use it, but you do NOT need to install it specifically for this class. Attendance: Single event. |
Introduction to Version Control using Git & GitHub |
Tristan Naumann Date: Jan 23, 7:30-9:00pm in 4-237 Version control systems are essential for the organization of multi-developer projects. Likewise, familiarity with such tools can greatly simplify even small projects. This short course will discuss version control as a problem and focus on how it can be managed with Git. Further, we will discuss how to share code using GitHub and some common workflows. Git is a free and open source distributed version control system designed to handle everything from small to very large projects. GitHub is a web-based hosting service for projects using Git which has quickly become one of the most popular code repository sites for open source projects. Attendance: Single event. |
Programming in C |
Bayard Wenzel CANCELLED due to inclement weather C is the finest assembler known to humanity, and as such it is one of the high-points of technological endeavor. However, its importance goes beyond this limited and historical aspect, because C continues to be used extensively in embedded systems, operating systems, device drivers, and user space applications. This class will present a brief introduction to C, the C pre-processor, the C run time model, practical C programming, and C libraries. Attendance: Two-session series. |
Programming in Python |
Lauren Huang, Antonio Moreno, Yaning Zhang Date: Jan 19, 5:30-6:30pm in 4-231; Jan 21, Jan 23, and Jan 26, 5:30-7:30pm in 4-231 Don't know how to program? Know how to program, but not in Python? This is the class for you! Python is a beautiful and simple language, perfect for beginners and for fast development. In this course, you'll interactively learn the basics of programming with Python. Before long, you'll be harnessing the power of code and tackling problems confidently on your own. Attendance: Participants can attend sessions freely but knowledge from prior sessions is assumed for later ones. Please RSVP. |
Secure Programming in C |
Lef Ioannidis CANCELLED C, love it or hate it, is somewhere at the foundation of most software today. While some may call it a glorified assembler, C does provide many useful features while giving you the option to get close to the hardware and have precise control over everything your machine does. It is also inherently insecure and writing secure software takes experience and practice. We will show you common security pitfalls and how to avoid them in your code. The materials will include: Attack Cases:
Mitigation:
Attendance: Single event. |
Better Living Through Clojure |
Mark Champine, Paul Lam, Alex Huang Date: Jan 28 8:00pm, Jan 29 8:00pm in 4-231 Clojure is a general-purpose language with seamless Java interoperability, a modern Lisp dialect, and a rich set of immutable, persistent data structures. Elegant and powerful, Clojure aims to reduce the incidental complexity of software engineering by making functional programming practical and accessible. This two class series introduces Clojure's philosophy, Lisp syntax, and primitives for expressive functional programming on immutable collection types. We’ll work on several tutorial problems oriented toward both fun and practical uses of Clojure. The class will be interactive, with an emphasis on functional problem solving, so bring a laptop. Slides for the class can be found here.Attendance: Participants are requested to RSVP to
sipb-iap-clojure at mit dot edu. Two-session series; participants
recommended to attend both sessions. |
WebSockets from the Wire Up |
Christine Spang Date: Jan 22, 7-8pm in 4-231
HTML5 WebSockets power the real-time web. Come take a deep dive into how they work, from the big picture down to what goes over the wire, including insight into the performance benefits of the protocol, via a real-world example of how WebSockets are implemented client- and server-side in Python. Attendance: Single event. |
Introduction to the Command LineCo-sponsored with HKN and Course 6 |
Sheena Nie Date: Jan 7 7:30-8:30pm and Jan 15 7:30-8:30pm in 56-114 New to the command line? In this hands-on workshop, you'll learn to use this fundamental tool, essential to becoming a savvy and efficient programmer in class work, on the job, and in everyday tasks. We will start with the basics and where to learn more for more advanced topics. Please bring a laptop. Attendance: Repeating event; participants welcome at any session |
Hacking the Software InterviewCo-sponsored with Course 6 |
Ron Chaney Date: Jan 21 5:30-7pm, Jan 22 5:30-7pm in 32-155 Ever wanted to work at a company like Google, TripAdvisor, Akamai, or Facebook? There's just one thing standing in your way: the interview. But there's no need to fear. We've mastered the interview questions and topics, and we want to show you how you can nail every programming question. Whether you're a beginning programmer or a seasoned expert, this class is for you. The class focuses on computer science topics that frequently come up in programming interviews. It covers time complexity, hash tables, binary search trees, and some other things you might learn in 6.046. However, most of the time is devoted to topics you won't learn in class, such as crafty bitwise logic and tricks to solving problems. If you have any interest in working at a computer science company, make sure you don't miss this class! Attendance: Participants welcome at individual sessions |