← CSC 313 Teaching Computing

CSC 313 Programming process assignment

(Assignment originally created by Dr. Zoë Wood.)

Computer science is a relatively new field and we are still figuring out how to teach it.

While this class is by no means focused only on learning to program, programming is one important way in which computing professionals and enthusiasts make computers “do what they want”. We’ve all been programming for a while — when you have a bit of experience with programming, it can be difficult to predict or empathise with things that a novice might find difficult or outright strange about learning a programming language.

So, this assignment’s goal is to examine our own programming process and to put us in (what I assume is) unfamiliar territory in terms of language and API. We’ll complete a fairly simple program — the objective here is not the program itself, but rather your documentation of your process that gets you to the final program.

Goal: To examine and document our personal programming process.

Process: We will create an interactive map which shows where in the world our classmates are from. That is, you will create a map that contains a little marker for each of your lab tablemates (should be 3–5, at most). We will accomplish using the OpenLayers API in JavaScript. You may approach the problem using the structure proposed in the Quick Start guide.

Spirit of the problem: Document your coding process in detail to help us explore both the process of programming as well as the process of learning and working in unfamiliar territory. Create a detailed list, including a list of estimated times and activities taken to achieve the final goal. See the subset of my process anonymised as generalised activities so as not to not affect your process.

You may use AI tools to aid you, but note that the spirit of this assignment is to examine and document both the programming process and the learning that takes place as your tackle the problem. Allowing generative AI to complete the entire assignment would rob you of that learning and would lead to a rather uninteresting process document. Remember that you’re not being graded on the correctness of your final solution, so I hope you do not feel pressure to produce a finished project at all costs.

The programming specifications are as follows (intentionally general to allow you to explore your process):

A picture of a map with markers in three locations in California.

Core task: Document your programming process in detail. Here is a sample of my process log. Please produce something similar but complete and with exact details (for example, anything labelled should have the actual feature of code you are testing) - include labels about failures and working steps, etc. Highlight key process elements. For example:

Deliverable: Turn in the following items separately in Canvas: