Programmation appliquée en Scala


Project Rules and Deliverables

Project Ideas

Using Scala XML to transcode HTML Slidy to OOXML PowerPoint
The slides for this course were written in HTML Slidy. Sometimes, people want to improve them in PowerPoint. With OOXML, PowerPoint is now an XML format. Write a converter that handles simple slides with bullets, slides with code (traditionally painful in PowerPoint), titles, styles for bold/italic/code, left and centered images, and whatever else you can think of.
An app for in-class quizzes with Play and ScalaJS
Make an app for those “clicker” quizzes that is actually useful. An instructor gives a question code to students. While the quiz is in progress, show a count of how many students answered on the professor's screen. When the professor closes the quiz, display a histogram with the answer counts. Make it so that students can't vote multiple times, and that the professor can see who participated and who didn't. Can you get the JavaScript client to work on a mobile device?
A reactive Play app
Make a complete Play app that does something useful and nontrivial. Your app should take advantage of forms, validation, database persistence (preferably with something better than Anorm), and so on. Make it “reactive”—that is, show off how long-running server tasks can be easily handled. For example, you could write a prettier CodeCheck that runs Scala unit tests and notifies the user when each case passes or fails, instead of pausing for a long time until the report is finally ready.
An Android app
Research what people have done to program Android with Scala, pick a solution, and create an Android app of your choice.
Apache Spark
Adding a recommendation system on StackOverflow using Spark. StackOverflow is an important source of documentation. The entire dataset is available via StackOverflow dataset. Users use tagging system to facilitate questions categorizing. The order of tags given to a question is important. We would like to look at the existing tags and their co-occurrences to suggest possible tags to newly added questions or to enrich tagging system.