On this page:
Software Development
Home
8.11.1.5

Software Development 🔗 ℹ

Software Development

From the first day of the semester forward we expect students (you) to visit this page once per 24 hours.

“To be any kind of professional means being willing to tell the client a truth he doesn’t want to hear.” – Holman W. Jenkins, Jr.

“I’m still friends with folks I worked with decades ago, many who would beat me up in meetings, ripping apart my arguments with what seemed like an ice pick. Still, they made me better.” – Andy Kessler

“It is on the syllabus.”


Tuesday, December 12th, 2023 11:03:16pm

The End

Sunday, December 3rd, 2023 10:38:39pm

Due to the automatic extension, the self-evaluation file will be pushed to your repository tomorrow morning. It is due tomorrow evening at 6:00pm.

Friday, December 1st, 2023 11:03:49am

The server-client homework (“Runnable Tasks” from 10 — Revised!) poses a unique challenge. While a pair’s server and client may communicate correctly across a network, this “success” may just mean that both implement the protocol in the same broken manner.

You may wish to get together with another pair to connect their clients to your server and vice versa. This should work as long as you’re on the same subnet in WVH or as long as you disable some parts of the firewalls in your home’s network router.

This does not give you permission to inspect each other's code.

Wednesday, November 29th, 2023 8:36:31pm

Code Walks for Thu, 30 November 2023

Section MF-915:

    Presenters: Alan Hu, Nicholas Mower

    Head Reader: Kevin Li

    Assistant Reader: Joshua Ayaviri

    Secretary: Taiga Wad

    

    Presenters: Eden Gugsa, Alina Geng

    Head Reader: Haiyi Jiang

    Assistant Reader: Jonathan Lee

    Secretary: Moe Thu

    

Section MF-1030:

    Presenters: Lucas Martin Sanchez Sta Maria, Andrey Piterkin

    Head Reader: Jasmine Lai

    Assistant Reader: Miles Vollmer

    Secretary: Angela Shen

    

    Presenters: Luke Jianu, Martin Celo

    Head Reader: Rishan Annadurai

    Assistant Reader: David O'Brien

    Secretary: Nikhil Goel

Wednesday, November 29th, 2023 5:05:22pm

You may wish to run your xerver/xclients scripts (10 — Revised!) on these sample tests.

Tuesday, November 28th, 2023 9:09:13pm

Code Walks for Wed, 29 November 2023

Section MF-915:

    Presenters: Taiga Wad, Jay Martinez

    Head Reader: Moe Thu

    Assistant Reader: Yechan Na

    Secretary: Eden Gugsa

    

    Presenters: Matthew Stetter, Jake SchisselAidan Sullivan, Meixia Sindelar

    Head Reader: Kevin Li

    Assistant Reader: Sanat Shajan

    Secretary: Jonathan Lee

    

Section MF-1030:

    Presenters: Aidan Sullivan, Meixia SindelarJake Pine, Josh Moffat

    Head Reader: Nikhil Goel

    Assistant Reader: Lucas Martin Sanchez Sta Maria

    Secretary: Kevin Chen

    

    Presenters: Daniel Allex, Jasmine Lai

    Head Reader: Luke Jianu

    Assistant Reader: Martin Celo

    Secretary: Rishan Annadurai

    

Section BL-250:

    Presenters: Nick Freeman, Derek Kaplan

    Head Reader: Ari Leichtman

    Assistant Reader: William Londergan

    Secretary: Nathan Kirschner

    

    Presenters: James Roth, Ethan Mouri

    Head Reader: William Redding

    Assistant Reader: Joseph DiSpirito

    Secretary: Luke Taylor

    

    Presenters: Ethan D'Costa, Will Priebe

    Head Reader: Maxwell Pirtle

    Assistant Reader: Nolan Lemery

    Secretary: O'Neal Kpodar

Sunday, November 26th, 2023 7:57:11pm

Code Walks for Mon, 27 November 2023

Section MF-915:

    Presenters: Jessica Huang, Trang (Jenny) DoJonathan Lee, Sanat Shajan

    Head Reader: Meixia Sindelar

    Assistant Reader: Jay Martinez

    Secretary: Moe ThuEthan Carpenter

    

    Presenters: Kevin Li, Haiyi Jiang

    Head Reader: Alan Hu

    Assistant Reader: Alina Geng

    Secretary: Sanat ShajanJessica Huang

    

Section MF-1030:

    Presenters: Kevin Chen, Joshua Ayaviri

    Head Reader: Miles Vollmer

    Assistant Reader: shivam patel

    Secretary: Shashank Jarmale

    

    Presenters: Andrew Coeytaux, Hugh Hudson

    Head Reader: Aidan Sullivan

    Assistant Reader: Andrey Piterkin

    Secretary: Daniel Allex

    

Section BL-250:

    Presenters: Nikhil Goel, Nathan KirschnerLaurel Parsons, Matthew Goldgirsh

    Head Reader: Josiah Borgstede

    Assistant Reader: George Doty

    Secretary: Joy Hutchison

    

    Presenters: David O'Brien, Ha Ngo

    Head Reader: Jerry Liang

    Assistant Reader: Nick Freeman

    Secretary: Luciano Szekely Corsi

    

    Presenters: Tyler Chung, William Redding

    Head Reader: Ari LeichtmanJake Lynn

    Assistant Reader: Nicholas Mower

    Secretary: James Quinlivan

Tuesday, November 21st, 2023 2:20:49pm

Here are the results of your vote on the presentation/paneling grades:

ok+

     

ok

     

ok-

     

zero

99

     

93

     

86

     

74

Wednesday, November 15th, 2023 8:40:01pm

Please double-check Final Code Walks to make sure (1) the time works for you and (2) we have your name down properly.

At the moment both instructors have open slots, making it feasible to switch slots without negotiating with other pairs. If all slots get filled up, you will have to negotiate with other pairs to swap. Once the negotiation succeeds, send email to the instructor CCing all involved parties.

Cross-section pairs may sign up with either instructor. If both partners are in sections of the same instructor, the two should sign up with their instructor.

Wednesday, November 15th, 2023 6:43:58pm

Code Walks for Thu, 16 November 2023

Section MF-915:

    Presenters: Jake Schissel, Matthew Stetter

    Head Reader: Taiga Wad

    Assistant Reader: Aryan Kulkarni

    Secretary: Haiyi Jiang

    

    Presenters: Alina Geng, Eden Gugsa

    Head Reader: Joshua Ayaviri

    Assistant Reader: Ethan Feldman

    Secretary: Hugh Hudson

    

Section MF-1030:

    Presenters: Oliver Toh, shivam patel

    Head Reader: Jasmine Lai

    Assistant Reader: Wilson Glass

    Secretary: George ElMassih

    

    Presenters: Joseph Hirsch, Nicolas Araujo

    Head Reader: Jake Pine

    Assistant Reader: Miles Vollmer

    Secretary: Angela Shen

Make-up Code Walk

Presenters: Charles Roth

    Head Reader: Luciano Szekely Corsi

    Assistant Reader: Meixia Sindelar

    Secretary: Shashank Jarmale

Wednesday, November 15th, 2023 6:54:53am

You may wish to run your xbaddies script (9 — Remote) on these sample tests.

Tuesday, November 14th, 2023 7:29:35pm

Code Walks for Wed, 15 November 2023

Presenters: Taiga Wad, Jay Martinez

    Head Reader: Sanat Shajan

    Assistant Reader: Matthew Stetter

    Secretary: Alina Geng

    

    Presenters: Ethan Feldman, Ethan Carpenter

    Head Reader: Jonathan Lee

    Assistant Reader: Kevin Li

    Secretary: Alan Hu

    

Section MF-1030:

    Presenters: George Doty, Angela Shen

    Head Reader: Nicolas Araujo

    Assistant Reader: Josh Moffat

    Secretary: Andrew Coeytaux

    

    Presenters: shivam patel, Oliver Toh

    Head Reader: Jasmine Lai

    Assistant Reader: Wilson Glass

    Secretary: George ElMassih

    

Section BL-250:

    Presenters: Miles Vollmer, Jake Lynn

    Head Reader: Tyler Chung

    Assistant Reader: Ethan Mouri

    Secretary: Luke Taylor

    

    Presenters: Ivan Berlin, Smit Patel

    Head Reader: Euann Gu

    Assistant Reader: Ha Ngo

    Secretary: Matthew Goldgirsh

    

    Presenters: Ari Leichtman, Joseph DiSpirito

    Head Reader: Jackson Terrill

    Assistant Reader: Joseph Hirsch

    Secretary: James Roth

Tuesday, November 14th, 2023 12:49:33pm

A student sent in a test case that accumulates a large score for a player, though still a small integer (in the sense of PL). While this does not affect your work on 9 — Remote, it could rule out well-formed and valid test cases for the last milestone.

See 4 — The Score for the new limit (in red).

Sunday, November 12th, 2023 10:29:03pm

Code Walks for Mon, 13 November 2023

Section MF-915:

    Presenters: Moe Thu, Yechan Na

    Head Reader: Ethan Carpenter

    Assistant Reader: Jake Schissel

    Secretary: Jay Martinez

    

    Presenters: Alan Hu, Nicholas Mower

    Head Reader: Trang (Jenny) Do

    Assistant Reader: Jessica Huang

    Secretary: Joshua Ayaviri

    

Section MF-1030:

    Presenters: Evan Chase, Dilan Piscatello

    Head Reader: Martin Celo

    Assistant Reader: Lucas Martin Sanchez Sta Maria

    Secretary: Luke Jianu

    

    Presenters: Angela Shen, George DotyGeorge ElMassih, Wilson Glass

    Head Reader: Oliver Toh

    Assistant Reader: Charles Roth

    Secretary: Rishan Annadurai

    

Section BL-250:

    Presenters: Euann Gu, Ilyas El Haroui

    Head Reader: Maxwell Pirtle

    Assistant Reader: Nolan Lemery

    Secretary: Ethan D'Costa

    

    Presenters: James Quinlivan, Jerry Liang

    Head Reader: O'Neal Kpodar

    Assistant Reader: Smit Patel

    Secretary: Ivan Berlin

    

    Presenters: Joy Hutchison, William Londergan

    Head Reader: Priya Aggarwal

    Assistant Reader: Richard Wang

    Secretary: Laurel Parsons

Sunday, November 12th, 2023 10:35:17am

The specification of setup in Logical Interactions and Remote Interactions contradicted each other. I have modified the first one to sync them, meaning setup really transmits the public state (JPub) to the player, not just the map.

Thursday, November 9th, 2023 12:42:16pm

Two students reported a gap in the specification.

Your referee should inform all winners first before informing losers. Both inform-steps must proceed in turn order.

Also, some truly clever testers exploit big-nums, which some languages (e.g., Java) can’t handle in their JSON libraries.

Do not supply test cases with big-num ints. See modified specs.

Wednesday, November 8th, 2023 7:56:07pm

Code Walks for Thu, 9 November 2023

Section MF-915:

    Presenters: Alina Geng, Hugh Hudson

    Head Reader: Haiyi Jiang

    Assistant Reader: Moe Thu

    Secretary: Aryan Kulkarni

    

    Presenters: Jessica Huang, Kevin Li

    Head Reader: Yechan Na

    Assistant Reader: Eden Gugsa

    Secretary: Ethan Feldman

    

Section MF-1030:

    Presenters: Andrey Piterkin, Lucas Martin Sanchez Sta Maria

    Head Reader: Martin Celo

    Assistant Reader: Charles Roth

    Secretary: Rishan Annadurai

    

    Presenters: Luke Jianu, Daniel Allex

    Head Reader: Oliver Toh

    Assistant Reader: shivam patel

    Secretary: Shashank Jarmale

Wednesday, November 8th, 2023 3:23:08pm

You may wish to run your xgames-with-obserer script (8 — The Observer) on these sample tests.

In response to an anonymous post on piazze, I have repaired the sample tests for this milestone. Please re-download the tests.

Wednesday, November 8th, 2023 2:13:16pm

After the 1030am section, a group of students was finally able to explain the misunderstanding behind the many buggy strategy iterators we have seen.

The strategy (chain) pattern—introduced in the mid 1990s and as presented in Fundamentals III—has two kinds of “functions:” those that compute a strategic decision (such as dag and ldasg) and those that combine strategies. The latter do not know which strategies they combine; they merely consume a strategy or several strategies and combine them. The idea of “not knowing” is what people in our world (and mathematics) call parametric. While F III tends to combine two strategies into one via a single step (one then the other or both and take best), an iterator repeatedly uses a strategy to combine decisions.

Here is my version, rewritten in the text book style of Fundamentals I, using the abstraction teach pack:

#; {Strategy PubState -> (U PASS REPLACE [Listof Placement])}
;; legally iterate strategy `s` starting in the (public) state `pk0`
 
(define (iterate-strategy s pk0)
  #; {[Listof Placement] PubState -> (U PASS REPLACE [Listof Placement])}
  ;; generate new state until `s` can no longer add placements
  ;; or acts illegally with respect to the accumulated placements
  ;; accumulator: legal `placements` between `pk` and `pk0`
  (define (iterate/accu placements pk)
    (match (s pk)
      [(== PASS)        (if (empty? placements) PASS placements)]
      [(== REPLACEMENT) (if (empty? placements) REPLACEMENT placements)]
      [action
       (define placements-so-far+ (append placements (list action)))
       (if (false? (legal pk0 placements-so-far+))
           placements
           (iterate/accu placements-so-far+ (apply-action pk action)))]))
  (iterate/accu '[] pk0))

As you can see the iterator does not know anything about s; it would be easy to come up with other strategies and iterate those with the same function. (The iterator is a variant of fold.)

Tuesday, November 7th, 2023 8:46:28pm

Code Walks for Wed, 8 November 2023

Section MF-915:

    Presenters: Jonathan Lee, Eden Gugsa

    Head Reader: Taiga Wad

    Assistant Reader: Hugh Hudson

    Secretary: Joshua Ayaviri

    

Section MF-1030:

    Presenters: Josh Moffat, Jake Pine

    Head Reader: Wilson Glass

    Assistant Reader: Evan Chase

    Secretary: Ilyas El Haroui

    

Section BL-250:

    Presenters: Joseph DiSpirito, William Redding

    Head Reader: Nick Freeman

    Assistant Reader: Priya Aggarwal

    Secretary: Jake Lynn

    

    Presenters: Joseph Hirsch, Nathan Kirschner

    Head Reader: Will Priebe

    Assistant Reader: Luciano Szekely Corsi

    Secretary: Derek Kaplan

Monday, November 6th, 2023 2:10:35pm

A student in section 2 raised the following question concerning setup as specified in Logical Interactions:

should setup be called when the referee resumes a game from a state that was save between two rounds? As specified and properly understood, it seems only needed to launch a game.

The answer is affirmative, and Logical Interactions now says so.

Why? Imagine interrupting a game between two rounds. To safeguard the assets of a player, a trusted “referee” should collect them, place somewhere safe, and hand them back out when the game is resumed. After all, you never know when this is going to happen and who may wish to manipulate the assets.

Sunday, November 5th, 2023 10:00:08pm

Code Walks for Mon, 6 November 2023

Section MF-915:

    Presenters: Ethan Feldman, Jake Schissel

    Head Reader: Sanat Shajan

    Assistant Reader: Jay Martinez

    Secretary: Trang (Jenny) Do

    

    Presenters: Josiah Borgstede, Alan Hu

    Head Reader: Matthew Stetter

    Assistant Reader: Kevin Li

    Secretary: Meixia Sindelar

    

Section MF-1030:

    Presenters: Joshua Ayaviri, Jasmine Lai

    Head Reader: Dilan Piscatello

    Assistant Reader: Daniel Allex

    Secretary: Aidan Sullivan

    

    Presenters: Ziyu (Skye) Wang, Martin Celo

    Head Reader: Josh Moffat

    Assistant Reader: Nikhil Goel

    Secretary: Andrey Piterkin

    

Section BL-250:

    Presenters: James Roth, Smit Patel

    Head Reader: Nathan Kirschner

    Assistant Reader: Matthew Goldgirsh

    Secretary: O'Neal Kpodar

    

    Presenters: Tyler Chung, Priya AggarwalEthan Mouri and Will Priebe

    Head Reader: Nicholas Mower

    Assistant Reader: William Redding

    Secretary: Will PriebeTyler Chung

    

    Presenters: Ilyas El Haroui, George DotyHa Ngo and Jackson Terrill

    Head Reader: William Londergan

    Assistant Reader: Luciano Szekely Corsi

    Secretary: Ari Leichtman

Sunday, November 5th, 2023 7:40:11pm

To allow for double-checking, the JPlayer definition includes a "name" for the integration tests from 8 — The Observer onward.

Friday, November 3rd, 2023 6:52:37am

You will receive an email introduceing you to second partner and a assigned code base today.

The on-boarder should conduct an overview code inspection with the on-boardee as soon as feasible. If the latter then thinks that using his/her former code base might be preferable, switch roles and have the on-boardee perform a code walk of the alternative code base.

If you jointly decide that you wish to switch code bases, the on-boarder should
  • collect five sample project-design decisions that illustrate why the alternative code base is preferred to the assigned one;

  • formulate a justification for each sample why the decision of the alternative code base is superior and write a two-line executive summary of this justification;

  • turn these five problem descriptions into an HTML memo addressed to your section’s instructor;

    For the few cross-section pairs, address the memo to both instructors.

  • send the memo by Saturday 08:00pm, CCing the on-boardee and the tech TA.

The instructor will meet with both partners by Monday afternoon and settle the matter. Until then you must work on the assigned code base (if any). Switching without a meeting will mean a loss of all future points.

Wednesday, November 1st, 2023 10:30:57pm

Code Walks for Thu, 2 November 2023

Section MF-915:

    Presenters: Trang (Jenny) Do, Meixia Sindelar

    Head Reader: Jessica Huang

    Assistant Reader: Aryan Kulkarni

    Secretary: Hugh Hudson

    

    Presenters: Ethan Carpenter, Yechan Na

    Head Reader: Jonathan Lee

    Assistant Reader: Alina Geng

    Secretary: Alan Hu

    

Section MF-1030:

    Presenters: Miles Vollmer, Moe Thu

    Head Reader: David O'Brien

    Assistant Reader: Andrew Coeytaux

    Secretary: Evan Chase

    

    Presenters: Joshua Ayaviri, Jasmine Lai

    Head Reader: Dilan Piscatello

    Assistant Reader: Daniel Allex

    Secretary: Aidan Sullivan

Wednesday, November 1st, 2023 8:42:10pm

You may wish to run your xgames script (7 — The Clean Up) on these sample tests.

Wednesday, November 1st, 2023 2:16:48pm

Please check out the corrections and clarifications in 6 — Games! and 7 — The Clean Up, respectively. The former concerns the ordering of players as handed to the referee, the latter the treatment of misbehaving players.

Wed Nov 1 20:40:41 EDT 2023 I pushed a second update.

Tuesday, October 31st, 2023 8:41:08pm

Code Walks for Wed, 1 November 2023

Section MF-915:

    Presenters: Nicholas Mower, Aryan Kulkarni

    Head Reader: Eden Gugsa

    Assistant Reader: Ethan Feldman

    Secretary: Yechan Na

    

    Presenters: Matthew Stetter, Jay Martinez

    Head Reader: Jake Schissel

    Assistant Reader: Haiyi Jiang

    Secretary: Ethan Carpenter

    

Section MF-1030:

    Presenters: Charles Roth

    Head Reader: Kevin Chen

    Assistant Reader: Jake Pine

    Secretary: Nicolas Araujo

    

    Presenters: George ElMassih, Oliver Toh

    Head Reader: shivam patel

    Assistant Reader: Rishan Annadurai

    Secretary: Ziyu (Skye) Wang

    

Section BL-250:

    Presenters: James Quinlivan, Joy Hutchison

    Head Reader: Ethan Mouri

    Assistant Reader: Euann Gu

    Secretary: George Doty

    

    Presenters: Richard Wang, Luke Taylor

    Head Reader: Ivan Berlin

    Assistant Reader: Jackson Terrill

    Secretary: Joseph Hirsch

    

    Presenters: Maxwell Pirtle, Nolan Lemery

    Head Reader: Joseph DiSpirito

    Assistant Reader: Laurel Parsons

    Secretary: Josiah Borgstede

Monday, October 30th, 2023 6:37:13am

Code Walks for Mon, 30 October 2023

Section MF-915:

    Presenters: Nicholas Mower, Aryan Kulkarni

    Head Reader: Kevin Li

    Assistant Reader: Sanat Shajan

    Secretary: Moe Thu

    

    Presenters: Taiga Wad, Angela Shen

    Head Reader: Eden Gugsa

    Assistant Reader: Ethan Feldman

    Secretary: Yechan Na

    

Section MF-1030:

    Presenters: Wilson Glass, Dilan Piscatello

    Head Reader: Daniel Allex

    Assistant Reader: George ElMassih

    Secretary: Jasmine Lai

    

    Presenters: Shashank Jarmale, Nikhil Goel

    Head Reader: Lucas Martin Sanchez Sta Maria

    Assistant Reader: Luke Jianu

    Secretary: Miles Vollmer

    

Section BL-250:

    Presenters: Ilyas El Haroui, George Doty

    Head Reader: Luke Taylor

    Assistant Reader: Maxwell Pirtle

    Secretary: Nolan Lemery

    

    Presenters: Tyler Chung, Priya Aggarwal

    Head Reader: Richard Wang

    Assistant Reader: James Quinlivan

    Secretary: Smit Patel

    

    Presenters: Luciano Szekely Corsi, Jerry Liang

    Head Reader: Ethan D'Costa

    Assistant Reader: James Roth

    Secretary: Ha Ngo

Friday, October 27th, 2023 9:51:59am

DevOps.Com posted this a couple of days ago:

“A survey of 500 developers conducted by the market research firm OnePoll on behalf of Sauce Labs found more than two-thirds (67%) admitted they pushed code %into a production environment without testing, with more than a quarter (28%) %acknowledging they do so on a regular basis.

More troubling still, 60% also admitted using untested code generated by % ChatGPT, with more than a quarter (26%) doing so regularly.

More than two-thirds of developers have also merged their own pull requests without a review, with 28% confessing they do so often or very often.”

Don’t become one of those.

Thursday, October 26th, 2023 1:06:38pm

The input order for xstrategy was ill-specified. See 6 — Games!, testing task for the revision.

The fix to your scripts should be a switch of two lines; if it isn’t please re-consider how you write those test scripts.

Wednesday, October 25th, 2023 8:48:42pm

Code Walks for Thu, 26 October 2023

Section MF-915:

    Presenters: Kevin Li, Jessica Huang

    Head Reader: Meixia Sindelar

    Assistant Reader: Trang (Jenny) Do

    Secretary: Taiga Wad

    

    Presenters: Sanat Shajan, Haiyi Jiang

    Head Reader: Alina Geng

    Assistant Reader: Alan Hu

    Secretary: Jonathan Lee

    

Section MF-1030:

    Presenters: Rishan Annadurai

    Head Reader: Shashank Jarmale

    Assistant Reader: Ilyas El Haroui

    Secretary: Charles Roth

    

    Presenters: Shivam Patel, Evan Chase

    Head Reader: Andrey Piterkin

    Assistant Reader: Aidan Sullivan

    Secretary: David O'Brien

Wednesday, October 25th, 2023 8:35:16pm

You may wish to run your xstrategy script (6 — Games!) on these sample tests.

Tuesday, October 24th, 2023 8:34:15pm

Code Walks for Wed, 25 October 2023

Section MF-915:

    Presenters: Hugh Hudson, Alina Geng

    Head Reader: Aryan Kulkarni

    Assistant Reader: Yechan Na

    Secretary: Eden Gugsa

    

    Presenters: Matthew Stetter, Jay Martinez

    Head Reader: Ethan Feldman

    Assistant Reader: Ethan Carpenter

    Secretary: Jake Schissel

    

Section MF-1030:

    Presenters: Nicolas Araujo, David O'Brien

    Head Reader: Ziyu (Skye) Wang

    Assistant Reader: Dilan Piscatello

    Secretary: Nikhil Goel

    

    Presenters: Andrew Coeytaux, Euann Gu

    Head Reader: Evan Chase

    Assistant Reader: Oliver Toh

    Secretary: Martin Celo

    

Section BL-250:

    Presenters: Ilyas El Haroui, George Doty Nick Freeman, Laurel Parsons

    Head Reader: Matthew Goldgirsh

    Assistant Reader: Nathan Kirschner

    Secretary: William Redding

    

    Presenters: Jackson Terrill, Ha Ngo

    Head Reader: Luciano Szekely Corsi

    Assistant Reader: Will Priebe

    Secretary: William Londergan

    

    Presenters: Ivan Berlin, Ari Leichtman

    Head Reader: Derek Kaplan

    Assistant Reader: Joy Hutchison

    Secretary: Jerry Liang

Tuesday, October 24th, 2023 7:55:01am

Some students submitted JMaps in test cases that repeated a column index within a row, for example,

    [-1, [0,{"color":"red","shape":"square"}],

         [0,{"color":"blue","shape":"square"}]]]

As of today, the definition of JMap no longer permits such JSON representations.

These tests did not affect anyone else’s grades. Even though the oracle admitted such tests until this past milestone and the test-fest framework ran everyone else’s xscore on them, a resulting test failure did not change anyone’s total base score.

Sunday, October 22nd, 2023 6:37:22pm

Code Walks for Mon, 23 October 2023

Section MF-915:

    Presenters: Angela Shen, Taiga Wad

    Head Reader: Jay Martinez

    Assistant Reader: Moe Thu

    Secretary: Matthew Stetter

    

    Presenters: Alina Geng, Hugh Hudson

    Head Reader: Aryan Kulkarni

    Assistant Reader: Yechan Na

    Secretary: Eden Gugsa

Section MF-1030:

    Presenters: Kevin Chen, Aidan Sullivan

    Head Reader: Luke Jianu

    Assistant Reader: Miles Vollmer Angela Chen

    Secretary: Jake Pine

    

    Presenters: David O'Brien, Nicolas Araujo

    Head Reader: Ziyu (Skye) Wang

    Assistant Reader: Dilan Piscatello

    Secretary: Nikhil Goel

    

Section BL-250:

    Presenters: Jake Lynn, William Londergan

    Head Reader: James Roth

    Assistant Reader: Ari Leichtman

    Secretary: Ethan Mouri

    

    Presenters: O'Neal Kpodar, Ethan D'Costa

    Head Reader: Joseph Hirsch

    Assistant Reader: Josiah Borgstede

    Secretary: Luciano Szekely Corsi

    

    Presenters: George Doty, Ilyas El Haroui

    Head Reader: Matthew Goldgirsh

    Assistant Reader: Nathan Kirschner

    Secretary: Nick Freeman

Saturday, October 21st, 2023 8:33:46pm

Several students have sent inquiries about the final code walk. We will conduct the final code walks from the afternoon of Wedn. 6 Dec (last day of class) to Wedn. 13 Dec. A couple of weeks before the last day of class, we will post sign up sheets so that you and your partner can pick slots and make firm plans for the final week.

Wednesday, October 18th, 2023 8:40:00pm

Code Walks for Thu, 19 October 2023

Section MF-915:

    Presenters: Eden Gugsa, Jonathan Lee

    Head Reader: Yechan Na

    Assistant Reader: Meixia Sindelar

    Secretary: Sanat Shajan

    

    Presenters: Ethan Feldman, Jake Schissel

    Head Reader: Alan Hu

    Assistant Reader: Hugh Hudson

    Secretary: Jessica Huang

    

Section MF-1030:

    Presenters: Jasmine Lai, Joshua Ayaviri

    Head Reader: Andrew Coeytaux

    Assistant Reader: Kevin Chen

    Secretary: Evan Chase

    

    Presenters: Taiga Wad, Angela Shen Luke Jianu, Daniel Allex

    Head Reader: George ElMassih

    Assistant Reader: Junye Zhang

    Secretary: Lucas Martin Sanchez Sta Maria

Wednesday, October 18th, 2023 6:33:55pm

Please re-consult the definition of JMap. I have clarified that rows cannot be empty.—Students who submitted empty rows for 4 — The Score still get full credit. If your test fests results contradict—because my non-empty check rules them out—please email the head TA and point him to the relevant test fest result and test input.

Wednesday, October 18th, 2023 8:43:12am

You may wish to run your xscore script (5 — The Strategies) on these sample tests.

Tuesday, October 17th, 2023 9:39:53pm

Code Walks for Wed, 18 October 2023

Section MF-915:

    Presenters: Josiah Borgstede, Alan Hu

    Head Reader: Moe Thu

    Assistant Reader: Matthew Stetter

    Secretary: Alina Geng

    

    Presenters: Ethan Carpenter, Yechan Na

    Head Reader: Trang (Jenny) Do

    Assistant Reader: Jonathan Lee

    Secretary: Kevin Li

    

Section MF-1030:

    Presenters: Lucas Martin Sanchez Sta Maria, Andrey Piterkin

    Head Reader: Rishan Annadurai

    Assistant Reader: Nicolas Araujo

    Secretary: Oliver Toh

    

    Presenters: Jake Pine, Josh Moffat

    Head Reader: Charles Roth

    Assistant Reader: Shashank Jarmale

    Secretary: shivam patel

    

Section BL-250:

    Presenters: Nathan Kirschner, Joseph Hirsch

    Head Reader: Joy Hutchison

    Assistant Reader: Jerry Liang

    Secretary: Maxwell Pirtle

    

    Presenters: William Redding, Joseph DiSpirito

    Head Reader: James Quinlivan

    Assistant Reader: Tyler Chung

    Secretary: Richard Wang

    

    Presenters: Derek Kaplan, Matthew Goldgirsh

    Head Reader: Nolan Lemery

    Assistant Reader: O'Neal Kpodar

    Secretary: Priya Aggarwal

Sunday, October 15th, 2023 6:51:34pm

Code Walks for Mon, 16 October 2023

Section MF-915:

    Presenters: Josiah Borgstede, Alan Hu

    Head Reader: Moe Thu

    Assistant Reader: Matthew Stetter

    Secretary: Alina Geng

    

Section MF-1030:

    Presenters: Lucas Martin Sanchez Sta Maria, Andrey Piterkin

    Head Reader: Luke Jianu

    Assistant Reader: Nicolas Araujo

    Secretary: Oliver Toh

    

Section BL-250:

    Presenters: Will Priebe, Ethan Mouri

    Head Reader: Ha Ngo

    Assistant Reader: Ivan Berlin

    Secretary: Jackson Terrill

    

    Presenters: Nathan Kirschner, Joseph Hirsch

    Head Reader: Joy Hutchison

    Assistant Reader: Jerry Liang

    Secretary: Maxwell Pirtle

Wednesday, October 11th, 2023 8:49:26pm

Code Walks for Thu, 12 October 2023

Section MF-915:

    Presenters: Trang (Jenny) Do, Alina Geng

    Head Reader: Ethan Carpenter

    Assistant Reader: Jake Schissel

    Secretary: Jay Martinez

    

    Presenters: Sanat Shajan, Meixia Sindelar

    Head Reader: Joshua Ayaviri

    Assistant Reader: Taiga Wad

    Secretary: Aryan Kulkarni

    

Section MF-1030:

    Presenters: Ziyu (Skye) Wang, Kevin Chen

    Head Reader: Angela Shen

    Assistant Reader: David O'Brien

    Secretary: Dilan Piscatello

    

    Presenters: Miles Vollmer, Evan Chase

    Head Reader: Nikhil Goel

    Assistant Reader: Jasmine Lai

    Secretary: Josh Moffat

Wednesday, October 11th, 2023 4:00:44pm

You may wish to run your xlegal script (4 — The Score) on these sample tests.

Tuesday, October 10th, 2023 7:30:16pm

Code Walks for Wed, 11 October 2023

Section MF-915:

    Presenters: Alan Hu, Aryan Kulkarni

    Head Reader: Yechan Na Haiyi Lisa Jiang

    Assistant Reader: Eden Gugsa

    Secretary: Ethan Feldman

    

    Presenters: Kevin Li, Jonathan Lee

    Head Reader: Hugh Hudson

    Assistant Reader: Jessica Huang

    Secretary: Haiyi Lisa Jiang

    

Section MF-1030:

    Presenters: Andrew Coeytaux, Andrew Angulo

    Head Reader: Aidan Sullivan

    Assistant Reader: Andrey Piterkin

    Secretary: Daniel Allex

    

    Presenters: George ElMassih, Junye Zhang

    Head Reader: Ilyas El Haroui

    Assistant Reader: Martin Celo

    Secretary: Wilson Glass

    

Section BL-250:

    Presenters: James Roth, Derek Kaplan

    Head Reader: George Doty

    Assistant Reader: Jake Lynn

    Secretary: Joseph DiSpirito

    

    Presenters: Luciano Szekely Corsi, Jake Lynn

    Head Reader: Laurel Parsons

    Assistant Reader: Luke Taylor

    Secretary: Nicholas Mower

    

    Presenters: Nick Freeman, Ari Leichtman

    Head Reader: Smit Patel

    Assistant Reader: Ethan D'Costa

    Secretary: Euann Gu

Friday, October 6th, 2023 10:56:31pm

Plagiarism "The practice of taking someone else’s work or ideas and passing them off as one’s own." — OxfordLanguages

When we request test cases from you and you turn in the sample test cases that we provide, you plagiarize. If you would like to know where plagiarists end up in their professional lives, revisit General and scroll to the bottom of the page.

The next pair to plagiarize our test cases will be reported to both the College’s internal system and OSCAR.

Wednesday, October 4th, 2023 7:18:53pm

Code Walks for Thu, 5 October 2023

Section MF-915:

    Presenters: Alan Hu, Aryan Kulkarni

    Head Reader: Ethan Carpenter

    Assistant Reader: Jake Schissel

    Secretary: Jonathan Lee

    

    Presenters: Trang (Jenny) Do, Alina Geng

    Head Reader: Ethan Feldman

    Assistant Reader: Taiga Wad

    Secretary: Joshua Ayaviri

    

Section MF-1030:

    Presenters: Lucas Martin Sanchez Sta Maria, Andrey Piterkin

    Head Reader: Andrew Angulo

    Assistant Reader: Charles Roth

    Secretary: Steven Ngo

    

    Presenters: Shashank Jarmale, David O'Brien

    Head Reader: Zakir Makhani

    Assistant Reader: Junye Zhang

    Secretary: Shivam Patel

    

Wednesday, October 4th, 2023 2:19:57pm

You may wish to run your xmap script (3 — The State) on these sample tests.

Tuesday, October 3rd, 2023 9:56:38pm

Code Walks for Wed, 4 October 2023

Section MF-915:

    Presenters: Haiyi Jiang, Hugh Hudson

    Head Reader: Meixia Sindelar

    Assistant Reader: Trang (Jenny) Do

    Secretary: Alina Geng

    

    Presenters: Eden Gugsa, Jessica Huang

    Head Reader: Matthew Stetter Joshua Ayaviri

    Assistant Reader: Jay Martinez

    Secretary: Sanat Shajan

    

Section MF-1030:

    Presenters: Dilan Piscatello, Oliver Toh

    Head Reader: Ziyu (Skye) Wang

    Assistant Reader: Nicolas Araujo

    Secretary: Andrew Coeytaux

    

    Presenters: Jake Pine, Josh Moffat

    Head Reader: Evan Chase

    Assistant Reader: Miles Child Luke Jianu

    Secretary: Tunde Araba-Owoyele

    

Section BL-250:

    Presenters: Euann Gu, Joy Hutchison

    Head Reader: Jerry Liang

    Assistant Reader: Ari Leichtman

    Secretary: Nolan Lemery

    

    Presenters: Will Priebe, Priya Aggarwal

    Head Reader: Josiah Borgstede

    Assistant Reader: Joseph Hirsch

    Secretary: O'Neal Kpodar

    

    Presenters: Tyler Chung, Ethan D'Costa

    Head Reader: Luciano Szekely Corsi

    Assistant Reader: Ivan Berlin

    Secretary: Richard Wang

Sunday, October 1st, 2023 6:54:10pm

The participants of these code walks will get full-fledged feedback but the grades will not count toward the final grade.

You may wish to take a second look at the course web site concerning how to present and to work as panelists. The site also provides hints as to how we evaluate your performance as panelists or presenters.

Code Walks for Mon, 2 October 2023

Section MF-915:

    Presenters: Ethan Feldman, Moe Thu

    Head Reader: Joshua Ayaviri

    Assistant Reader: Kevin Li

    Secretary: Taiga Wad

    

    Presenters: Haiyi Jiang, Hugh Hudson

    Head Reader: Meixia Sindelar

    Assistant Reader: Trang (Jenny) Do

    Secretary: Alina Geng

    

Section MF-1030:

    Presenters: Joshua Ayaviri, Daniel Allex

    Head Reader: Kevin Chen

    Assistant Reader: Nikhil Goel

    Secretary: Miles Vollmer

    

    Presenters: Luke Jianu, Aidan Sullivan

    Head Reader: Angela Shen

    Assistant Reader: Jasmine Lai

    Secretary: Rishan Annadurai

    

Section BL-250:

    Presenters: Maxwell Pirtle, William Redding

    Head Reader: Matthew Goldgirsh

    Assistant Reader: William Londergan

    Secretary: Ha Ngo

    

    Presenters: Nathan Kirschner, Jackson Terrill

    Head Reader: Ethan Mouri

    Assistant Reader: Derek Kaplan

    Secretary: James Quinlivan

    

    Presenters: Euann Gu, Joy Hutchison

    Head Reader: Jerry Liang

    Assistant Reader: Ari Leichtman

    Secretary: Nolan Lemery

Sunday, October 1st, 2023 4:05:25pm

You may wish to run your xtcp script (C — TCP) on these sample tests.

Friday, September 29th, 2023 10:53:46am

A couple of students pointed out during my office hours that my API wish for a function that “determin[es] all those places where a specific tile can be inserted so that it fits according to the matching rules of The Q Game” breaks the design guidelines spelled out in the first few lectures.

Correct!

I added this wish to 2 — The Map for a purely pedagogical reason, namely, so that we could add and conduct a test-fest request for 3 — The State that exercises your map representation to some depth.

Here is my own design, starting with the contract for the function:

"map"

(provide
 (contract-out
   [find-candidates
    ;; where can the given tile extend this map
    (->* (map? tile?) (#:rule fit-into-spot/c) (set/c candidate?))]))
This contract tells a client programmer that the function consumes two mandatory arguments: a map an a tile. It also accepts an optional keyword argument, a function that must satisfy the following contract:
(define fit-into-spot/c
  (-> tile? [option tile?] [option tile?] [option tile?] [option tile?]
      boolean?))
The default value for this optional argument is

"q-rule"

(provide
 (contract-out
  #; (q-fits tile left right up down)
  ;; does `tile` fit into the space adjacent to the four neighbors (if any)
  [q-fits fit-into-spot/c]))
which implements the fitting rule from the The Q Game specification—and lives in an appropriately named, separate component. In short, my code design satisfies the requested API wish and separates Q-specific knowledge from Map-only information; after all the Map could be used to play Qwirkle and other variants. — We do not expect your solutions to retain this clean separation.

Wednesday, September 27th, 2023 9:01:34pm

3 — The State is out. Keep this in mind as you build layer upon layer in your code base:

Keep Coding

Tuesday, September 26th, 2023 6:41:23pm

Michael pointed out that I supported the wrong replies on Pizza. (I don’t like this thing.)

To make up for it, I added two more tests. See The Q Game.

Monday, September 25th, 2023 6:08:08pm

The somewhat complicated holiday/due-date schedule this semester means that we run 2 — The Map and C — TCP in parallel. The latter is released now. We will demo the solution and, exploring its functionality, on Wednesday.

Also see the updates to the Sunday post below and the The Q Game rules on fitting a tile to a map.

UPDATE I have added two test cases that illustrate tile placements.

Sunday, September 24th, 2023 6:17:38am

To prepare for Monday’s lecture, please read the following code:
  • the classify functions in plain Racket

  • the classify functions in Typed Racket, if you prefer

  • the classify functions in Typed Racket, if you prefer

In class, we will compare and contrast these variants of the same functionality. The Java variant should help you understand how much its for loops obscure what's going on---in both languages. Yet, writing code in this style also gives us decent performance of this functionality. (There are other variants, and I am convinced we can do even better.)

I have chosen Racket to make the code (almost) equally (in)comprehensible to the entire class. If you do have vague memories of Fundamentals I, some of the code may ring a bell because BSL/ISL are related to, but are not, Racket.

Saturday, September 23rd, 2023 8:55:47am

We have inspected the submitted questions concerning the The Q Game game. As of now, the page is revised in two ways: strike-outs delete words from the rules that might introduce ambiguities, purple words are new additions. (No page changes in any other way.)

Working through examples in public (say piazza) is inappropriate. It’s as if friends working for Amazon and Google, respectively, jointly worked out examples of how to run cloud services.

If you think you can demonstrate another ambiguity with two non-trivial interpretation, contact the instructors.

Thursday, September 21st, 2023 7:55:17pm

Some students requested the code for today’s lecture. Here are gists for the two key pieces:
  • check.java, the Java version of a manually checked temperature implementation;

  • check.rkt, Racket contracts for a checked temperature implementation;

The other programs are derivatives of these.

Wednesday, September 20th, 2023 3:29:07pm

You may wish to run your xgui script (B — GUI) on these sample tests.

Friday, September 15th, 2023 8:35:58am

Concerning B — GUI:

As we found out during the first week, the VDI machines no longer exit and the Linux machines lack monitors. Programs in some of the chosen languages will look for a monitor if the language uses GUI libraries—even if the program does not actually use them because the show option is missing from the command line. In case you get strange error messages concerning displays and monitors when you test your program on a Linux machine, use the following command instead:

$ xvfb-run ./xgui < ForStudents/0-in.json

This will essentially create a mock display for your program on which it can “paint” the desired shapes. (Our test harness will evaluate your programs in such a manner.)

Wednesday, September 13th, 2023 1:29:48pm

In preparation for this afternoon’s or tomorrow’s lecture, you may wish to read The Labyrinth Game, which is the board game that brought our company some luck last year.

Tuesday, September 12th, 2023 8:45:40am

See 1 — The Plan for your next homework assignment, the first milestone of the semester project.

Sunday, September 10th, 2023 3:56:29pm

You may wish to run your xjson script (A — JSON) on these sample tests.

Saturday, September 9th, 2023 12:08:22pm

As mentioned, the design recipe generalizes to almost all tasks in our world (and indeed to many tasks in life .. Fundamentals I used to assign an essay on this point).

Applied to A — JSON, this means that, for example, you must test. Specifically you must test on the delivery machine. Here is the check list that makes up such a test:
  1. ssh into login-students (or another Linux box);

  2. git-clone your “fuzzy elephant” repo to login-students;

  3. navigate (cd) into your “lazy flea"" repo;

  4. make sure A exists and navigate there;

  5. run make if you have a Makefile;

  6. check the executable bit of xjson;

  7. run ./xjson and feed it some JSON value; and

  8. make sure the output looks right.

Of course, this checklist (and more) will also apply when you deliver and deploy software on a job.

In years past, we expected students to figure out this checklist and run through it. This year, we provide a script in /course/cs4500f23/bin that implements the checklist and runs your xjson (mostly) how our test framework runs it.

You can run it directly, like this:
/course/cs4500f23/bin/check-program-A silly-monkey
where silly-monkey should be replaced with the name of your repo.

Or you can add /course/cs4500f23/bin to your path and run the program like any ordinary shell command.

Wednesday, September 6th, 2023 6:39:31am

Once you are paired up with a partner, please sign up at the sign-up link to get a GitHub repo, in which you can then deliver your work.

Monday, July 10th, 2023 4:54:50pm

Welcome to Software Development Fall 2023.

song.txt
Wake Me Up