Hack for a Cause
Want to get involved, but not sure teaching is for you? Want to dive into the source code
and use your expertise to help? No problem!
Most of our students use
WeScheme, a cloud-based
IDE that lets anyone with a browser start writing code - no downloads necessary!
Currently, anyone with a Gmail login can also save and share their work with others.
We take a conservative approach to adding new features, making sure that
they will serve a wide audience and help many teachers and students. Below is our
wishlist for contributions that are both in high demand
and which we are in
a position to integrate quickly. For example: a functional API for Google Maps is
waiting for some under-the-hood work, so it's not in the list below. In other words,
we strongly prefer work that's "shovel ready"!
So
grab the WeScheme source, check out the list
below, and add a feature to the software! You'll find your name immortalized on our
homepage.
Server-side (Java, JSP, Racket, various Google APIs)
- Windows Phone 7 - Add the ability to generate app "containers" (self-contained javascript/html
for a WeScheme program) for WP7.
- fAuth - Allow users to log in using Facebook authentication.
- gData - We currently handle program storage, sharing and versioning ourselves.
Rip this code out and use gData APIs instead.
- REPL History - Initially grabbed from Server on page load, allow
users to scan back through previous interactions.
Client-side (JavaScript, Closure Widgets, CSS)
- Fullscreen Animations - Allow the modal World Animation window to be made fullscreen
(browser-permitting).
- Touchscreen Support for Keyboard Input - On platforms without keyboards, provide
gamer-style "soft" controls on top of the World Animation.
- Touchscreen UI - Provide an alternate CSS file, which removes all uses
of :hover and makes controls larger.
- More Responsive REPL and Console - We currently use polling to wait for a server response for
an evaluated expression. Speed this up and save some bandwidth, using AppEngine 1.4's
Channel API.
- Image upload - Support via Google Docs, so images can be automatically
linked to source files (user selects image via client-side dialog box,
image is uploaded to the currently-logged-in docs account, URL is generated and inserted into the code at
cursor position)
- GUI Programming Mode - For a small subset of the Racket language, we have describe a
Visual Syntax
for beginners. Create an alternate mode for the Definitions window that allows students
to drag "circles" from a palette onto a "canvas" to create nested expressions. A mockup
of this mode can be found here.
Other
- Write a Facebook App - Let students embed their games on their FB pages! Let them Share, Like, and Comment on each other's games.
- Hack on CodeMirror - We make heavy use of the incredible CodeMirror library in our editor. By fixing bugs or adding features to CodeMirror, those improvements will flow back to us - as well as thousands of other users!
Granted Wishes
- REPL History - Add history to session state, so users can scan back through
interactions from previous sessions (or simply survive a browser refresh!). - thanks to Neil Van Dyke!
- Better Source Editor - Replace our use of CodeMirror 1 with the new
CodeMirror 2 library, and add autocomplete support
for built-in functions. -- thanks to Will Zimrin!