6.MITx summer UROPs are cool!

SHARE:

August 23, 2013

“This summer has been fantastic. It has been an unbelievable experience to be coding in the same room as so many talented students and staff members - there is always someone around to show you something cool or help you debug your program. I've learned more about software development than I learned in the past three years of coding on my own. The office space is very laid-back. We're always laughing, eating, and chatting while we create beautiful code. The coolest part of this summer has been seeing the other projects around me develop into astoundingly aesthetic and functional tools that can really make a difference in the future of online education.”–Laura Breiman, MIT rising sophomore

A new summer UROP experience was organized and run by members of the EECS faculty to allow students to build web apps for educational technology, both for online courses (edX) and for residential courses on campus. Nearly sixty students applied for the positions and sixteen were accepted – including nine freshmen, five sophomores and two juniors. The prospect of making both MITand MITx courses better was a strong motivator for the participants.

Many of the students had no programming experience -- though 6.00 or 6.01 or both were required. So the first two weeks of the summer included an intensive web-programming bootcamp, covering HTML, Javascript, CSS, jQuery, git, Bootstrap, d3, and other tools and libraries that they would need.

For the rest of the summer, the students did a series of projects, building interactive demos, simulations, lab exercises, and other kinds of web software. The class ended up mostly working with 2-3 person groups, which shifted several times over the summer. Each student ended up doing three different projects by summer's end.

According to Rob Miller many of the projects were designed to supplement EECS courses like 6.004, 6.00, 6.01, and 6.005. “Some of the projects already have an MITx version, and some will eventually be used for that purpose,” Miller noted. “But the apps are also useful for the on-campus versions of the courses.”

Chris Terman said about the goals in this project: “6.MITx was designed with several goals including building a cadre of UROPs who could contribute to the MITx enterprise – particularly writing code that will implement interactions to make the MITx experience more engaging (virtual labs for the on-line courses, for example).” He also noted that in addition to teaching coding and software engineering techniques, daily group meetings were run to look at teaching websites and evaluate how they accomplished their goals.

The other goal in creating 6.MITx, Terman noted, “…was to provide a positive and enriching experience for students just starting out with programming. This goal was accomplished by allowing the students to not only do their own coding but also to build their perspective by working with other students on user testing and code reviews.

Funding for 6.MITx came from the EECS Department, Quanta Computer and edX. Rob Miller notes that with its strong start this summer, continuing 6.MITx in future summers is a goal of the 6.MITx organizing team.

Matthew C Powers-Freeling, a rising junior I course 6-3, worked on a rewrite of one of the core 6.004 tools: BSim, a beta assembler and emulator which is used for three of the course’s eight labs. BSim will be used by all 6.004 students on-campus next semester (and subsequent semesters!), and will also be used in the MITx version of the course when that goes live (which I believe is in Fall 2014, but don’t quote me on that). I also worked on some significant shared infrastructure for ongoing work on rewriting the other two 6.004 tools, JSim (a circuit/gate simulator) and TMSim (a turing machine simulator). I imagine it would turn up somewhere on the work-in-progress site:http://computationstructures.org.

Thrilled to be part of this project, Matt notes: I actually wanted to work on something like rewriting BSim, but at the time I signed up I had absolutely no reason to think I would be working on it. Fortunately, after the initial two-week “boot camp”, I was offered the opportunity. Beyond that, being able to work with others to achieve the goals has been helpful – we worked on the parts we were interested in.”

Michelle Johnson, a Course 6-3 junior, made an interactive exercise that helps students form specifications for their implementations of code. It can be used in a classroom setting where TAs can gather all the responses from the students and analyze the data visualization of how the class performed. She also made a suite of tools for edX that allows instructors to track and analyze the progress of their students in an online course through visualizations.

She says about her experience: “The best part of this summer was versatility in the projects I got to work on and the super relaxed environment that the other UROPs and I were in. I wasn't expecting to work in a open environment. I could see everyone in the room while working. I also wasn't expecting working with some post grad and grad students from the edX team. That was really awesome and they gave me great advice.”

So Yeun (Ashley) Cho, a rising junior in Course 18C (Math with Computer Science) took some course 6 classes as a sophomore, but realized that she lacked web-based programming experience. She applied for 6.MITx as a good opportunity to gain a different perspective on course 6.

Ashley worked on two projects: The first one has to do with 6.01 Markov Chain. She (and 6.MITx student Laura Breiman) built an online applet that can help 6.01 students better understand some concepts of Markov Chain and probabilities.

Her second project is on Edx data visualization on grade distribution. Since current Edx doesn't support any tools for instructors to analyze how the students are doing, the data visualization project that she worked on this summer, helps the instructors get a better idea of how the students are doing. For example, from our visualization, they can tell how a student did on an assignment compared to his/her usual (average) performance.

“I loved working with partners, and generally having peers working in the same room. I loved that I could just ask people around if I was stuck on something without having to go talk to the supervisor for every single bug. I also love that the web-programming skills I learned this summer can basically be applied not only to web-based applets/online exercises, but also to making my personal blog.”

Laura Breiman, a rising sophomore in Physics came to take 6.MITx because she had loved taking 6.01 and thought that doing a UROP in computer science might help her determine if she would move on to Course 6. She also worked with several other students on the "Cook My Meat" project -- a steak-cooking visualization for the HarvardX Science of Cooking class. She says: “I ranked this project first during the last round of project selections because I've always loved to cook!” See the project demo at: http://web.mit.edu/6.mitx/www/#steak-visualization

Laura has been coding since 11th grade, when she took a Java based class. She learned Python the summer between my 11th and 12th grade at a summer camp called SSP (Summer Science Program). I used both Python and Java in my free time to solve interesting coding problems online before coming to MIT. At MIT, the only course 6 class I have taken is 6.01.

Her 6.MITx experience has convinced Laura to invest most of the rest of her studies in online education and the user experience. “This summer has definitely given me a real taste of software development,” she notes, “and I think it's a field that I will want to pursue throughout my MIT career and post-MIT life.

Kate Roe, a rising senior in Materials Science and Engineering, learned about 6.MITx through the mailing list that Anne Hunter maintains for EECS jobs. Having taken a few online classes through Courser and OCW and wanting to gain some hands-on experience with programming, specifically web development, Kate found it the perfect opportunity. She had also taken both 6.01 and 6.004.

In 6.MITx she worked on developing applets for the EdX platform (www.edx.edu). Her project involved data visualization for Shakespeare and a meat-cooking simulator that presents the temperature and protein state of various types of meet exposed to different cooking techniques. She noted: “I was especially thrilled to work on the Shakespeare project because Shakespeare is one of my major extracurricular interests. She has acted in six plays with the MIT Shakespeare Ensemble. She was thrilled to use computer science to help make Shakespeare more understandable and accessible. See the demo: http://web.mit.edu/6.mitx/www/#Shakespeare

“After this UROP, I feel that I have a much better grasp on how to use certain technologies that would not come up in the classroom, particularly for web development. I also gained a lot of practice with programming, problem-solving, and data presentation. She also learned a lot about presenting information in a useful way, especially for education. Kate wants to continue exploring ways to optimize online education using tools that are not necessarily available in a traditional classroom setting.

Marissa A. Stephens, a rising sophomore in Course 2, wanted to do something involving education this summer. Experience in past summer camps and 6.01 and AP CS in high school had still not exposed her to JavaScript.

Her final 6.MITx project was the Meat Cooker applet (for which she says “we're still deciding on a decent name.”). She and group partner Kate Roe met with the Harvard Professor that teaches the Science of Cooking class to brainstorm ideas for what web applet would be helpful to the course. They decided on an applet that demonstrated heat diffusion. She notes: “I have always loved cooking, so this project was love at first sight. We watched videos of famous chefs as they explained the proper technique to cook a steak as part of our research for the applet. Many prototypes later, we came up with the current layout and design.”

My favorite part of the project was convincing our mentor that we should have a "live testing" for our steak app. We actually cooked steak and tuna, took pictures, and then ate the fruits of our labor. It was a great chance to get to know my professor better as well as my team. Another favorite experience from this UROP was going down to Harvard to film the explanation of the applet. We got rather excited by the fact that we would be part of the course.

In a more general sense, the fact that the majority of the students are female in a CS-heavy UROP is astounding considering that the ratio of males to females in CS is highly skewed the other way. We also learned pretty much everything we needed to know in the two week bootcamp that preceded the projects, which was a great way to learn the Javascript language.

Marissa also discovered that she really enjoys coding towards a final project -- enough so that she may pursue another internship or UROP involving online education.

Stacey Terman, whose father is Chris Terman (photo below), one of MITx's and 6.MITx’s developers, wanted a way to get more experience with programming and working in a team. As a rising junior in EECS, she had taken several Course 6 subjects including 6.01, 6.02, 6.042, 6.006 and 6.004. But, she had very little programming experience outside of these classes.

One of her favorite things in 6.MITx was the hands-on crash course in Javascript during the first two weeks. “I didn't know a word of Javascript before this program,” she noted, “but the learning-by-doing style meant that every day we got to create some new little web app. By the end of the first week we had all made our own working graphing calculators. I'm still amazed at how much information the instructors managed to cram into our heads in such a short period of time, and it was awesome getting to apply our new knowledge right away.”

Stacey worked with two other people on porting 6.004 courseware to Javascript for use in a browser, while improving them a bit in the process. The three tools they focused on are a circuit- and logic-gate-simulator, JSim; a Turing machine simulator, TMSim; and an emulator of the Beta microprocessor architecture used in the course, BSim.

As a measure of the effect of 6.MITx, Stacey notes: “I definitely feel more confident in my ability to figure things out on my own. The staff mentors are here more for ideas and support rather than specific instruction -- rather than having to ask, "How do I get my code to do xxx?", I'm much more comfortable now just Googling it and figuring out the answer on my own.“

Richard Lu, a rising sophomore in 6-2 is interested in user interface design. He has been working with Prof. Fredo Durand and longer-term UROP, Lili Sun on the Pentimento Player, a lightweight, highly interactive, resolution-independent "video" player. It plays back penstrokes synchronized with audio, recorded by Prof. Durand's software. These strokes are drawn sequentially with varying color, thickness, and fading properties on a virtual whiteboard, which students can interact with by zooming, panning, and clicking on strokes to seek through video.

I have been working on this project with Prof. Durand's other, longer-term UROP, Lili Sun, who had already implemented a basic player. Since then, we have been expanding its capabilities to match the output of Prof. Durand's software. Prof. Durand has been pretty hands-off; he simply requests features, sometimes helps brainstorm a little, and we implement them. The goal is to implement all features in HTML and JavaScript, so that the content is available to all devices and browsers with no installation required.

Richard says: “I found 6.MITx to be tremendously helpful; it was the ideal mix of on-the-board learning, and hands-on practice which transitioned organically into real-world software development. This is a wonderful opportunity for beginning Course 6 students, and I definitely hope it will continue.”