Blog Archives

How Transistors Work

Suppose you learned that transistors are a fundamental building block of modern electronics, and you decided to learn about how they function. If you looked at the first result in a google search you would see this Wikipedia article filled with technical details, but not that much beginner-friendly clarity. As with many such important concepts, explaining it at just the right level of detail to be both technical and accessible is a serious challenge.

To the rescue comes Derek Muller, creator of the Veritasium Youtube channel, who demystifies the idea behind transistors. His video features just the right type of animations and visual props to make a point without getting lost in technical details that would only be relevant to graduate students or scientists. If you’re interested in electronics, this six minute video is as good a starting point as any textbook or lecture.

Hackathons Coming to a University Campus Near You This Fall


The stereotype of a computer programmers is that of an antisocial person sitting in a cubicle or basement, staring at a computer screen late into the night. Although there may be some truth to this, writing code that matters often requires quite a bit of social interaction. None of the software that we use today would be around if it were not for the collaboration of thousands of software engineers who exchanged ideas, fixed each others bugs, and perhaps even provided moral support.

For young programmers, getting together with their peers as well as with seasoned veterans is an educational experience that elevates programming from homework assignments and tests to serious product development that can affect lives. This October MIT is hosting its annual hackathon, a three day get-together for college students and high school students who are eighteen years old or older, that serves as an engineering fest and competition. Students can build anything they want while sharing ideas with fellow participants and learning from invited experts. A few weeks later, Yale is hosting its inaugural hackathon with a similar format. If you’re an undergraduate interested in the software industry, either event is the place to be. If you teach computer science and your college or high school does not host hackathons, you should consider organizing them as a way to get students to work together on exciting projects.

A Video Game Company Recruits, Trains, and Reaches Out to High School Students

The desire to create their own video games is one of the top reasons why kids give programming a try. As a result, teaching programming through computer game creation has become increasingly popular. One can now easily find books and after school programs that follow this trend, but as tempting as this approach may be, it suffers from false expectations. A student who wants to learn how to make video games doesn’t realize that computer science educators are more interested in teaching him how to program than in helping him create something that resembles the slick professionally-produced games that he plays at home. Of course, the initial excitement of creating your own computer program may compensate for unmet expectations, but it’s not clear that this is a good trend.

What if, on the other hand, students could create real modern video games alongside industry professionals? That is the idea behind Pipeline, an outreach effort by Valve, a major video game company. They have recruited a group of high school students who are working alongside their much older colleagues on video game titles that will be sold to millions of players around the world. These students are not only exposed to the video game industry, but are sharing their experience with their peers through the Pipeline website. This may be the easiest way to learn about what it actually takes to make a professional video game. Learning to code is important no matter what your goals are, but if you’re interested in joining the video game industry, signing up for Pipeline will give you a realistic view of the work and knowledge required to do so.

A Comprehensive Introduction to Information Theory for Complete Beginners

The term ‘information age’ is a modern cliche, yet few realize that the word information has a precise mathematical meaning with far-reaching consequences. Information theory is one of the great developments of the twentieth century that spans multiple disciplines including mathematics, computer science, electrical engineering, and biology. Unfortunately, although some of the fundamental ideas of this subject are easy to convey to even the youngest students, it is completely absent from the school curriculum.

Luckily, the filmmaker, Brit Cruise has created “The Language of Coins,” a series of videos about information theory that is accessible to a general audience. The series begins with a close look at the way we communicate and continues on to more advanced topics like Markov chains, which is an important modern tool of applied mathematics. In all, there are sixteen videos; twelve are already available online and the remaining ones will be posted soon (the complete playlist is available on Youtube). You need to know about information theory and if you don’t, you should start with this excellent series.

Startup Engineering: A Course for Advanced High School Students and Their Teachers


Successful startup founders seem to be starting their companies earlier than ever before. Whereas Bill Gates and Mark Zuckerburg dropped out of college to start their companies, David Karp whose company, Tumblr, was recently acquired by Yahoo, dropped out of high school to work on his own software projects. While leaving school is not a requirement for successful entrepreneurship, starting early can help.

High school students who have completed an AP computer science course, or who have had previous programming experience, and are interested in learning about the way software engineering is done at the top startups, can now take a startup engineering course that will not only expose them to the latest technology and methodologies, but will give them an opportunity to launch their own project. Stanford University is offering this free online course through Coursera, and although it is a massive open online course (MOOC) it will have a few unique features that set it apart from other MOOCs. First of all, students will be exposed not only to the technical tools of the trade, but also to the business side of starting a company. Secondly, and perhaps more importantly, students will complete a final project that will entail building their own web application, and the best projects will qualify for prizes from sponsoring startups. The course starts June 17 and should be an interesting learning experience for both students and their teachers.

Photo credit: hackNY

Mechanical MOOC: A New Type of Online Course That Teaches Basic Programming

mechanical mooc picture

Most massive open online courses (MOOCs) seem to follow a familiar pattern. Thousands of students sign up for free structured courses that require first watching videos of university professors lecturing and then doing homework and taking exams following a strict schedule. These MOOCs tempt students looking for convenient and free access to top universities, but unfortunately most of those who sign up drop out without completing the courses. One of the problems maybe that not everyone learns at the same pace and some students may simply not have enough time outside of work and school to put in the required hours every week. The Mechanical MOOC, a collaboration between MIT OpenCourseware, OpenStudy, Peer to Peer University, and Codecademy, is taking a stab at addressing some of the underlying problems plaguing most MOOCs. In their course A Gentle Introduction to Python, they are eliminating an instructor and a strict schedule and instead encouraging students to work in groups to learn at whatever pace works for them. There will be a mailing list that will coordinate all learning activities and direct students to the the appropriate resources, but beyond that there will be complete freedom for groups of students to work together and help each other while following their own schedule. Most of the material will come from MIT OpenCourseWare and OpenStudy will provide a question and answer forum to facilitate group discussions. The course begins in June and given it’s flexible nature is worth a try for those who have had a hard time committing to any of the other MOOCs. You can sign up here.

Preschool Computer Science: Kids Programming Adults


If you’re now convinced that preschoolers can learn advanced mathematics, you should not be too surprised to learn that preschoolers can learn computer science equally well. That is the idea behind How to Train Your Robot, a lesson designed to help kids ages 5-7 learn basic programming and computer science. Nikos Michalakis, the man behind the idea has a simple proposition: kids use a starter set of simple commands that consist of primitive symbols to program adults who must obey the instructions exactly as they are written. Once kids are comfortable with the basic commands, they can create their own additional commands, and this is what makes the possibilities endless. For those who are ready to put his ideas to use, Nikos offers a post on how to teach one of his classes based on his own experience. One of the advantages of his approach is that it does not require computers or knowledge of any programming languages and that makes it easy for adults with no programming backgrounds to try it out. If you like this computer-free, running around type of learning, Computer Science Unplugged is a good followup to “How to Train Your Robot” and it introduces more computer science theory to older students.

Computer Science Unplugged: A Computational Thinking Curriculum Without the Computer

cs unplugged image

The chorus calling for teaching computer science to all children seems to be getting louder by the day. Even the White House seems to think that programming is the new literacy. Programming is clearly an important skill, but the rush to teach programming languages and popular web technologies seems to have eclipsed a much more fundamental aspect of computer science: computational thinking. Billions of lines of code may run today’s infrastructure, helping land airliners and processing billions of dollars in commerce, but behind that code are algorithms and deep mathematical ideas. Unfortunately, most of the theory of computer science is left to either AP or college-level courses, which is too late. Computer Science Unplugged, a free computer science curriculum that features activities, games, and problems, seeks to address that problem. The curriculum comes with a free book that contains engaging activities, some of which are kinesthetic, but which cover topics like binary numbers, information theory, and searching algorithms. Computer Science Unplugged is appropriate for children as young as seven and is a good way to incorporate computer science concepts into regular math classes or enrichment programs. In some ways, the best part of the curriculum is that it does not require a computer and lets students move around.

Mindstorms: Children, Computers, And Powerful Ideas

mind storms book

Some of the most crucial steps in mental growth are based not simply on acquiring new skills, but on acquiring new administrative ways to use what one already knows.

If you’re only going to read one book on learning Mindstorms: Children, Computers, and Powerful Ideas has to be it. On the surface, this may seem like an outdated book about computer science education, but it is really a profound study of how people learn anything from math and physics to juggling and skiing. Written by Seymour Papert, one of the pioneers of artificial intelligence and the creator of what would become the MIT Media Lab, Mindstorms illustrates the idea that children can use their own “objects-to-think-with,” intellectual structures of their own making, to acquire, and more importantly, to work with increasingly complex and abstract knowledge. The book is filled with concrete examples of students learning something completely new or even fear-inducing (like math) using knowledge and intuition that they already have. Logo, the programming language that Papert co-created, serves as the primary example of a tool that helps students reason about new ideas (not just in math) in a perfectly rigorous yet comfortably intuitive way. Whether you’re interested in math and computer science education at the K-12 level or want a deeper understanding of how people learn without all the education jargon than this book will be indispensable.