In-House Software Suggestion

CIS at Guelph does a good job teaching us what NOT to do when designing applications and programs; starting from the theory right up to advanced implementation. I would even go as far as to say that CIS at Guelph does an excellent job teaching us how to design good software.
Yet, it would seem that the University doesn't hire its CIS graduates to design their software. Have you ever heard anyone complain about WebCT? WebAdvisor? Have either of these products ever been used as an example of "How not to design a GUI" in class?
I would simply like to suggest that CIS at Guelph, somehow, starts taking strides towards producing its own in-house software for general student use. I would love to see Guelph one day ditch both WebCT and WebAdvisor in favor of something that we CIS students, or our successors in future generations, designed from the ground-up. Imagine...
Just a thought.
- Dave
- Login to post comments

It's an interesting idea,
It's an interesting idea, and I honestly like it, especially the part about getting rid of Web CT. That being said, they won't get rid of it until they've paid off the doubtlessly large sum of money they sunk into it already. Which means it's around for a while longer. Furthermore, while I thoroughly enjoy the design classes, I have seen countless crappy interfaces made by even us, *gasp* the uber-Guelph geeks. I don't know how well carried out. It's entirely dependent upon which undergrads were doing it.
Randall Roberts
3rd Year Class Rep
Insert witty comment here
One semester not long enough
There is no easy-answer... One semester doesn't seem long enough to pull this off.
Maybe the CIS Project course (4900) could have a sequel added onto it (say, 4910) so that groups could work for two back-to-back semesters on this project?
- Dave
.
.
Hep, have you had any
Hep, have you had any classes recently with Judi?
She has the Greebo thing, which is awesome. If there's anything we can replace WebCT with, it's that.
___________
Josh Gaber
CPES-SC - Treasurer
SOCIS - 2nd. Year Rep.
DREAM WORLDS
you guys live in dream worlds!!
first, no way webct is being made by guelph students. it would need to be much longer than 2 semesters to get the thing close to being made let alone made, tested, integrated, and then tested again. second, it probably wouldn't be much better. in fact it woudl be just as bad, because the people who made it would be graduated and so no support help without cashing out a lot of money to now-graduated students who probably have jobs, and consulting is not cheap.
second, greebo is fine but i bet it's way too complicated for a lot of teachers to use. you have to realize that probably the focal point of the entire thing was getting it so that english/philosophy/etc teachers would actual use it, moreso than student usability.
third, it's not that bad! definitely it would not be worth the investment to upgrading it. it would be sweet if a little money was put into finding out what the major feature upgrades that people wanted were and put that in, but a redesign for something that 90% of the people don't see a problem with doesn't make any sense.
I think it would be a good idea if SMALL things were built by students and used, but I also think students might feel ripped off if the university started using something they made and didn't pay them.
You are probably right, Jeff
But I just hope that you're not.
All I suggest is that realistic steps be taken to look into this. I am entirely allowing for the possibility that the result of "testing the waters," is that this isn't a feasible project.
However, I always think that It's best to err in the chance of success. :)
- Dave
(No subject)
so how *would* you feel if.....
I've often thought that the 'projects' in university classes (not just here) are unrealistically constrained by the 12 week semester. That constraint isn't going anywhere soon unfortunately. That said... a project class could get A LOT more software designed by hanging the projects off of existing open source architectures. Say.. for example... a project class where the projects were all to design plugins for eclipse. There are many, many suitable open source projects out there.
How do you (as in anyone reading this) think students would feel about something like that? Its 'real world' experience, which means its messy, has to work to other people's api specs and bad documentation, frequently will include work arounds for someone else's bad design and bugs, etc etc.
Would you feel ripped off if something like that was the project in a class like 2430 or 3750? Or would you feel like you'd done something meaningful?
I think it is a great idea
I think it is a great idea and would be a lot of fun. The only thing that concerns me is how it would be marked. Like you said the real world is messy and a solution can be rather difficult to track down sometimes.
My suggestion for the marking (if I may be so bold) would be to develop our own in house testing of the plugins so that a lot of the marks can be easily earned by following what api can be found and then the rest could be with how well they work in real life.
Bryan Heisler
"Half the lies I tell aren't true"
--Elazmeh
Actually, I think this would
Actually, I think this would be better than what we had in the old 343. One of the things which I find difficult is adequately diagramming/documenting systems to integrate with prexisting frameworks, as all of my previous experience in coursework involves starting from scratch. I think students would get a lot out of learning how to work with completely foreign code.
I would also think that, assuming the projects were successful, that contributing the code back would be a good idea. That could even be part of the project, as most high-profile OSS projects have pretty strict standards for inclusion.
--
Andrew
I can't claim to be an
I can't claim to be an authority on the subject, but I have been working in the software development industry at a well-known Telecommunications Handset Manufacturer for the last 2 years in conjunction with finishing up my undergraduate studies at UofG. While piggybacking on the foundations/architectures of open-source projects does remove a significant portion of the leg-work from the design process (for numerous reasons, as stated in the parent), IMHO, it still doesn't capture what is really lacking in our software engineering/system analysis curriculum.
It's trivial enough to build a piece of software that accomplishes some real-world task -- this is currently what the 12-week restriction permits. However, designing a system to scale, evolve while maintaining conceptual clarity is quite another. Unfortunately, it is very difficult to accelerate the growth of the software life-cycle (especially in a classroom setting), so this experience is largely absent from the curriculum (and for good reason...).
Unless I am mistaken, starting in 2008, a new course will be introduced dealing with software verification and testing. If the spirit of this course was embodied in building upon previous courses (whether it be an actual arrangement or not), in addition to the introduction of both the applied and theoretical aspects of white/black box testing, integration testing, regression testing, performance benchmarking etc., I think students would have a much better understanding of what software engineering actually is by the time they leave the program. Even in large groups, building software systems in an academic setting doesn't give you a feel for working on a truly vast project -- I think it would be a real plus for Guelph students if they left the program with a tool chest of ways to ensure they can dig into an active development process and more importantly ensure what they produce will "play nice" with what is currently there. I have hired many coops that can certainly write code, but are quite wet behind the ears when it comes to extracting knowledge from a large source code repository, adding to that repository through application of said knowledge and testing what has been produced such that a level of confidence regarding correctness can be provided to supervisors/mentors. I have included a few suggestions that are geared towards addressing these points below.
So, to summarize I would change our existing System Analysis and Design/Software Engineering courses in the following way(s):
Analysis and Design -> Focus more on the establishment of requirements and methodologies employed for ensuring their satisfaction. Perhaps do-away with ground-up endeavors in favour of the extraction of designs from existing projects (Open source?). Topics to explore could include: Trade-offs in cost/benefit, prospective scalability, mapping of requirements to features specifications and feature specifications to implementations and perhaps even schedule/milestone estimation and forecasting. Actual programming can certainly be present, but the marathon end-of-term project need not be a ground-up endeavor -- an elegantly implemented plug-in should suffice provided a concise and clear design is provided along with evolution paths and future design ideas. In a sense, it is not as important that the project be completed in a sub-standard form, but that the approach taken was sane and easily understood by others.
Software Engineering: Unlike the previous refinements, in this course the end-product is everything. Granted, relaxing the restriction in the previous course removes the student from experiencing the pressure of having to deliver a software system on schedule, but I think the trade-off is worthwhile if they have a better understanding of how to do it well. This course should include an introduction to source code repositories, code line maintenance, defect forensics etc. The grade a particular group receives should factor in the /process/ of developing the system in addition to the end - product. Intermediary builds, evolved specifications, clean source code repositories should be stressed. Testing is introduced early and cast as a development aid, not a chore. However it is not considered in judging the merit of the final project.
I am unsure how these ideas would mesh with the requirement to incorporate group work into the curriculum, but I don't see any immediate issues here.
Anyway, this reply has quickly ballooned on me, so I will leave it at that. I completed my undergraduate thesis in this area, so if anyone would like to discuss further, please feel free to contact me!
-Grant
I'd love to take part in an
I'd love to take part in an open source project like firefox or something, as well as get a credit for it. Not only does it get us real world experience, but it's something we can actually brag about. Especially in job interviews.
Not to mention the University's potential for getting fame for it. Imagine if one of us had taken a class like this and written StumbleUpon. It'd be huge, and every time it came up, the University (and the student) could say "That was us."
Right now, being third year, I'm facing a bit of a dilemma. While this program is in high demand, not being co-op has left my resume quite bare. I've been volunteering for stuff like mad for this very reason, but it doesn't leave much time for external projects (see General Programming: Sudoku). Being able to do this kind of stuff FOR school would allow for me to build my portfolio, my resume, as well as get a credit all in the process.
EDIT: And as for being paid for it, forget that. Many of us are linux fans, and therefore, freeware fans. I go to university to get experience so I can get paid LATER for big, proprietary software. I don't expect to make much on the way there, and certainly not from an assignment (or an open source app).
Randall Roberts - 3rd Year Class Rep
MOODLE
Judi is using MOODLE I think.
http://moodle.org/
This piece of software is WAY better than WebCT. Here are some stats on its use:
Registered sites: 22204
Courses: 878683
Users: 9230499
Enrolments: 13251504
QUite a nice package and open source to boot! If fact maybe we should try and make moodle the defacto platform for CIS.
As for writing software, what about working on some neat software for stuff like digital photography. There is a huge market for developing small apps to improve peoples photos, do restoration etc. The added benefit is that these programs could actually make some money.
Michael