Home CS439

CS439: Principles of Computer Systems

Discussion Section 0 Problem Set

Due to Canvas on Friday, August 30, 2024, at 10:59p

Submit to the "Section 0" assignment.

  1. Please fill out the welcome survey.

  2. Please review the Code of Conduct for the course. Sign it (either physically or electronically) indicating that you agree to abide by this Code of Conduct, and upload the signed copy to the "Section 0" assignment on Canvas, along with your other responses to this problem set. (If you print it to sign it, then upload a picture!)
  3. On Canvas, you will find a quiz titled, Academic Integrity Quiz. Complete that quiz. Multiple attempts are permitted, but you must eventually get all questions right in order to receive credit for your homework.

    Thanks to John Thywissen, who created this quiz and its accompanying presentation.
  4. Please fill out your information in the CATME survey (a link will be sent to your email on Thursday, 8/29)---this information will be used to create assigned teams for Project 0 and problem sets. If you added the class late, please find Alison to be added to CATME.
  5. On the course website, navigate to the syllabus. Once you have found the syllabus, find the section on pair programming, and read the paper "All I Really Need to Know about Pair Programming I Learned in Kindergarten". After reading that paper, write a seven sentence summary that contains all major points of the paper.
  6. Name three requirements for pair and group programming in CS439.
  7. Write a linked list in C. You may choose the development environment of your choice, but we highly recommend you choose an editor on Linux (vi, emacs, sublime, ...) and compile using gcc. (See the course home page for a brief introduction to gcc.)

    Your linked list nodes should be made of C structs, and each should contain an integer (the data) and pointers to the next and previous nodes. Your program should create a default list with 5 sorted nodes containing integers 1-5 and also implement add() and remove() methods. The add() method should insert a new node in sorted order. The remove() method should remove a node.

    How you test and design this code is up to you. There are no requirements about dedicated head/tail nodes or not, etc. Turn in your solution by cut-and-pasting it into a text file with the rest of your problem answers and submitting it on Canvas.