This is a post that may disappear from this blog, it’s for COMP61511, a postgraduate course unit that we teach annually to postgraduate computer scientists at the University of Manchester.
This is a course that will be unlike any others you have done in your education to date; co-operative peer-assisted looms large: you end up working and learning co-operatively in teams.
The agile component of the course will have lab work in Ruby and RSpec. You learn the Ruby with some help from us, we teach you the fundamentals of how to use RSpec and then, again, you help yourself and others to learn.
- There are a bunch of Ruby books on short loan in the library near the Student Support Office on the LF floor of Kilburn.
- The Little Book of Ruby
- The first version of Programming Ruby (now a little out of date, but good enough to still use)
- WikiBook’s Ruby Programming
- Something a bit wackier, Why the Lucky Stiff‘s book: why’s (poignant) Guide to Ruby, links to various formats here, soundtrack to the book here (watch out for your speakers if you are listening loud).
- Yawn, yet more books …
- RubyMine, the IDE in use on the lab machines and any home machines you need it on. It needs a key to work.
- You don’t need this IDE to learn Ruby, you can use any editor and the ruby interpreter (command ruby on the lab’s Linux image) or, better still, to mess around with Ruby, use the Interactive Ruby Shell (command irb on the lab’s Linux image).
- Or start by just trying Ruby in your browser (hint may have to hit return twice to cause expression evaluation to happen, note the use of the word “start”, this week you should do more than start)
- ruby-doc.org contains tutorial material, documentation for the Ruby Core API and the standard libraries
- Ruby User’s Guide
- There is one book there on Metaprogramming Ruby, this is advanced mateial, but some people may find it easyist (and more interest) to learn Ruby from this book
- General interest only: See this Smashing Magazine tribute to _Why
- In learning a new programming language, remember, Google is your friend, just Google the error message, Google the Ruby keyword, Google everything….
A few course thoughts
We provide an experience of authentic education, in the week 3-5 labs you are expected to work as part of a self-motivated professional team that helps each other. Setting your expectations, in this course there is no escape from becoming part of a co-operative self-assisting team, it is your unavoidable destiny.
We start by being relatively authoritarian in approach, this is because you have been institutionalised by your previous experience in educational systems, and we need to remove all the bad habits that your past education has taught you. Then we gradually and gently encourage you to take control of your own education. By the end of the course you are working successfully in groups, helping each other and learning from each other.
- First two weeks: You are programming in pairs first learning Ruby, and then learning RSpec.
- Last three weeks: You are in groups, and doing a programming project. You get to choose the project, or you can choose one we supply. Ambitious projects which dont have a chance of being finished are OK, part of learning to be a computer scientist, of gaining the identity and habits of a computer scientists, are to be able to make decisions about difficult projects, about what to do next. Remember, the most interesting systems that you can build are never finished, there is always something else to do, another extenion to implement.
- Weekly commitment: 2.5 days, as for any other course unit. Thursday is the formally scheduled day but we will have another day in a lab, with agile coaches. If necessary, we hold labs on Saturdays; expect this in weeks 3-5.
- Arriving late is a bad habit that many students have. As part of your commitment to this course, please NEVER be late, it just wastes your time and other people’s time in waiting around and in catch-up activities. Once wasted, time is irreclaimable.
- If you are pair programming with someone, or in a group with someone, you will need that person’s mobile phone number. Make sure you get it. If you dont have a mobile, or a UK mobile number, please organise to get those in the next week.
Except for the paragraph under the last heading this post has not talked about agile methods. The latter is really closely connected with you taking control of your work while working in teams. We guide you through all of that stuff.
The course also has a self-contained part about the structure of systems and UML, taught by John, this is not discussed in this post.