This course is about working on large, existing, software systems. It focuses on tools, techniques, practices and principles that software engineers use on a daily basis to successfully build, modify, maintain and grow the large software systems that form so much of the infrastructure of trade, commerce, communication and entertainment in the modern world.
The course is taught be three visiting lecturers who spend most of their time working in industry. With differing backgrounds, experiences and opinions, we have worked in companies small and large, on product development and bespoke systems, on projects that have gone well, and some that have gone very badly. We have also developed and contributed to various popular open source tools and projects.
How to get the most out of the course: firstly, come to the lectures. We don't have detailed notes to hand out, so the best thing is to come. We recommend working through the tutorial exercises in class, when the lecturers are around, we can help you, and we believe that working through the exercises using the tools and techniques that we will introduce is the best way to learn. Ask questions. If there's something you want to know about, a topic you want us to cover, or a story you want to share, just ask or tell us.
This course runs Monday mornings 9:00-12:00. It has a mixture of lectures and lab sessions that may vary from week to week. We always begin in the lecture theatre.
This is a practical course, we will show you real code, and do a number of exercises that involve programming. If you have a laptop, you may wish to work on that, but we have lab rooms booked for the tutorial sessions. We encourage people to work in pairs. You are encouraged to do the tutorials during the allocated sessions as they are designed to help you learn practical skills, and the lecturers will not be around the college at other times to help you.
As part of the continual assessment for this course, you need to write a weekly diary of what you have learned. You can work together do these write-ups in pairs or threes, just put all of your names on the submission. You can use the following template to fill this in online and produce a pdf to submit to CATE.
More guidance on writing diaries.
Most of our programming examples are in Java, so it will be helpful it you have the JDK installed on your machine. We also recommend a Java IDE, typically either IntelliJ IDEA (Community Edition) or Eclipse, both of which you can download for free. These tools should be available on the lab machines.
We have assembled some related reading material on the reading list - we will try to add to this as the course proceeds.