Labs

During this course you will complete ten weekly labs with an assigned group. We will start each lab in class, but you are not expected to finish the lab during class time. You are expected to complete labs collaboratively with your group, not simply divide work between the group members. The list below shows the assigned and due dates for all of this semester’s labs.

  Warmup
    • Assigned February 2, 2021
    • Due February 5, 2021 by 11:59pm
  Shell
    • Assigned February 5, 2021
    • Due February 9, 2021 by 11:59pm
  Worm!
    • Assigned February 9, 2021
    • Due February 12, 2021 by 11:59pm
  Virtual Memory
    • Assigned February 12, 2021
    • Due February 16, 2021 by 11:59pm
  Memory Allocator
    • Assigned February 16, 2021
    • Due February 23, 2021 by 11:59pm
  Password Cracker
    • Assigned February 26, 2021
    • Due March 5, 2021 by 11:59pm
  GPU Sudoku Solver
    • Assigned March 5, 2021
    • Due March 13, 2021 by 11:59pm
  Peer-to-Peer Chat
    • Assigned March 12, 2021
    • Due March 22, 2021 by 11:59pm

Policies

The following policies apply to all of the labs in this class. If you have any questions about a policy, please ask the instructor.

Collaboration & Academic Honesty

Unless you are given explicit permission to do otherwise, you must work with your assigned group for each lab. While I expect that you understand how to work collaboratively, I have found it is sometimes necessary to clearly state some expectations for group work: I expect every member of your lab group to contribute to the work you submit, and that work must be a product of your collaborative effort. That means you cannot divide the lab into parts and work separately, you cannot allow other members of your lab group to complete the lab for you, and you cannot complete the lab on your own without your group’s involvement.

Misrepresenting who has contributed to work you submit is a violation of the academic honesty policy, and I will inform the committee on academic standing of any such violation. These cases could result in a zero on the assignment, or in the entire course. If you find that your lab group is not contributing, or if your partner(s) completed a lab without you, please tell me immediately so we can resolve the issue before you submit any work.

Grading

Each lab will have its own criteria for what constitutes a correct submission, but all labs will have the same general grading breakdown:

20%  Code Quality
Does your implemention follow best-practices for implementation? Is it clear and concise? This will account for 20% of your grade on the lab. Any warnings or errors when building your code will result in an automatic zero for this portion of the lab.
80%  Implementation Correctness
I will evaluate your implementation to see how it handles various inputs and edge cases. In some cases this may be done with an automated test suite. I will give partial credit for labs that miss edge cases but handle the majority of inputs correctly.