The purpose of this course is to get you thinking about the issues and problems that confront software developers in the real world, i.e., the world outside of the university. I plan to accomplish this in three ways.
First, I will have a variety of guest lecturers from industry - folks who are battling it out in the development trenches on a daily basis.
Second, I will discuss issues of current interest as well as a variety of practical tips that are designed to encourage good practice. Thus lectures will not be very structured. They are more of an amorphous collection of issues, problems, and do's and don't's. Things will not be presented to you in a neat and orderly fashion in the real world. The real world is a really messy place. So I thought it would be good for you to start getting used to trying to impose some order on a disordered situation. You have plenty of other courses of the more organized, traditional type.
Third, you will do a term programming project. You will have no choice of projects. I will assign one to you. These projects will be done in two person teams. You are on your own to find a partner. If you don't like the project you are assigned, you had better learn to deal with it. That is how it often goes out there and this is a splendid opportunity to get used to it. Anyway, you must learn to see the possibilities in all tasks you are faced with.
During the project you will be required to do two oral presentations. The first, which will happen roughly two weeks after the project is started, is a design presentation where one member of your team will have 15 minutes to get up and describe what your problem is and your general design approach. The second presentation, which will happen about 3 weeks after that, is an implementation presentation where the other member of your team will have 15 minutes to get up an describe your implementation approach. The fun part is that these presentations will be conducted by professional software developers at their place of business. Thus, you will have a chance to experience what it is like to get up and present your case in a professional setting (to say nothing of the fun it will be to know that you are showing what you can do to a potential employer!!).
Finally, at the end of the course you will turn in a beautifully and professionally written report describing your program. You may use your final report as your entry to the class competition for best project. This competition is voluntary. The first round of entries will be judged solely on the basis of the written report. 10 finalists will then be selected. Those 10 teams will then be invited to participate in the final round which will include an oral presentation of their project (details to follow). Cash and other prizes will be awarded to the winners.