CS170 -- Labs

Rich Wolski --- Winter, 2024

  • Gradescope and Testing
  • Using Linux as an exemplar and TTY mysteries.
  • You must use the machine csil.cs.ucsb.edu for your development. to which you have access to complete your assignments. The infrastructure required for the labs is not easily portable and your TAs are prepared only to help you use the machines maintained for your use.
  • You CANNOT USE github.com or any other public code repository. I will explain in class why the requirement must be met, but for this class you MUST use the UCSB Enterprise github if you plan to use a network-enabled code repository. This guide explains how to create an account and access the UCSB enterprise group.
  • I've also prepared some notes on C programming that outline some of the C concepts that are embodied in these exercises.
  • Some of the labs assume that you are proficient with the concepts of doubley-linked lists and search trees. You are free to implement your own or to use a library originally written by Dr. Jim Plank called the fdr library. I've created a brief tutorial on how to use the fdr packages that may prove useful.

    this page last updated: Fri Dec 29 03:24:40 PM PST 2023


    Using csil.cs.ucsb.edu

    This quarter you will need to use the machine csil.cs.ucsb.edu for your development, especially for lab1, lab2, and lab3. The software environment that is required to complete these labs is fairly involved so porting it to other machines (or to your own machine) is not an option.

    The csil.cs.ucsb.edu DNS entry is an alias for a set of machines that is operated by the College of Engineerin's IT staff. You can access this facility in a number of different ways which are described on the ECI Remote Access Instructions page.

    Labs

    The labs are all designed to be completed as a team of two partners. There are several reasons for this design decision, which we can discuss, but the most important one is that the workload is substantial but also divisble so teaming up allows you to share the load. Both members of the team will share the lab grades.

    With that paragraph firmly in mind, if you absolutely MUST do the labs yourself, please contact me (the instructor) so that we can discuss this choice. Usually, the issue is with finding a partner and not with a deep desire to do twice the work that everyone else is doing. The TAs and I can help with that issue if it arises. The best advice for success is to plan to do the labs as a team and to start searching for a teammate as soon as class convenes.

    You are free to use what ever development tools you would like to use, but the TAs will publish a turn-in procedure that you must follow. Also, you may NOT use a public code repository. Instead, you must use a the UCSB Enterprise github if you wish to use a source code control system and you must make your repo private. Use This Guide to create an account if you don't already have one. Failure to understand and comply with this requirement will result in irreparable consequences for your grade.

    Lab 0 -- Malloc Space: the Initial Frontier Due 11:59PM, Jan 19, 2024.
    Points: 100
    Lab 1 -- Could be Pronounced "Chaos" Due 11:59PM, Feb 7, 2024.
    Points: 200
    Lab 2 -- If One is Good, More is Better Due 11:59PM, Feb 28, 2024.
    Points: 400
    Lab 3 -- Pipe Dream Due 11:59PM, Mar 20, 2024.
    Points: 800