Lab procedures for CS51

Lab procedures for CS51 #

The procedures we follow in lab are as follows:

Before lab #

  • Do the pre-lab reading before the day of the lab.
  • Feel free to work on the exercises in the reading. Many have answers in the back of the book that provide further clarification on concepts.
  • Bring paper and pencil to all labs. Writing aids thinking.

Upon entering the lab session #

  • Head to the online lab space as provided in the course calendar. You should get there a few minutes ahead of time to get situated.
  • For each set of six labs (in particular, labs 3-8, 9-14, and 15-20), lab partners come from the same group of four randomly assigned students. You’ll be assigned a table for each lab as posted on the course website. Head over to your table and introduce yourself to your partner for the day: trade names, trade emails, write them down.
  • Download the lab instructions available from the course website.

During lab #

  • Generate your git repository for the lab via Github classroom.

    • Go tohttp://url.cs51.io/lab{n}. (The {n} is the lab number.)
    • You may have to “Authorize application”.
    • Click on “Accept this assignment”.
    • Click on the generated link to https://github.com/cs51/lab{n}-2021-{yourname}.
    • Click on the “Clone or download” button.
    • Select “Use SSH link” if needed.
    • Copy the SSH URL for the generated repo: git@github.com:cs51/lab{n}-2021-{yourname}.git
    • Clone the repository into a local directory lab{n}:
      % git clone git@github.com:cs51/lab{n}-2021-{yourname}.git lab{n}
      
    • Go to the directory for your just-created local repository:
      % cd lab{n}
      
  • Before getting started with the lab proper, labs typically start with a puzzle. Often, there’s material pertinent to the puzzle in the lab instructions that you’ve downloaded.

  • Open the file lab{n}.ml in your favorite text editor.

  • Decide which partner is going to drive first.

  • Work together with your partner to do the exercises in the provided lab files.

  • Once an exercise is working on one laptop, congratulate your partner. Really, I mean it. Every single time.

  • Now get the exercise working on the other laptop; no moving to the next exercise until both partners understand the solution and agree.

  • Switch laptops after each exercise, so the other partner can “drive”.

  • If you and your partner get stuck, post a question with the Questions button on the left of the congregate.live window. and a staff member will come by your table to get you making progress again. (If only one of you is stuck, work with your partner to get unstuck. This helps the learning of both partners ­ a win-win!).

  • Add lab files to staging, commit the staged files, and push your modified repo after each problem.

    % git add lab{n}.ml
    % git commit -m "such and such progress on lab whatever"
    % git push
    
  • Submit your repo (not individual files) to Gradescope for testing. Each person does this separately.

  • Gain tranquility from the end-of-lab puzzle.

After lab #

  • If you don’t finish all the exercises: Don’t panic! No one finishes in lab.

  • Continuing working on the lab, with the same partner or others or on your own. Study groups are an especially great idea.

  • Commit and push your repository frequently.

  • We recommend that you submit your lab to Gradescope at least once the day of the lab itself. Gradescope will run the lab against our unit tests and provide a report on the results, including your future score on Sunday’s virtual quiz.

  • As you continue to work on the lab, submit to Gradescope as often as you’d like to see the results of the unit tests, and your future score on Sunday’s virtual quiz.

  • Every sixth lab (labs 8, 14, and 20) fill out the post-lab survey about your and your table group’s work.