Why do we need CodeFurther...?
The answer is because in my opinion there is an enormous gulf between interactive programming like Scratch, and text-based languages like Python.
This gulf isn't so much in the required skills, techniques or appropriateness of either environment, but instead is more about the significant step-back in the level of engagement for the child.
Moving from an environment where a game of their own design can be created within 5 minutes of dragging and dropping, to an environment where they are presented with a blank page and a flashing vertical cursor will only engage those that are already committed to learning to code.
CodeFurther... is an effort to make a connection between the student and the programming task, and to hopefully engage the student and convince them to code further...
How does CodeFurther… Engage Students?
CodeFurther... attempts to engage the young coder, coming from Scratch or other non-text-based programming environment, by presenting them with a variety of data that should be of interest to them.
They are encouraged to learn coding techniques so that they can process that data to glean information of interest.
Finally, they are able to share this information using modern computer-based communications mediums - such as social networking.
What Data Sources Are Available?
Data sources will continue to be added to CodeFurther... over time, but the data that has either been implemented, or is under active development include Football Data - tables, fixtures, teams (Premiership as well as major European leagues), BBC Top 40 Charts - Albums and Singles, Song lyrics, Directions from A to B - walking, cycling and driving, and Weather forecasts - hourly and daily.
Other data sources that will be added include IMDB - actors/films/etc., NASA mission information, Twitter trends, Google Docs, iTunes store trends, Geological survey data, etc.
How can Students Share the Information?
Once their coding skills have been honed by processing the raw data from CodeFurther..., the resultant information can be shared electronically. Communication mechanisms will be added over time, but mediums actively under development include: Twitter, Email, SMS Text Message, MMS Text Message, and Slack.
Other mechanisms on the roadmap include FaceBook, SnapChat, Flickr, Instagram, etc.
What are the Design Goals for CodeFurther?
CodeFurther... has a number of design goals.
- To access a data source should take fewer than 5 lines of code.
- To share the resultant information socially should take fewer than 5 lines of code.
- Accessing CodeFurther functionality should be simple for beginners, but also allow more experienced coders to use advanced features
- All functionality should be available by installing a single Python module using the Python pip command.
- There should be no direct cost to the school for using the service.
What about administration and control?
A longer-term objective for CodeFurther is that data sources and communication mechanisms should be able to be turned on and off on a region, school, class, teacher or pupil basis. This would provide control to allow some or all of the capabilities to be provided to students depending on the specific policies of the school.
...is a package of Python modules designed to help educators to inspire young coders to, well, code further...
CodeFurther is currently Alpha code and is under active development, so for the time being you should proceed with a little caution.
CodeFurther is open source so contributors and contributions are welcome. It works with Python 2 and 3.