CSC209H -- Labs

Labs

"What we have to learn to do, we learn by doing." -- Aristotle

In this course we will be holding closed labs. The goal of the labs is to give you practice with the small things before you are asked to use them to build larger things.

The labs will be 50 minutes long and will take place during your assigned tutorial slot which is either Mondays from 12-1(day class) or Wednesdays from 8-9 pm (evening class.) Labs will be held in BA 3175, 3185 or 3195. Room assignments are below.

Students should work in pairs during the labs. You can choose who you work with and are encouraged to work with different students throughout the term. However both students must belong in the same lab section (same time, same room.) This applies even if you aren't attending the actual lab but doing the work on your own time. The first lab will include explicit instructions on how to submit your work.

There are many reasons to work in pairs. For the purposes of this course, the most important ones are (in decreasing priority)

  1. It's more fun!
  2. You have someone to talk through each problem with, which often means you can solve a problem faster and get more insight into the problem.
  3. You have an opportunity (if you take it) to get to know a few more people in the class.
  4. The TAs will have an easier time helping a smaller number of groups than a larger number of individuals.
  5. The number of lab machines and TAs available to us makes it impractical to require students to work alone.

You are strongly encouraged to attend the labs. The TAs will be there to help, and you will learn lots of things that help you along the way but you won't get marks for attendance. The labs will be posted online the Sunday night before the lab, so it will be possible to complete them without attending the labs. Labs must be submitted to get credit for them.

Room Assignments

Date and Time Room TA Students with Last Names
Monday: 12-1 BA 3175 Chuck Zhao A - G
Monday: 12-1 BA 3185 Johan Harjono H - O
Monday: 12-1 BA 3195 Rija Javed P - Z
Wednesday: 8-9 BA 3175 Jeffrey Cassidy A - I
Wednesday: 8-9 BA 3185 Madalin Mihailescu J - O
Wednesday: 8-9 BA 3195 Aditya Bhargava P - Z

The Lab Activities Themselves

Lab number Date Topic Instructions Solutions
1 Jan 16 or Jan 18 Shell Use and Shell Programming Lab 1 pipes.txt runtests
2 Jan 23 or Jan 25 Shell programming Lab 2 whicha runner
3 Jan 30 or Feb 1 Basic C Lab 3
arrays.c3
overflow.c
arrays-sol.c
4 Feb 6 or Feb 8 C Pointers Lab 4
structs.c
structs_sol.c
5 Feb 13 or Feb 15 Makefiles and Memory Leaks Lab 5 Makefile list.c list.h test1.c test2.c testlist.c
6 Mar 5 or Mar 7 Fork Lab 6 answers.txt (one possibility) childcreates-sol.c parentcreates-sol.c
7 Mar 12 or Mar 14 Pipes & Exec Lab 7 checkpasswd-sol.c
8 Mar 19 or Mar 21 Signals Lab 8 sigchld.c sigchld-sol.c
9 Mar 26 or Mar 28 Sockets Lab 9 fileclient-sol.c
fileserver-sol.c