2IS20 (Software Construction): 2005 edition

 

This page is for the third trimester of the Software Construction course taught by Prof. Bruce Watson. Below, you will find details (those in red are from last year, but give a hint of where we’re going).

 

Lecture structures and sheets/notes

Below, you will find a brief sketch of where we’re going or have gone. This year, you will get an overview of our work in software construction in Eindhoven, and a short course on Aspect-Oriented Programming, given by Tamas Kozsik. For more information, attend the lectures. In the links, you will mostly find Acrobat documents of sheets or research papers. Some of them are also to be found in the library; I wouldn’t really suggest that it’s interesting to print them all out, but rather to read online. (Please note that the chosen dates are subject to some changes.)

  1. Wednesday 20 March: We begin with an introduction to modern software construction, along with the specific foci of the software construction group in Eindhoven. The sheets from this can be found here.
  2. Monday 11 April-Thursday 14 April: guest lectures on Aspect-Oriented Programming. The complete details are given here.
  3.  
  4. Lecture 3 (Wednesday 19 May): We have an introduction to TABASCO (Taxonomy-Based Software Construction). The sheets for this consist of the first few sheets here. Since there are some weeks between lectures 3 and 4, you are very strongly encouraged to read the papers here (see lecture 7).
  5. Lecture 4 (Wednesday 26 May): Loek Cleophas presented a real-life taxonomy (for keyword pattern matching); the online sheets for the real-life taxonomy are here, some examples in PDF are here, and the same examples in PowerPoint are here.
  6. Lecture 5 (Wednesday 2 June): We continued the real-life taxonomies, going further with the algorithms for building/constructing minimal acyclic deterministic finite automata, with the sheets here. The monograph that I mentioned is here.
  7. Lecture 6 (Wednesday 9 June): This extra lecture will be given by dr.ir. Tom Verhoeff (also from the TU/e); he will present material on his Puzzle Processor. You will NOT have to do a separate assignment on this topic, but you can expect this to be a rich source of ideas for your project. Tom’s lecture notes are to be found at www.win.tue.nl/~wstomv/edu/soc/
  8. Lecture 7 (Wednesday 16 June): Today’s lecture will actually be a closing-off of this course, since all of the material I want to present in class has been giving, and it just remains for you to do some reading and also finalize your project. For that reason, in class today, I will specifically expect each group to give a short (3-10 sentence) description of their chosen field, and what they intend to accomplish (taxonomy, toolkit, DSL, benchmarking, …) in it. Come prepared!

Project/assignment

As you will hopefully recall, this course will be evaluated on the basis of a project done in small groups. Here are some details about what you need to deliver:

  1. Complete it, and submit it to me (by email only at b.w.watson@tue.nl, not any other email address for me — marks will be deducted if you do) by the 15th of July 2005.
  2. It must have a short report included in the package. You can write in Dutch or English with no penalty either way. It should not be too long (I would expect in the region of 15-40 pages (not including your code, which should be submitted electronically in a zip file) — I’d be surprised if it were shorter or longer) and should describe:
    1. The problem area you are dealing with.
    2. Your taxonomy (if you did one), including some choices you made.
    3. Your toolkit, including implementation issues.
    4. A DSL or benchmarking data, if applicable.
  3. You should include your code, along with whatever project or make files I might need to rebuild it. It must also include a read-me about how to build it, and perhaps a demonstration file.

Please take care to send the report in .ps, .pdf, .html (no scripting), .dvi or .rtf formats in case of viruses. Similarly, please make sure you scan your .exe files if you include some kind of demonstration.