Scientists and engineers record their daily work, activities, observations in such books. Many professionals keep written records to preserve information contemporaneously and to protect themselves with a paper trail. Programmers should have one, too. If anything goes wrong, technically or otherwise, this documentation can help you reconstruct the past and convince others of your position. Rather than making you buy a notebook, you will take lab notes in a markdown file named

<ccis-username>-log.md

(filling in your own ccis username) kept in an otherwise-empty private github.ccs.neu.edu repository named

<ccis-username>

(filling in your own ccis username). You must add your section TA as a collaborator. You must keep this repository’s master branch in sync and up to date (i.e. commit after writing a post, push after committing). You must correctly follow the above steps or you will not receive credit for your lab book.

For this course, the lab book is to help you manage your pair-programming partnership. It also serves as a kind of low-stakes kanban. You will keep your log books in reverse chronological order. That is, the most recent posts will be at the top. Your lab book will contain four types of logs:

  1. Partner information. To begin, copy the following to top of the file, and enter your partner’s information. This should be the first post. As you later add more, this will remain at the bottom of the file.

    PARTNER INFORMATION]
    name: ____________________________________
    cell: ____________________________________
    email address: ___________________________
    social media acct (optional): ____________
  2. Weekly assignment/project commencement. At the beginning of every weekly assignment/project, create a post with the following.

    assignment/project title: ________________
    time estimate: ___________________________
  3. Pair programming meetings. At the outset of every assignment/project meeting with your partner, create a post with the following.

    date/time: _______________________________
    place: ___________________________________
    goal: ____________________________________
    notes: ___________________________________
    __________________________________________
    __________________________________________
    __________________________________________
    duration: ________________________________
    NEXT : (date/time/place of next meeting)
  4. Weekly assignment/project conclusion. At the end of each weekly assignment/project (because you completed the work or because the assignment is due, whichever comes first), create a post with the following.

    actual time needed: ______________________
    outstanding issues: ______________________
    __________________________________________

If your partner does not show up for a meeting, make a note of it in the post for that meeting. Also record what actions you undertook to reach your partner. If you sent a reminder email, copy and paste its contents in the notes section.

Consider keeping these blank templates locally so you can copy and paste them in when you need.

Note You won’t get credit for accurate time estimates. The point is to learn to estimate how much time real tasks take. Acquiring this skill is critical for developers as well as people who wish to manage developers. There is nothing like practice to develop this skill.