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)
- It's more fun!
- 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.
- You have an opportunity (if you take it) to get to know a few more people in the class.
- The TAs will have an easier time helping a smaller number of groups than a larger number of individuals.
- 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 |