Software Construction Assignment 1: Essay

Due: April 10, 2018 @ 10pm. Please include a README.txt that has both partners' names and email addresses.

You are leading a team of programmers. Your team is about to embark on a new project. You will not modify old code, and you don't need to use any particular existing infrastructure. It is up to you to choose the programming language for this new task, an opportunity that comes along rarely.

Here is what you know so far about the programming task:

  • The project's goal is to implement a game, which requires some amount of "automated reasoning". Typically, automated reasoning uses dynamically allocated memory.
  • The software will interact with consumers (players) via a graphical user interface. Your language should provide a good GUI library.
  • The software will interact with other software pieces over the Internet. Hence, your language needs some basic networking libraries.
  • Your company likes object-oriented programming, but (un)fortunately your boss doesn't really know what that means. Most of the management of your company went to business school and learned to program in RPG. They are aware of old trends in the world: ASP, JSP, Java, PHP, Perl, Python, Racket, and trust your judgment about newer ones.
  • For the purposes of disseminating and communicating with others in your company, the programming language you choose must be able to produce commands (via binaries or shell scripts) that can be used at the command-line.

Your task is to write a memo to your boss that explains your choice and justifies it concisely. Since your boss is busy and old, your memo must be one (letter) page or less. (Upper management has no time or patience for more.) Your boss also likes order. So your memos have to have a certain look. Here is what worked in the past:

 To: Da Boss
 From: ...
 Subject: ...
 Date: 

 blah blah blah ... 
Write the memo with your partner. This assignment will also serve to inform us who is working with whom.

Grade: I will use four dimensions for evaluating your writing: content, thesis statement, paragraph management, and sentence connections.

Hand in this assignment via canvas.



Software Construction