22 March 2019
Due on Assigned Day (Beginning Monday, 15 April 2019)
All homework and programming exercises must be prepared in accordance with the instructions given in the Syllabus. Each assignment must be submitted to your instructor by its stated deadline.
Citations: In accordance with expected scholarly and academic standards, if you reference outside textbooks, reference books, articles, websites, etc., or discuss an assignment with individuals inside or outside the class, you must document these by including appropriate citations or comments at prominent places in your submission such as in the header of the primary source file.
Identification: Put your name, course name, and assignment number as comments in each file you submit.
This is the semester project. It is a team assignment, normally for teams of two students. The team membership must be approved by the instructor.
Choose some advanced Scala or functional programming topic. The topic must be approved by the instructor.
Example Scala topics include aspects of Spark, futures and promises, software transactional memory, actors (e.g. Akka), parallel collections, web frameworks (e.g. Play), scala.js, scala native, sbt, Jupyter notebook for Scala, Scala testing (e.g. ScalaTest, JUnit), cats library, scalaz library, shapeless library, Ammonite REPL, Vegas visualization, type classes, monads, some topic related to your research or job interests, etc.
Prepare to teach one day of class (approximately 45 mintues). Use slides, handouts, examples, active learning exercises, etc., as needed to support your class presentation and discussion.
All members of the team are expected to participate in both the preparation and teaching of the topic.
After the presentation (as defined later), submit a digital version of your materials to the Blackboard site. (You might want to organize this as a hyperlinked collection as your instructor does for his class materials.)