As part of Computer Science Education Week, several Penn Manor High School Math teachers explored Hour of Code activities with their classes. District Systems Engineer, Chad Billman, and I talked with students about extending what they learned in class and provided tips on getting started in programming. Here are the resources we suggested in the sessions:
Safari Books Online “Through a partnership with Safari Books Online, O’Reilly Media has committed to over $100 million of e-books and videos that will teach the next generation of students vital technology skills like coding, web design, and more.” Note: This site required a free Edmodo account. – https://schools.safaribooksonline.com/
GitHub Student Developer Pack
“There’s no substitute for hands-on experience, but for most students, real world tools can be cost prohibitive. That’s why we created the GitHub Student Developer Pack with some of our partners and friends: to give students free access to the best developer tools in one place so they can learn by doing. ” – https://education.github.com/pack
Penn Manor Software Projects on GitHub
This is your chance to play with code developed by district staff and fellow students. How can you help make our projects more awesome? – https://github.com/pennmanor
Google Code-in Contest
“Google Code-in (GCI) is a contest for pre-university students (e.g., high school and secondary school students) with the goal of encouraging young people to participate in open source. We work with open source organizations, each of whom will provide a list of tasks to be completed by student contestants. Tasks can be anything an organization needs help with, from bug fixes, to writing code, to user experience research, to writing documentation. The contest takes place entirely online.” – http://www.google-melange.com/gci/homepage/google/gci2014
“MIT OpenCourseWare (OCW) is a web-based publication of virtually all MIT course content. OCW is open and available to the world and is a permanent MIT activity.” – http://ocw.mit.edu/courses/intro-programming/
The growing shortage of qualified programmers, computer scientists and software engineers is gathering significant attention in the media and popular press. Recent efforts from the non-profit organization Code.org have helped shine light on the problem—software is the defining industry of the 21st Century and the pool of skilled talent is slim. Conversely, for students who pursue software development the opportunity for employment is colossal: By the year 2020, it is estimated that there will be one million more programming jobs than available students.
Consider for a moment the tremendous power and influence that programmers wield. Consumer technology gives the illusion of choice, while, in fact, it is somewhat more akin to an electronic Skinner box. Software is essentially a series of prewired options, preselected by programmers to create a prefabricated experience. Facebook is a great example. On the surface, the social media site presents like a choose-your-own-adventure story; one may customize a cover photo, fill a timeline or compile a listing of favorite books or movies. However, changes to the site framework are forboden. Facebook customers are not permitted to reorder content sections, change site colors, experiment with alternate site graphic designs or play with the overall layout. Feel free to live in the house—just don’t rearrange the furniture or paint the walls.
Of course, not every technology imposes such draconian interface restrictions. However, all software fundamentally constricts the end-user to a series of choices and options preordained by programmers. Douglas Rushkoff deeply explores this idea in his book, “Program or Be Programmed.” Rushkoff eloquently cautions: “In the digital age, we must learn how to make the software or risk becoming the software. Otherwise, we are at the mercy of those who do the programming, the people paying them, or even the technology itself.”
In the context of our planned 1:1 high school laptop program, my team and I have been thinking a great deal about how to return creative and constructive agency to our students. We recently witnessed the incredible impact of student apprentice programmers. As educational leaders, how do we break out of the box and help more students gain control of their digital lives? Are there simple, engaging student tools for coding, inventing and learning?
In the past I’ve written about the Raspberry PI as a gateway for teaching students to code. Here are two additional starting points to help students transition from software consumers to creators, and possibly launch a career:
Scratch the surface
Designed for children aged 8 to 16, Scratch is free programming kit from the MIT Media Lab. Friendly and intuitive, Scratch is an easy to learn environment where kids can build interactive games, animations, simulations, stories and artwork. To encourage creative collaboration, projects may be shared and remixed with other “Scratchers” via an online community. At Penn Manor, students have been using Scratch to learn the basics of programming and game design as part of our middle level technology course.
Once available as a local application for Linux, Mac and Windows, Scratch was recently updated and released as a cloud service. Version 2.0 of the toolkit is accessible from any flash-enabled web browser. For educators, the ScratchEd Community is a treasure trove of project ideas, resources and best practices from around the globe.
Welcome The Finch Robot
Put down the slideshow and embrace the age of automatons. Beginning this fall, miniature finch robots will be under the command of Penn Manor students. The Finch is a programmable robot for computer science education by Carnegie Mellon University. Designed and developed in collaboration with educators and students, The Finch is an engaging and low-cost gateway to practical coding and engineering.
Built into The Finch is a suite of environmental sensors for light, temperature and orientation. A sample student starter project would entail programing the Finch to avoid ground obstacles as it roams around a classroom floor. As students master basic programming principles, they can easily move on to designing more complicated behaviors such as dancing or geometrical drawing via a built in pen mount. Remember the original Logo Turtle? The Turtle has evolved into The Finch!
Support for over a dozen programming environments makes The Finch a versatile choice for a diverse array of teaching needs and software comfort levels. While advanced students may jump in and begin programming in Java, the most accessible software starting point for younger students is UC Berkley’s Snap!, a modified descendant of Scratch. Building on the same familiar drag-and-drop interface that makes Scratch so intuitive, students may quickly transpose their existing knowledge to the Snap! program. Like Scratch, Snap! is free and open source; it runs on Linux, Mac and Windows systems.
Several months ago, I blogged about the $35 Raspberry Pi, a $35 credit card-sized mini-computer. Demand for the little computing powerhouse has been staggering, and the nonprofit Raspberry Pi foundation has been working overtime to fill orders for the revolutionary device. After months of anticipation, our Pi has arrived!
Although we had expected the device to be small, we were still struck by the diminutive size of the gadget. The board is also incredibly light; the Pi’s weight is roughly equivalent to 8 U.S. quarters. After attaching a keyboard, mouse, and monitor, we fired up the recommended Debian Linux image. Within minutes we were browsing the web on a capable and fun little computer.
Designed to foster a love for computer science, the Raspberry Pi has huge educational potential. With a modest price, the device offers a versatile option for school STEM initiatives, district kiosks, computer science programs, media centers and other creative projects. The PM IT Team is cooking up a few tech dishes featuring the Raspberry Pi. Check back for more details in the future. In the meantime, here are pictures of our new arrival. Click to enlarge!