INF1B: Labs

Programming is a skill and in order to learn it, you need to practice it a lot. The provided lab exercises aim to help you with this task by providing examples and exercises for different techniques taught in the course. In the scheduled labs, help from demonstrators is available.

How/when do you do your lab exercises

You should work though the lab exercises on your own, and use the drop-in lab sessions to support that.  Some students like to go along to drop-in sessions regularly and work through their exercises there; others like to do the work at home and only go to drop-in sessions when they have specific questions; others rarely go to drop-in sessions.  It is not necessary to attend the drop-in sessions, but we strongly encourage you to make use of them to help you develop your practice.

Pair programming: you will be doing some pair programming in your tutorial sessions, and we also encourage you to use pair programming as much as possible for your lab exercises.  It is a great way to develop your practice and mirrors the working situation for software engineers much more closely than working on your own.  When you go along to drop-in sessions, the lab instructors will encourage you to work in pairs if you would like to.  Don't worry if you would rather not - this is not compulsory.

Drop-in Lab Sessions

DayTimeRoom
Monday1610-1810AT6_06
Tuesday1610-1810AT6_06
Wednesday1330-1510AT6_06
Wednesday1610-1810AT_6.06
Friday1610-1810AT6_06

Rules for Pair Programming

  1. Be kind and respectful to your partner
  2. Remember that everyone has very different backgrounds - some have a lot of experience with Java and some none at all.  If your partner doesn’t understand something, don’t assume it’s because they are not paying attention (possible but unlikely) or they are dumb (definitely not the case).  It is probably because their background is different to yours.
  3. If you both have some experience, you may come at things in a different way or have been taught differently.  This is a great opportunity for you to learn a new approach from your partner.  Don’t assume your approach is better - listen to what they have to say.  If you still think your approach is better, you need to make a convincing case for why that is so.
  4. If you feel the atmosphere isn’t great - e.g., your partner is being impatient with you - tell them that you feel this way and try to discuss if there’s a way you can interact better.
  5. If you feel you can't do this or you feel you’re experiencing harassment, leave the session and report this to your demonstrator and/or the course leader (f.j.mcneill@ed.ac.uk)
  6. If you’re getting on well with your partner - great!  If you like, you can exchange email addresses and continue working together on the course, or just keep in touch.
  7. If you feel you’re not getting on well with your partner, don’t worry.  It’s only for one session - next session you will have a different partner.
  8. Remember that programming is a group sport. So you need to get better as a team, grow as individuals, and also accompany your co-adventurers on the journey.

How does pair programming work?

I interviewed Pawel Orzechowski, an expert in teaching using pair programming, and asked him to explain all about it, why it’s really valuable, and how it would work in a course like this where there is a big range in past experience between different students.  After that, we practiced doing some coding using pair programming.  You can watch it here.

Fundamental vs. Advanced Labs

The Fundamental labs cover the core course material. Some (less developed) Advanced labs are also provided, as a suggested ingredient for stronger students.  You should not look at the advanced material unless you are very confident with everything in the course.  The material in them is outwith the remit of the course and you are not expected to be able to do these exercises!

License
Creative Commons - Attribution Share A Like