Final Project – Bouncing Balls 2

Our partially finished project can be found here:  We are still currently working on collision bugs, though the basic concepts are visible.  Dragging the mouse will create a new ball, with the displacement representing the speed.

UPDATE: The program now runs on the web, though slowly, as it requires many calculations.


Guest Speakers – Jay and Beau Silver

Today, our class had the chance to have a Google Hangout with the creator of Makey Makey, Jay Silver, and his brother, Beau Silver.  They talked about how we should follow our passion and about Makey Makey, an invention kit using alligator clips that can connect everyday objects to the Makey Makey HID board, which simulates keyboard input.

The talk was very interesting and I would like to thank the two brothers for their inspiring talk and for taking their time to come talk to us!

Guest Speaker – Sebastian Alvarado

Yesterday, along with Bret Victor and Mike Marmarou, we also listened to a talk by Sebastian Alvarado, co-founder of  Thwacke Consulting ( and a postdoctoral fellow at Stanford, which helps video game developers make their games more scientifically correct.  He is a molecular biologist and is now working on a game called “Cell”, where the user controls a cell that turns cancerous.  The user learns more about the cell and cancer.  Sebastian described the game as a “game which happens to be educational”, as the game is 100% scientifically accurate.

Thank you very much for coming in to talk to us about your work (and for the magic trick you showed us at the end)!

Guest Speaker – Brandon Tearse

Last Thursday (July 24), we had the chance to have a Google Hangout with Brandon Tearse, who now works for Google.  When he was in college, he interned for Google and thus could give us useful advice about having an internship in the future.  He also gave us some sample questions that might come up on an interview as well as concepts that will be almost always tested, such as algorithms, runtimes, etc.

Thank you very much for taking your time to talk to us, and hopefully, I will get a Google internship in the future!

Guest Speaker – Mike Marmarou

Yesterday, I also had the chance to listen to a presentation by Mike Marmarou, who currently works on the Photos app for OS X and iOS.

He gave us advice about entering the computer industry and advice for the future.

I learned a lot about what I should do to enter the industry and I will surely use this advice in the future!

The presentation of Mike Marmarou can be found here:

Guest Speaker – Bret Victor

We had the chance yesterday to listen to a presentation given by Bret Victor.  Bret Victor worked at Apple and now works for a research company.  He showed us an IDE that he wrote, where the final product would be compiled instantly after changing the code.

The first example was a tree, generated by the program.  He then demonstrated how different parameters of the tree could easily be changed, just be holding the CTRL-key and adjusting the slider that appears.  The colors can also be changed in a similar way.  The code would instantly be run on the left side and the product could easily seen.  Holding the ALT-key over an element in the picture would show the function that drew it, and vice versa.


In the next example, he showed how, with the same method, he could change a character’s velocity to perfectly fit inside a passage.


Bret Victor also showed us an iPad app that he created, where he could animate with his finger instead of having to tediously create time frames.


Lastly, he showed us an interactive page that could visualize data better, instead of lines of text.

After the presentation, I also learned that the philosophies of Bret Victor also influenced Apple’s new upcoming programming language, called Swift.

Swift – Apple

The presentation was very interesting and I learned a lot about creative ways to do today’s problems, such as the new IDE, where there is no need to guess as to where something should go in a program.  Thank you very much, Bret Victor, for coming to talk to us and showing us your ideas!

Below is a talk by Bret Victor, where he shows many of the projects he showed us:

Image Credits:;

Final Project @ SPCS Summer Institutes – Fang, Jove, Penny, Float

We, as a group, have decided that our final project will be a simulation of a particle system, where there will be bouncing balls, combined with elements of physics, including, but not limited to, gravity, collisions with walls and the balls themselves. People will learn much more about physics than they will be able to learn from a textbook because our simulation will be interactive, in the sense that the user will be able to edit and change the parameters, so that they can explore with the elements of physics. Note: There will be buttons and sliders controls to change these parameters. To fit in with the Exploratorium, all we need is a computer that can run our programme. It will fit extremely well with the physics area in the museum. Below, is the prototype of how it may look like at a basic level. Slide1Below is an example of an existing bouncing ball programme. CaptureRoles Fang Lu – Programming Adviser [ Programmer & Designer ] Penny Pan – Artist Jove Yuan – Programmer Float Keerasuntonpong – Programmer Descriptions of Different Versions Easy: For the easy version, we will be able to make the balls bounce around in random directions and they will be able to bounce off the walls. Moreover, we will be able to make the balls be effected by gravitational force, so that it accelerates as it approaches the floor. Clever / Advanced: For the advanced version, we will have full physics implementation. The balls will be able to bounce off each other and other physics elements will be added. The only difference between clever and advanced is that the advanced version will have customizable values.


Last Friday, I had the chance to play around with Arduino, an open-source micrcontroller that can be used to develop interactive objects.  The Arduino came in a starter kit, along with several useful tools and an instruction manual.

Penny and I initially went through the book, creating a flashing LED.  We then created more complicated circuits that would measure the temperature with a sensor included in the kit.  Lastly, I played around with a piezo and made it play songs that I added into the Arduino code.

The day went by really fast and I will surely work more with Arduino later in the future!

Arduino Uno

Open Letter to Hobbyists – Bill Gates 1976

Today, it is certainly obvious that software is important, if not more important, than hardware.  What can a computer do without an operating system?  How many times have you opened a text editor or a web browser?  However, the truth is that many of these software cost money, usually upwards of $100.  In the modern world, this is unacceptable, contrary to what Bill Gates wrote to hobbyists more than 30 years ago in 1976 (see below).  I believe that software should be sold at a lower price, so that it can be more accessible to everyone.

I understand Bill Gates when he writes that it is unfair for him and his coworkers when hobbyists steal his software, which he spent hours on coding.  However, from today’s perspective, this sort of theft is ubiquitous.  A simple search on Google for “[software] free download” will already result in several results.  I believe that the main reason for this is that software today is too overpriced.  If legal, licensed software were to become cheaper, hobbyists might be tempted to purchase the legal software rather than a slightly cheaper cracked software that might be teeming with viruses.  Software today can be very expensive, and, although I know that much work was put into it, I believe that large companies can definitely reduce the price of their software.

The GNU Project has a philosophy ( completely contrary to that of Bill Gates.  They promote freedom in computing, and this means that users can even view and change the source code of the GNU Operating System.  A philosophy like this promotes interest in computer science and it furthermore lets users look at how the operating system is built up.  GNU was launched in 1983 and its presence today shows that an organization committed to free software can still be successful.

Lastly, I would just like to emphasize that, even though I disagree with Bill Gates, I am not saying that software such as Windows 8 or Microsoft Office be sold as free.  I am saying that, if the software became cheaper, hobbyists might use the legal, licensed one rather than the one downloaded from the Internet.

1976 Open Letter to Hobbyists – Bill Gates