NOTE: This is a tentative project list and is subject to change. This term UCOSP is happy to be partnering with six projects:
- Markus: Web-based grading platform.
- UMPLE: UML modeling and programming tool.
- BB10 Phonegap: Mobile app platform.
- Formulize: Database, reporting and workflow management system.
- Review Board: Code review tool.
- Fish: Web platform for simulation-based experiments.
MarkUs is a web-based grading tool built with Ruby on Rails. The primary goal of MarkUs is to make it easy for graders to read and annotate students’ code. Graders also fill in a marking scheme or rubric created by the instructor. Annotations may be saved for later reuse. Students submit their code using either the web interface or using standard Subversion tools, and can form their own groups when allowed by the instructor. As MarkUs grows, we continue to add more useful features including a REST API that allows some operations on MarkUS to be scripted, a remark request system, more reporting, and support for PDF annotations. We are also working towards integrating a testing infrastructure that would allow students to run instructor created tests on their submission and get realtime feedback. Students working on MarkUs will learn basic web application development technologies using Ruby and Rails. MarkUs is hosted on github so students will become familiar with Git and the process we use when working on the code. Because MarkUs is used by several thousand students in more than 4 universities (on 3 continents!), we take code quality seriously. All code submissions go through a code review, so the first task that students are asked to complete is fixing a trivial bug so that they become familiar with the code review process. Students working on MarkUs need to be able to work in Linux either natively or in a virtual machine. As the summer comes to a close, we are putting together a list of the next projects, but here are some of the areas we are looking at for the fall. 1) Completing the transition from Prototype to JQuery. This will be a good project for someone wanting to learn JQuery and willing to do some detailed work. 2) Enhancing the grade entry table. MarkUs includes a simple table that can be used to entry grades for tests or labs for example. It works reasonably well, but is missing some features and needs more testing. 3) Continue work on a git back end. In the current version, student files are stored in subversion repositories, and we would like to allow instructors to set up git repos instead. 4) Implementing additional user requested features. Many of these are recorded in the issue tracker. 5) Work on the port to Rails4. We may be nearly finished this port, but there are often additional things to clean up. More information: http://markusproject.org/ and their blog, http://blog.markusproject.org/
Umple is an open source toolkit whose objective is to merge UML modeling and programming into a single activity. Umple can be used in several ways: It can be used as a textual language for UML. It can also be used as a programming-language pre-processor, allowing UML concepts like associations and state machines to be added directly to Java, C++, and PHP. In addition, Umple allows drawing UML diagrams online and generating code directly from those diagrams. It is the goal of the Umple team to have large numbers of programmers and modelers incrementally adopt Umple. The barriers to entry are low, since using Umple can be done in a minimal way, without disrupting the existing model or code. Umple is an open-source project hosted on Google Code. You will have the opportunity to learn some or all of the following:
- Model-driven design using UML
- Test-driven development using JUnit
- Compiler design including parsing and code generation
- Web site design (of the UmpleOnline tool)
- Eclipse plugin development (of the Umple plugins)
- A variety of other libraries and tools
- Agile open source development with continuous integration
PhoneGap/Cordova Plugins for BlackBerry 10
- Download Formulize and docs.
- Read the history and roadmap for Formulize.
- Browse the GitHub repository.
- Video tutorials for using Formulize (the full series is about three hours, but you can skip around between various videos at your leisure):
- Learn about our version control and continuous integration process.
- Visit the Formulize support forums.