I will be teaching CSC 301: Introduction to Software Engineering at University of Toronto this fall. The course is meant to teach software process for small teams, also known as agile. Students work in teams to complete a software project. I would like the projects to be for social enterprises to incorporate service learning into the course. As a result, I am now looking for non-profits or social enterprises who need some software built. Here are some Q&A to help you decide if this is a good opportunity for you.
Q: I need a web site for my organization. Is this the kind of project you’re looking for?
If you are looking for a web site where people can go to learn about your organization, then no, this isn’t the right kind of project for us. I’m looking fora project that has some interactivity, or has a reasonably complex algorithm, or moves some significant data around. For example, a web site where volunteers can sign up for shifts, or an questionnaire that helps a client choose the right service, or a visualization of the rental rates on a map of the city would be good projects for these students.
Q: What kinds of projects have they done in the past?
Here are some of the projects that were completed by students last fall.
- A system which runs off the school website, where the administrator controls room availability and teachers log on and book the rooms.
- A parent teacher interview booking program, similar to the school’s existing Flash-based system, but one which is compatible with parents’ Ipads, Iphones etc.
- Given a set of student code, generate a tester program, based on expected input and output values provided by the teacher of the course.
- Application that allows the user to specify the marks that are needed for a course, and allows easy mark entering and report generation for the students of that course.
Q: How big are the teams?
Teams usually consist of 4-5 students. Typically, there are 80 students enrolled in the class, so that works out to about 20 teams.
Q: What kinds of students are these?
These are students majoring in computer science. Most of them are in third year. They have all learned Java in their courses. A few will have some php under their belts. Many have programming experience outside of school. As a rule, they are not great graphic designers nor great user interface designers.
Q: So, are these students any good?
These are some of the best computer science students in the country. That being said, they are still students and this course is a learning experience for them. They have a lot to learn not just about software engineering and computer technology, but also how to make software for people and how to work with people who are not computer junkies. You’ll be helping with that.
Q: What kind of time commitment do you need from me as a customer?
To be clear, these are students, not professional software developers, which means they will require more of your time than if you were paying consultants. It’s best if you can provide regular, timely, and thoughtful input. You should plan to meet with your student team about once every two weeks. In addition, you may be asked to answer questions, review designs, or prepare some information about your organization. It’s important that you do this in a timely fashion, because the course is only 13 weeks long and students are understandably anxious about their grades.
Q: After I put in all this time and effort, how can I be sure that I will get something useful out the other end?
I’ll be doing two things to increase the likelihood of success. One, I will work with you before the course starts to figure out if the project is a good fit for the capabilities of the students and not too big or too complicated be completed in the time available. Two, I will be assigning two teams to each project. The chances that both teams will produce completely unusable software are pretty slim. Also, having two teams won’t double your work, because you’ll be able to meet with them at the same time.
Q: I’m game. What’s next?
Send me an email ASAP. The first week of class is September 10, the week after Labour Day. I hope to put the teams and projects together that week, or the week after at the latest. Plan to be spending some time with your teams during the week of September 17.