Last semester, I did an independent study to learn iOS development with my best friend, x roommate, and fellow CS student Mike.


Mike and I, both being Computer Science students, have grown very passionate about Computer Science as a field of study. Unfortunately for us neither of us had any exposure to CS prior to EECS 183/ENGIN 101 here at the University. Such is the case for every student within the Detroit Public School district where there is no curriculum in place to teach students any amount of Computer Science, which is the fastest growing industry in the world today. If we are serious about preparing our children for the future past High School, we are doing them a disservice by not offering them any Computer Science related courses.

Our greater goal is to design an after school program curriculum to expose High School students to Computer Science. A part of that goal, is enabling them to teach themselves, and ultimately prepare for the AP EECS exam.

To help us achieve this goal, we developed an iPad application, with an accompanying study guide that aims to give the student a broad understanding of the content that will be on the AP EECS exam. This app, in conjunction with other resources, helps prepare the student for the AP EECS exam. This app can be used as part of achieving our wider goal of offering an after-school Computer Science course in High Schools that don’t otherwise offer any computer science related content.

EECS 101 at UofM

Last semester marked the first offering of EECS 101, a course taught by Jeff Ringenberg which is designed to be equivalent to the new, more theoretical AP EECS exam. Having this class offered at UofM enables the University to accept AP EECS credit from incoming students who did well on the AP EECS test. We worked with Dr. Ringenberg and used his course slides and information in designing the study guide and accompanying questions for this app.

The Study Guide

Half of the goal of this independent study was to have a study guide that clearly, and concisely presents the student with AP EECS course content. This study guide is embedded within the application behind the “Study” button in the upper-right hand corner.

The App

The app itself is primarily a question asking application that enables the user to study the content in the study guide. A button in the top right of the app, labeled “Topics” will present the user with a list of topics that they can study in-app. Selecting a topic causes the app to begin asking the user questions for the selected topic. As the user cycles through the questions, their progress is tracked and saved, so they can track their progress as they learn the material.

The content of the questions that the app asks are defined using xml, and adding new topics or questions is as easy as modifying the xml file. The app supports various question types, and developers can easily add new ones by inheriting from a base class that we created. Additionally, images can be added to the questions within the XML file by just adding an attribute to that question.

The Outcome

When we first set out to create this app, we had the vision of using it as just a study guide for EECS 101. Along the way, however, we realized that this app can be used as a study platform for literally any subject one wants. After this was decided, we abstracted the app enough to be able to handle questions from any subject, as long as they follow the construct we created for questions. Making the app in this manner opens up the opportunity for growth in any area of study, anyone can create a 'course', upload it to the internet, tell the app where to look for it, and study the materials provided.

I am in talks with a professor at the university about turning the source code over to Michigan for continued development. Unfortunately, neither Mike nor I have had any time to do much with the app since we've handed it in, but a few screenshots are below to illustrate the way it works.