Assignment 6, CSC430, Fall 2017
1 Goal
2 Teams
3 What to Implement
4 Time Limit
5 Presentation
6 Scoring
6.11.0.2

Assignment 6, CSC430, Fall 2017

1 Goal

Work with a team to re-do as much of assignment 3 as possible in 5 hours in a randomly chosen language, and present the results in class.

2 Teams

Teams have been randomly assigned. You should know who is on your team, now. You should also know what language you’ve been assigned. Let me know right away if you don’t know either of these things.

You should probably collaborate using ... Facebook! No, no, I’m just kidding. You should probably use some kind of repository. If you all use github, that’s fine—there’s no need to make the code you write for this project private—but you can also collaborate in other ways. Actually, a github gist might be perfect for this kind of one-file project.

3 What to Implement

Your goal is to implement assignment 3 in the language that you’ve been assigned.

The form that this takes will depend to some degree on the language that you’re working in. Specifically, most languages don’t have s-expressions, or anything terribly similar. In dynamic languages like JavaScript, Python, and Ruby, you can model these using arrays. So, for instance, in JavaScript you might write

['with', ['z','=',14], ['+', 'z', 'z']]

which is a heck of a lot longer than

{with {z = 14} {+ z z}}

... but you’re not obligated to dig up a better parser unless you have time left over.

In a language like Java or Haskell... I think you’d better leave the parser for last, and just work starting with ExprC’s.

Please note that you do absolutely have to write some kind of test cases.

4 Time Limit

No person may spend more than five hours implementing this project. This does not include time spent downloading and installing an IDE or compiler, but it does include time spent on "hello world" tutorials and such.

Please note: You are not going to get very far in four hours!

That’s okay. It’s not about completion. It’s about having a good time, getting to know a bit about another language, and thinking a bit about what that language might be good and bad at.

It’s also an interesting "sprint" exercise in making the most of a short period of time.

After you’re done implementing, you may spend up to half an hour per person assembling your presentation.

5 Presentation

Rather than handing anything in, you will be making a five-minute presentation of your work in class. You may bring a laptop to make your presentation, or you can just put your presentation on the web (for instance, using google’s presentation documents for google drive).

Your presentation should include:
  • Your code. Start with the test cases; this will help your audience to understand how your code is structured. Then show your data definitions, and finally your functions.

  • One slide on the suitability of this language for this task.

  • One slide on the kind of task this language would be best for.

Your presentation is the only deliverable for this project.

6 Scoring

The scoring will be as follows:
  • 1/3: Your effort score assigned by your teammates

  • 1/3: The quality of your code (not its completeness)

  • 1/3: Your presentation