December 2011 Archives

In the Fall 2011 semester, Prof. Guanling Chen offered a project course on developing Android apps, to prepare our students on programming skills for the fast-moving mobile industry. The course attracted many interests and accommodated 15 undergraduate and 14 graduate students. The students formed four teams, each working on a different group project.

The first half of the course covered the basics of the Android programming, and then students started to work on their projects for about 10 weeks. To meet the challenges of the diverse student background, each project group consisted of both graduate and undergraduate students and had at least one person who did Android programming before and owned an Android device.

The goal of the group project was to deliver a non-trivial app by the end of the semester. To manage the project development, the class adopted a mini-version of agile programming method that had three project iterations, each lasting three to four weeks. The idea was to make a workable app first and then grow it more feature-rich incrementally. For each iteration, each project group had to specify clear goals, the tasks to be completed, and who was responsible for which task. Each group delivered twice-a-week meeting minutes, daily progress “burn-down” charts, and a workable demo at the end of each iteration.

Through this software engineering process and the peer support of the groups, the students successfully completed four exciting projects with the theme of “doing good to society”:

  • The YouMath team produced a fun sports game that teaches kids math skills with different difficulty levels.
  • ThumbsUp took a different approach educating kids by creating a series of mini-games that tests math, logic, and memory skills.
  • The ParentGuard team aimed to help parents block certain apps on their kids’ devices, so they can ban age-inappropriate apps and won’t get surprising bills.
  • Tractivity team went after the goal of encouraging people to be more physically active by developing an algorithm to monitor the number of steps the user has taken (leveraging the built-in accelerometer) and integrating incentives, such as virtual walks.
The teams delivered their final projects and accompanying presentations during the week of December 5, 2011.

The full presentation slides, videos, and downloadable APK files for the apps are available at http://sites.google.com/site/umlandroidclass2011/.



Presentation from YouMath team. The playable Android app binary and similar presentation materials from the three other teams are available here.
On November 17, 2011, Computer Science graduate student Michael K. Penta successfully defended his Master's thesis, entitled “Video Game Creation as a Platform for Mathematical Learning.” Penta had previously earned a B.S. degree in Computer Science from UMass Lowell (2006).

Penta’s work was inspired by an experience he had teaching video game design in a summer camp held at the university. Two of his students were trying to position a cannon ball at the end of a cannon, which could be positioned at various angles. Near the end of a day, the students asked Penta how to do this, and he told them, “That is just a bit of trigonometry. I will show you tomorrow.”

Penta was then surprised when, the following day, the students had solved the problem on their own. As he described it:

I learned that they had gone home and introduced themselves to trigonometry by searching the web. ... These students had taken responsibility for their learning, and became self-directed problem solvers. They had taken a subject disliked by most students and [...] learned the essence of an important math concept. ... They were motivated by their own problem, a problem within a context about which they cared, the game they were making.
Penta used this insight as a jumping-off point for his Master’s project. He set out to develop an intentional learning environment where students would be encouraged to build their mathematical competencies through video game creation.

He then evaluated three different learning environments: an in-school mathematics classroom, an after-school game design workshop, and an after-school mathematics-focused game design workshop. Using a design-based research methodology, Penta created a series of evaluation tools to measure students’ learning, and refine the learning environment in each iteration.

Ultimately, Penta argued that because of curricular constraints, in-school time is not suitable for student video game design projects. He concluded that interventions should be structured around authentic video game design with integrated, focused mathematical design challenges. Finally, he demonstrated that students developed improvements in their understanding of mathematical concepts including plotting Cartesian coordinates, using negative numbers, and finding functions from patterns.

Penta’s work was advised by Prof. Fred Martin. Douglas Prime (College of Engineering) and Prof. Marvin Stick (Mathematical Sciences) were thesis readers. A copy of the thesis is available on Proquest or as a local PDF.


xycoords.png
Video games were programmed in MIT Scratch and Game Maker. In this Scratch program snippet, a student has used knowledge of X and Y coordinate axes, and positive and negative numbers, to program a game character to move up, down, left, or right, in response to arrow key presses.

haunted-mansion.png
“Haunted Mansion,” a student-created game in response to the maze challenge. Student games had to have a “hero” character which moved using the arrow keys, and at least two “good” and two “bad” non-player characters (NPCs). When the hero struck a good NPC, its number of lives had to increase, and when it collided with a bad NPC, it would lose a life. When all lives were lost, the game had to end.

On November 15, 2011, Computer Science graduate student Derrell Lipman successfully defended his Master's thesis, entitled “LIBERATED: A fully in-browser client and server web application debug and test environment.”

Lipman’s research focused on addressing the challenge of developing client-server web systems.

He observed that traditional web-based client-server application development is accomplished in two separate pieces. There is a front-end portion which runs on the client machine, and a back-end portion which runs on the server machine. Typically, the front-end component is coded in HTML and JavaScript, while the back-end is written in PHP, ASP.net, or some another language that can interface to a database.

The skill sets required for these two pieces are different. Often, the front-end and back-end are developed and tested completely independently, based purely on an interface specification.

Lipman addressed this by developing his framework, LIBERATED, which stands for “Lipman’s In-Browser EnviRonment for Application TEsting and Development.”

In the thesis, Lipman proposed a new methodology for web-based client-server application development, in which a simulated server is built into the browser environment to run the back-end code.

This design allowed the front-end code to issue requests to the back-end in either a synchronous or asynchronous fashion, and single-step, using a debugger, directly from front-end code into back-end code, thereby completely testing both components with the desktop browser environment.

In Lipman’s system, that exact same back-end code, now fully tested in the simulated environment, is then recompiled and moved to a real server.

In the defense, Lipman presented the detailed design of LIBERATED, and described how he used it to develop the App Inventor Community Gallery, a web system created for users of Google’s App Inventor programming environment for Android phones to share their projects.

Prof. Fred Martin served as Lipman’s thesis adviser, and Dr. Mark Sheldon served as his thesis reader. Lipman’s research was supported by a grant from Google.

A copy of the thesis is available at http://search.proquest.com/docview/928125360.

liberated.png
Block diagram of the LIBERATED architecture. The programmer uses JavaScript and the qooxdoo framework to code both the frontend and back pieces of the client-server system. The backend runs in a simulated environment in the developer’s browser, and when completed, is moved to a separate server machine. The same backend code is run in both places.

About this Archive

This page is an archive of entries from December 2011 listed from newest to oldest.

October 2011 is the previous archive.

February 2012 is the next archive.

Find recent content on the main index or look in the archives to find all content.

Subscribe to feed Subscribe to this blog's feed