Overview
Reading
Key Dates
Lectures
G52GRP & G52SEM
Assessment
Open Day
Presentation Day
Awards
Projects & Groups
Past Projects
References
The Student Handbook describes the organisation of this module in detail. Everyone must read this very carefully!
Additionally, you need to read the TSG Group Project pages. They both provide some very useful general advice, and give details on practical aspects such as equipment requests and procedures for handing in reports and source code.
The Professional and Quality Issues (PQI) part of the module is based on the book Professional Issues in Information Technology [Bot05] by Frank Bott, which is recommended reading. |
|
The book Projects in Computing and Information Systems: A Student's Guide [Daw05] by Christian W. Dawson discusses various aspects of carrying out a project, such as planning, risk management, basic software engineering issues, and presentation. It adopts a student's perspective (whereas many other books on software projects focus on large-scale, industrial projects), and it contains information relevant both for group projects and individual projects. While it is not covered directly in any of the lectures, it would be worth to have a look at it for some concrete advice on how to manage student projects, and as background reading for the (guest) lectures on project management. |
|
I highly recommend the book Version Control with Subversion [CSFP08] by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato if you are going to use Subversion, or even to just get an understanding of what version control systems are, and why they are useful. The book is very well written and it can both be bought if you want a hard copy or downloaded for free. And yes, you should use a version control system for your projects! |
|
Dr. Steven Bagley recommends Code Complete 2 [McC04] by Steve McConnell: “It's a nice book looking at how to write large software well covering both the design and coding of the project. It's intensely practical and I find you can just dip into a particular topic and come away with useful knowledge — including a lot of examples of bad practice and explanations of why its bad. There's a website for the book at www.cc2e.com which lists the contents.” |
|
Our friends at Esendex and 7digital, experts on agile software development, warmly recommends Clean Code [Mar08] by Robert C. Martin. Paul Shannon, 7digital, says: “Robert C Martin, or 'Uncle Bob'; as he's better known, has written a definitive guide to quality code in this book. It provides a gateway to the world of software craftsmanship and helps you on your journey to writing high quality software that can be easily maintained, is easy to read and simple to change. You'll learn that comments are considered a bad idea and why tests and good naming will always win the day, but also how best to handle errors, use emergent design and learn tricks around concurrency and refactoring. Most of all though, the book contains a complete guide to detecting code smells so you'll know what bad code looks like and why it's important to clean it up!”Neil Kilbride, Esendex, says: “Poorly written code may function correctly but costs organisations time and money. The importance of code quality is presented in Clean Code by the original software craftsman Robert C. Martin (Uncle Bob). This book uses clear examples to outline the principles, patterns, and practices of writing clean code. This book will make you a better software developer.” |
|
The book BUGS in Writing: A Guide to Debugging Your Prose [Dup98] by Lyn Dupré provides plenty of concrete and useful advice on how to improve various aspects of your writing. It focuses specifically on technical and scientific writing, with many examples from Computer Science. It is also very enjoyable to read. Not only useful in the context of the group project, but also for other report writing such as your individual dissertations and almost certainly also later in your professional careers. |
|
You may be considering using LaTeX for writing your group project (or other) reports. If you do, I can highly recommend Guide to LaTeX [KD03] by Helmut Kopka and Patrick W. Daly. Shown here is the fourth edition, but the third edition is also OK. While the learning curve of LaTeX can be a bit steep, and while LaTeX certainly isn't perfect in all ways, on balance, it works quite well for structured technical documents, largely automates tedious but important aspects such as managing references, and it really helps with producing a finished result that is up to top-notch typographical standards. In addition, it works quite well for co-operative writing as everything basically is just text files, just like program source code, and thus can be put under effective version control. This book makes the learning curve substantially less steep and and also provides concrete examples showing how to do most things you might want to do, and how to work around common problems. While on the topic of LaTeX, there are sophisticated IDEs for LaTeX providing good error reporting and quick previewing, which helps reducing the learning curve. There are even on-line services, such as writeLaTeX or ShareLaTeX, providing similar functionality as well as support for collaborative writing. Like Google Docs, but for LaTeX. |
Task | Date or Deadline |
---|---|
Equipment requests | From 15 October, one request |
Group project site up and running | Friday 2 November |
Interim reports due | Extension: Monday 10 December 2012 |
Final reports and software due | Friday 22 March 2013 |
Open Day | Wednesday 8 May 2013 |
Presentation Day | Friday 10 May 2013 |
Each deliverable should be submitted no later than 4:00 pm on the due date.
This lecture overview is preliminary .
Lecture# | Date | Content | Speaker(s) | Slides | Reading |
---|---|---|---|---|---|
1 | 2 Oct |
Introduction Meet and Greet |
Dr. Nilsson Supervisors |
On-screen Printing (4 up) | Student Handbook |
2 | 9 Oct | Work Organisation and Assessment | Dr. Nilsson | On-screen Printing (4 up) | Student Handbook |
3 | 16 Oct | Project Site & Version Cotrol with Subversion | Dr. Nilsson | On-screen Printing (4 up) | [CSFP08, ch. 1 - 5] |
4 | 23 Oct | Guest Lecture: Version control: branching and what came next | Matthew Walton (EvoEnergy Ltd) | Slides | |
5 | 30 Oct | Guest Lecture: Working in an agile software development team | Neil Kilbride and Sam Wessel (Esendex Ltd) | Slides (PDF) and | |
6 | 4 Dec | Guest Lecture: Live Test Driven Development | Paul Shannon, Wojciech Kotlarski, William Munn (7digital) | ||
7 | 11 Dec | Guest Lecture: If You Want To Make A Difference, Don't Get A Proper Job | Adam Bird (Esendex Ltd) | ||
8 | 11 Feb | Report Writing and Peer Assessment | Dr. Nilsson |
On-screen
Printing (4 up)
Prof. David Brailsford's notes on grammar |
[Dup98] |
9 | 4 Mar | Presenting your Project (Open Day and Presentation Day) | Professor David Brailsford Dr. Steve Bagley |
Slides (PDF)
Poster instructions (PDF) |
Guest lectures
23 October: Version control: branching and what came
next
Speaker: Matthew Walton (EvoEnergy Ltd)
An overview of the uses for branches in version control systems, some of the problems they can cause and how distributed version control systems such as git can alleviate some of them and allow a more flexible development workflow.
EvoEnergy Ltd are one of the largest solar power specialists in the UK. They aim to help creating a sustainable energy future by designing and installing Solar Photovoltaic (PV) systems, which generate clean and efficient electricity
Matthew Walton graduated from Nottingham with a degree in Computer Science in 2003, and has since worked for companies large and small on projects ranging from high-performance network servers to tiny system maintenance scripts with the occasional detour into web-based applications. He currently writes a stock management and scheduling database for Nottingham-based solar power installer EvoEnergy; and telephone and web gateways for DutySheet, who provide duty scheduling and officer management software for the Special Constabulary. He is always learning interesting new programming languages, libraries and techniques in an attempt to eliminate as much annoyance from the working day as possible.
30 October: Working in an agile software development
team
Speakers: Neil Kilbride and Sam Wessel (Esendex Ltd)
For Computer Science students at the University of Nottingham, the 2nd year group project module is the closest experience the course provides to working in a real life software development team. A successful group project team must assess project requirements, organise team members' responsibilities, and ultimately work together to deliver a functioning piece of software before the deadline. In this talk we will discuss the processes and practices a working agile development team uses to continuously deliver high quality software to meet the demands of a large, international customer base. We aim to demonstrate how these principles can be usefully applied to the students' group projects. We hope to give the students a taste of life in our team, and leave them with some helpful ideas for progressing their skills as developers.
Esendex Ltd are the UK's leading specialist business SMS provider. Passionate about business communications, they are involved in creating the next generation of text messaging products and platforms.
Neil Kilbride graduated from the University of Nottingham's Computer Science department in 2005. He immediately joined Esendex as a junior web applications developer and was part of a team that helped Esendex become the UK's leading SMS provider. Neil is now team leader for the Applications Team at Esendex, using agile methodologies and the latest technologies to deliver first class messaging APIs and web applications.
Sam Wessel built his first web site in 1994, when he was 12 years old, and has been following the evolution of the web ever since. After graduating from the University of Nottingham with a degree in Computer Science, Sam took his passion for learning to Codeweavers Ltd, where he was able to develop his programming skills while helping to advance the company's adoption of agile practices. He has run several conference workshops on agile approaches to design. In February 2011 Sam joined the development team at Esendex Ltd, where he leads weekly coding dojos and nurtures the company's agile processes. He is currently a co-organiser of the GeekUp Nottingham software group.
4 December: Live Test Driven Development
Speakers: Paul Shannon, Wojciech Kotlarski, William Munn (7digital)
Two developers will be pair programming to produce a small application in the lecture. They'll develop a scoring system for a tennis match and produce the production code by driving it with unit tests. The aim is to get a very basic program that solves a well known problem, all test driven, in about 40 minutes. While the two developers are actually producing the code, a third will narrate the process: explaining what is going on, and why, covering ways that this could be used in a group project.
The lecture will be supported by a hands on Workshop on Test Driven Development, 14:00–15:00, room C11 (Computer Science Building), where the participants will get a chance to practice pair programming and TDD under the guidance of the experienced 7digital developers. The number of places is limited to around 20. Sign up by sending an e-mail to the G52GRP Module Convener stating your name and that you wish to participate.
7digital are a London based company specialising in providing a global, open, digital content platform. They provide consumers, partners and developers with open access to an extensive international catalogue of high quality digital content. Some interesting partners are Samsung (Music Hub content is powered by 7digital on the Galaxy SIII), RIM, Pure, Toshiba and HMV, and they have applications for Android, iOS, Windows 8 and Blackberry.
Paul Shannon holds a BSc in Computer Science from the University of Nottingham (2000-2003). He has been with 7digital for just over a year and is now Assistant Director of Technology. He helps the self managed technology teams build quality software by alleviating bottlenecks, talking to stakeholders and liaising with the business on a strategic level. He also chairs the company's Technical Academy that helps to hire graduates and give them skills in the XP, Lean and Software Craftsmanship practices that the company use. In his spare time he likes motor sports and photography.
Wojciech Kotlarski holds a MSc in Computer Science from the Jagiellonian University in Krakow (2011) after defending “Building flexible software architecture with use of design patterns” master's thesis. He was working for over six years for aviation software industry with geographically distributed team on developing software solutions for international airline companies in area of airport operations, coordinating work of agile project team, developing cross-project frameworks, preparing and conducting technical trainings for development team. Six months ago he moved to the UK to join 7digital to develop media content ingestion software and contribute to the open-source community. In his spare time he likes to explore London and play computer games.
William Munn graduated from the University of Sussex (2005–2008). He has been with 7digital for three years and currently works in the development team for media content ingestion software. His specialities include the .Net Framework, Mono, Test Driven Development, Agile, Digital Music Distribution and Promotion.
11 December: If You Want To Make A Difference,
Don't Get A Proper Job
Speakers: Adam Bird (CTO, Esendex Ltd)
Proper jobs with big companies promise security and stability but they can also demand that you relinquish your soul. Being an entrepreneur yourself or working alongside entrepreneurs puts you in the driving seat. They're your hard earned skills, it's your career you should be able to be proud of what you do. Adam will share some of the euphoric highs and buttock-clenching lows of his career and talk about why being being entrepreneurial with your career is the only option if you want to make a difference.
Esendex Ltd are the UK's leading specialist business SMS provider. Passionate about business communications, they are involved in creating the next generation of text messaging products and platforms.
Adam is a UoN engineering graduate whose career as had both highs and lows. Esendex, the international messaging firm he co-founded from his bedroom, is now a £10M turnover enterprise with more than 50 employees across the world. He has always maintained his technical skills and his new ventures, Bunch Rides and Evenitron, see him back at the start-up coal-face facing up to the realities of trying to build sustainable technology businesses.
He is an advocate and mentor to the tech community in Nottingham working on the Creative Quarter initiative with the City Council. Adam is also a Code Club volunteer, teaching and inspiring 9–12 year olds to become the software developers of the future.
G52SEM Software Engineering Methodologies is a co-requisite for this module (unless you have taken G52SEM or G52LSS previously).
G52SEM
There are two major components to the mark each student will be awarded. First, each group is awarded a collective mark on the standard university scale, with the different aspects of the project contributing according to the following weights:
Group Task | Date or Deadline | Weight |
---|---|---|
Group Project Site | Friday 2 November 2012 | 5 % |
Interim Group Report | Extension: Monday 10 December 2012 | 15 % |
Final Group Report | Friday 22 March 2013 | 30 % |
Software | Friday 22 March 2013 | 20 % |
Open Day | Wednesday 8 May 2013 | 15 % |
Presentation Day | Friday 10 May 2013 | 15 % |
Peer assessment is then employed to distribute this collective mark among the group members according to merit as perceived by the group members themselves, such that the average of the individual marks for the group work equals the assigned collective group mark.
Note that the initial peer assessment is submitted as part of the Individual Reports (see below). However, if necessary a student can revisehis or her assessment of one or more of his or her peers one time until the end of the Presentation Day (Friday 10 May 2013), thus making it possible to also take peer performance during the final preparations for and at the Open and Presentation Days into account. See the Student Handbook for further details on when revising peer assessment is permissible and the actual procedure.
Each student also has to submit an Individual Report, also marked on the standard university scale:
Individual Task | Deadline |
---|---|
Individual Report | Friday 22 March 2013 |
These two components are weighed together into a final mark according to the following weights:
Component | Weight |
---|---|
Individual Mark for Group Work | 80% |
Individual Report | 20% |
Each deliverable should be handed in no later than 4:00 pm on the due date. See the handbook for further details on assessment, how to submit, and details on the requirements for the various deliverables.
The Open Day takes place in A32, where you will be allocated a place and machines. Here is what you need to know to prepare:
The Open Day schedule is as follows. This year we have a very exciting line-up of invited talks from high-profile alumni. Note that a continental breakfast will be served in the Hub from 9 AM until 10 AM, and that Post Awards Afternoon Tea will be served at the end of the day:
09:00 | A32 opens to Students for setting up stalls |
09:00–10:00 | Continental Breakfast in the Hub for G52GRP Students and Staff |
11:00 | Opening of the Group Project Open Day Fair, A32 |
14:15 | Close of the Fair. Everyone walks over to B52 Business School South |
14:30 | Alumni Talks, B52 Business School South (details below) |
16:00 | Group Project Awards Ceremony, B52 Business School South |
16:30 | Post-Awards Afternoon Tea & Mingling for Students, Staff, and Guests, Atrium, School of Computer Science |
17:00 | Close of the Open Day; Students return to A32 to take down stalls and tidy up. |
The programme for the Alumni Talks is as follows:
Ever wondered how companies such as Facebook build their products? In this talk, we'll cover everything from how source control is used, through the structure of a code base, the tools that are used and how they work, and how we can help verify that our code is stable and of high quality. By the end of the talk, you'll have a good idea how some of the modules you've been taking during your CS degree tie into professional software development.
Simon's first job after graduating from Nottingham in 1999, with a BSc (Hons) in Computer Science, was as a radio broadcast engineer, a job his degree in CS meant he looked singularly unqualified to do. Fortunately, radio stations were becoming more and more computerised, and he'd arrived at just the right time. Since then, he's worked in several companies, most recently ThoughtWorks, Google, and now Facebook in a variety of programming languages, from Perl and PHP to Java and Javascript. Simon loves writing software, particularly using TDD, and has been a contributor to many Open Source projects. He is currently the lead of the Selenium project, which is a browser automation framework. Patches are always welcome.
Cath will share some practical tips for progressing from a computer science graduate to being a software engineer and how to prepare yourself for working in the IT industry. Sam will outline some of the day-to-day challenges that he faces as an Ads Quality engineer at Google, and how the lessons learnt from his computer science degree has helped prepare him for this. They'll both also be on hand to offer some guidance on applying for jobs at Google.
Cath is a test engineer at Google in the AdSense front-end team, and works on developing infrastructure for testing and releasing of software. Cath has a bachelor's degree and PhD in Computer Science from the University of Nottingham. Prior to joining Google in 2012, she worked at Electronic Arts, creating Facebook games, and at IBM's development lab, in the Java technology centre.
Sam is a software engineer at Google in the ads quality team, working on ways to improve the quality of advertising shown to millions of users on the Google.com search page. Prior to starting at Google in 2011, Sam gained both his bachelor's degree and PhD in computer science from the University of Nottingham.
What is it like to be a developer in industry, where your creations go out to millions of people? Those essential emerging software development methods and how you can make the most of them. Also a few of those handy tips that you wish someone had just said before you go out into the world of work.
Mike Booth started out life after graduating from Nottingham in 2010 with a BSc (Hons) in Software Systems by joining the Software Consultancy firm Logica. For Logica, Mike helped developed systems for companies like Skype and the Ministry of Defence making use of the skills he learnt at Nottingham to create a variety of front and back end systems, used from things like processing accounts and customers, to showing real time data updates to GUIs. Mike currently works as a Senior Software Engineers for the BBC creating apps for televisions, including the BBCs new Connected Red Button Service and iPlayer.
To give you an idea of what to expect from the Open Day, here are links to pages illustrating what some past Open Days were like:
Information on the Presentation Day, including the schedule, is now available here. Please check it carefully! In particular, note that you are expected to arrive well before your session starts in order to set things up for your presentation (even if it is just a matter of copying files). The time is very tight, and if you end up wasting time because you have not prepared properly, you will simply have that much less time to talk.
Further information on the Presentation Day from TSG, including what equipment is available, can be found here.
Like the last few years, prizes are going to be awarded. However, the structure of the prizes is partly new for this year. We are very happy that 7digital and Esendex kindly has agreed to co-sponsor a new prize for software quality. In addition, The School of Computer Science sponsors a School Prize for overall best group project. Both prizes are going to be presented at an awards ceremony at the end of the Open Day.
Esendex and 7digital are keen to promote principles and practices they know contribute to high-quality software, including SOLID principles, agile methods, and source-code control. To that end, they have agreed to sponsor and award The 7digital and Esendex Prize for Software Quality to the group that, in their opinion, have carried out their project in a way that best embodies such ideas. More detailed criteria is available here. The decision of 7digital and Esendex is final.
The 7digital and Esendex judging panel 2012/13:
The School Group Project Prize is awarded to the second year group project team that is judged to have produced the best project in terms of what was achieved overall, how robust and usable the delivered system is, and how well the project has been documented in the final group report. This prize is provided by Head of School, Prof. Uwe Aickelin, and is judged by the Group Project Awards Committee (GPAC) headed by Prof. David Brailsford. The decision of GPAC is final.
The GPAC 2012/13 members are:
The School Group Project Prize for best project is a cash prize to each member of the winning team. The 7digital and Esendex Prize for Software Quality prize is a “prize haul” including:
The group allocations should now be stable. Any issues, please let the module convenor Henrik Nilsson know as soon as possible!
If you are not in a group but think you should be, please contact the module convenor Henrik Nilsson as soon as possible, giving:
Similarly, if it becomes clear that some names have been added to groups in error, please let the module convenor know as soon as possible.
Links to project descriptions for group projects from some earlier years for reference: