CSci 1901: Labs and Homeworks

Much of the learning will be done in 2-hour weekly lab meetings. Each week, you will work with another student to write programs that apply concepts covered in lectures to solve a variety of problems. In addition to the labs, you will be given homeworks, that you will work on individually.

List of Labs

  1. Lab 1: Intro to Unix and STk, January 18.
  2. Lab 2: Writing Procedures, January 25.
  3. Lab 3: RSA Encryption, February 1.
  4. Lab 4: More RSA Encryption, February 8.
  5. Lab 5: Review for Midterm 1, February 15.
  6. Lab 6: Trees, February 22.
  7. Lab 7: Ordered Lists and Binary Trees, March 1.
  8. Lab 8: Multiple Representations of Data, March 8.
  9. Lab 9: Local State and Hilbert Space Filling Curves2, March 22.
  10. Lab 10: Review for Midterm 2, March 29.
  11. Lab 11: Tables, April 5.
  12. Lab 12: Dance Competition, April 12.
    A list of the AIBO commands and a short description on how to use the agenda
  13. Lab 13 : Tic-Tac-Toe in Python, April 19.
  14. Lab 14 : Graphical Objects in Python, April 26.
  15. Lab 15 : Practice Final -- Solution for Practice Final

List of Homeworks

  1. Homework 1: due Monday February 5. -- Solution for Homework 1
  2. Homework 2: due Monday February 12. -- Solution for Homework 2
  3. Homework 3: due Monday March 19. -- Solution for Homework 3
  4. Homework 4: due Thursday April 25 -- Solution for Homework 4
  5. Homework 5: due Thursday May 3 -- Solution for Homework 5
Bonus questions. The deadline for submsission is the last day of class, Friday May 4.

Quizzes and exams

Policy on Labs

The general format for the labs is as follows:
  1. Typically you will work with one other student. Each lab is decomposed into several steps that you will have graded by your lab instructor as they are completed. In most cases, you should be able to finish the entire lab during the 2-hour period, but there might be steps remaining for you to work on after the conclusion of the formal lab time.
  2. Labs are graded on a step-by-step basis. Any steps not completed in the lab can be done on your own time with your lab partner and graded by your TA before the beginning of the next lab meeting. All grading must be done in person with a TA unless another arrangement has been announced or there are specific instructions as part of the lab writeup.
  3. Grading is done on correctness, completeness, and style. Correctness and completeness refer to how well the program works. Style includes good design, readability (indentations, descriptive names for variables and procedures, and appropriate use of blank spaces), and useful comments. You are expected to comment (input, output, assumptions, etc. -- will be discussed in class) your procedures.
  4. In order to do well on the exams, you need to learn programming and problem solving skills that are developed by attending class, doing the lab work and the homeworks. As a rule of thumb, your performance will largely be determined by the amount of effort you put in on the labs and homeworks(once you have read the text and attended lecture).
  5. Utilize the lab instructors. Each lab section has at least lab instructors that are there to help you as well as grade your lab steps as they are completed. While the lab instructors will not do your work for you, they will help you and direct you in the proper direction.
  6. For the labs that are completed on your own time, you may use the University public computing labs or your own computer. If you use your own computer, the work you submit for grading must run on the University computers because that is where they will be run and graded. So, if you work on the labs elsewhere, make sure you try your code on the University machines to be sure that it runs fine.
Copyright: © 2000-2007 by the Regents of the University of Minnesota
Department of Computer Science and Engineering. All rights reserved.
Comments to: Maria Gini
Changes and corrections are in red.