The Course
Course Table of Contents
- Week 1 - Python Development Overview
- Week 2 - Python Dev Continued
- Week 3 - PyGTK/Glade Development
- Week 4 - PyGTK/Glade Dev Continued
- Week 5 - A Major Project (includes week 6)
- Week 7 - Sugar Familiarization
- Week 8 - XO Specific Material and Application Deployment
- Week 9 - Pygame and OLPCGames
- Week 10 - Mesh Networking
- Week 11 - Final Project (through the course's completion)
Other Areas of Interest for Students
- BitFrost Overview - OLPC's method of maintaining security on a child's laptop
- Version Control - Learn to use OLPC's preferred method of version control, git
- Getting Involved - How to get involved after the course!
Course Inspiration
How We Got the Idea
The idea for an OLPC college course came about with OLPC@Duke's conversation with a professor in CIS at University of Delaware, Lori Pollock. She expressed an interest in creating a course, but was unsure of exactly where to start. She contacted us:
I've been looking into getting students involved either through a course or club in the OLPC program.I would like to learn more about how you got started in developing software and learning about the XO laptop itself … Could you give me some insights into how you got started with the program … I'm very interested in seeing if I can get students here involved in programming for these laptops and in volunteering to help start a pilot program nearby, to give to the community and see how cs skills can indeed help the world be a better place. -Lori Pollock
It was at this point that we realized we were in a special position to offer insight not only into pilot programs, but also software development. We were in the process of getting up to speed on development
Inspiration for the Format
We took inspiration for the format of the course materials from Professor Duvall, who teaches mainly from a computer (and does so successfully). The adapted material and resources that are linked to are all conducive to a classroom taught in much the same fashion.
Contributions
Alex Keybl
- Python Development Overview (part 1)
- PyGTK/Glade Development
- Sugar Familiarization
- XO Specific Material and Application Deployment
- Mesh Networking
Perry Nelson
- Bitfrost Overview
- Assignment Creation
- Final Assignment design and solution
- Example Mesh Networking application
John Pena
- Python Development Overview (part 2)
- Version Control with Git tutorial
- Game Development with Pygame and OLPCGames
- XO Specific Material and Application Deployment
- Community Involvement
Course Plan
Who's Involved
This course is being developed as an independent study by:
- Alex Keybl
- Perry Nelson
- John Pena
Course Idea
We were brainstorming today during our meeting about the direction of the rest of the independent study project. We're now considering the idea of designing a university level course that will teach application development on the XO. This would involve creating a syllabus/course schedule, a series of lectures and tutorials along with assigned reading, and a set of projects along with their solutions. The target audience for this course would be computer science majors with development experience. We could see this becoming a service learning class like those that are taught in other departments.
The reason for this change in direction is that we are unhappy with our current progress, and we recently got a call from a Professor at University of Delaware wondering if there was any course material for XO development. This really got us thinking. As of right now we have the following idea for going forward - we will go week by week creating the course material in a wiki for the next 14 or so weeks (so 1 week of independent study:1 week of the course). Right now we have the following ideas for how the course would be done:
- Weeks 1-2 Python Development
- Weeks 3-4 PyGTK/Glade Development
- Weeks 5-6 Major PyGTK Project
- Week 7 Familiarization with Sugar
- Weeks 8-10 XO Specific Material and Application Deployment
- Week 11-14 Research into PyGame/mesh/sensors/etc., and creating a new project or adding it into the last major PyGTK project
We plan to begin adapting our current work and python tutorials into a working model. We're going to use the following materials: