Instructor: Paul
Tarau, Associate Professor, Teaching
Assistant: Shanti Thiyagaraja – link to grading information
WWW : http://www.cs.unt.edu/~tarau
Description: An advanced software development course, with emphasis on techniques to develop reliable, mission critical software by using a combination of formal specification tools and state of the art development environments. Project and team work based, the course will provide hands-on experience with a complete software development cycle, including testing, deployment and maintenance.
--------------------------------------------------------------------------------------------------------------------------------------------------
Final Project: due Wed Nov. 30 at noon
Convert
the Java code at http://code.google.com/p/kernel-prolog/source/checkout
to equivalent Scala code and create a similar open source git repository at
Google Code, that you will also use as a version control system for managing
team work. Details on the distribution of modules will be discussed in class. Using an agile
software development methodology is strongly recommended. Git comes installed
with typical Linux and Mac OS and on Windows this open source
implementation works quite well. The following roles will be available to
various teams:
1) git site
manager/integrator/tester
2) develop package “terms”
3) develop package “fluent”
4) develop package “io”
5) develop package “built-ins”
--------------------------------------------------------------------------------------------------------------------------------------------------
Assignment 1: due Oct 5 at noon
Redo the benchmark in package ArrayOps shown in class using
Scala’s List package. Also implement QuickSort with the List representation.
Assignment 2: due Wed Oct 26
at noon
Push at least one of the files assigned to your team ported
from Java to Scala to the git site at at http://code.google.com/p/kernel-prolog-scala
. Unless you already did it, as part of the evaluation for this assignment,
please notify the grader about the composition of your team, the module you are
working on, and provide at least one google id to her to ensure you are
authorized as a committer for the project.
Assignment
3: due Wed Nov 23 at noon
Design
and implement in Scala an emulation of a simple control system for a shower
that allows you to set a desired water temperature.
Assignment
4: due Wed Nov 30 at noon
Write
a small Scala program using 2 Actors that handle messages using the react
method, which emulates a simple Ping-Pong game. The ball can be in or out and
the one that misses 5 times, loses. Chance is emulated with a random variable
local to each Actor. We assume that actors are honest and count there misses
locally.