On this page:
Software Development

Software Development

Software Development

I expect students to visit this page once per 24 hours starting with the first day of the semester.



Tue Sep 18 22:58:37 EDT 2018

Due to a miscommunication, we pushed the wrong protocol file into your repos’ directories named 4. Assignment 4 (4 — Implementing Protocols, Analyzing the Project) points to the correct one, and we have pushed a revised version by now. Apologies.

[For those who wish to know, I violated the "single point of control" policy and the two copies diverged. See "How to Design Programs" if "single point of control does not ring bells; part III in the second edition (p. 389).]

Mon Sep 17 13:00:13 EDT 2018

Given that there is some demand for more information on git usage, we will hold two recitation sections this coming Thursday:
  • Thursday Sep 20, 10:30am

  • Thursday Sep 20, 11:345m

Both will take place in 212 WVH. You do not have to be signed up for either of these specific sections to attend. Our goal is to use recitation slots extremely sparingly.

Sun Sep 16 14:01:90 EDT 2018

Your language/IDE memos are graded. I applied a simplistic grading scale. You could lose one point per each of the following criteria: file name (place), file format, margins, font size, TO, FROM, memo format, spellos, grammos, and content. For the last one, I used an extremely loose standard (organization, false statements, or completely unsupported claims) and losing points was rare. I did not reduce your score for stylistic faux pas.—Once the grades have been recorded, you will receive the memos from Ben and Sam in your respective sections.

I wrote a memo, too, and I urge you to scan it. The margin notes explain the organization and make a couple of sw dev points.

Sat Sep 15 19:30:34 EDT 2018

I have revised 3 — Exploring Your Favorite Programming Language Some More to relax some delivery constraints and to put your contribution in task 2 in context.

Wed Sep 12 19:45:19 EDT 2018

Systems informed me that their Linux image now comes with GHC Haskell v7.6.3, Rust v1.28, and Python v3.6.3 (python36). The old versions of Python are also available. They could not add Python v3.7 because CentOS (System’s choice of Linux) is not supported yet.

Tue Sep 11 22:02:43 EDT 2018

1. 2 — Exploring Your Favorite Programming Language specifies JSON as input. For you, you are guaranteed that your executable will be run on JSON values and you may crash for all other inputs.—In a robust system, your application will gracefully time out on bad inputs and eliminate the source.

2. A rectangular arrangement is a form of information. As Fundamentals I taught you (and Fundamentals II and OOD), you must pick a data representation from the data sub-language of your chosen language to get information like this into your language. And you must allow for ways to hand over such data to get build a "large" spreadsheet representation easily.

Mon Sep 10 17:41:12 EDT 2018

READMEyou do not need to set up a readme or a testme file until we start the project.

The "16pt baseline" requirement refers to the line spacing. Yes, this intentionally leaves little space for writing. Concise writing is good writing. Only (some) high school teachers reward you for writing a lot.

Wed Sep 5 09:12:57 EDT 2018

There will be no recitations until further notice.

Wed Aug 8 13:56:08 EDT 2018

Please reflect on all the programming languages you have experienced in the past and with which you would like to implement a serious project. Then pick your currently favorite language and make sure it is installed on your laptop. Bring a letter-size sheet with the name of your chosen language to the first lecture. Fold the sheet and place it front of you on the table in the classroom so that the instructor can see it.

Sun Apr 8 16:21:26 EDT 2018

Preliminary Web Site

This web site is preliminary. It is set up to assist people with choosing the section of Software Development that they wish to enroll in. Please read the Abstract to get an idea of how I run this course.

Hells Bells