Computer Science
Some
Projects:
===========================================================
For my OOAD class, our team did a Home Appliance
Control System:
HACS Part II,
HACS Manual
For my Advanced OS class, I did a demo of various
time-stamp schemes:
AOS Project 2
Here are some of my current thoughts on Computer
Science:
===========================================================
Computer Science vs. Software Design
Computer Science should be renamed to Computational Science as it deals with a variety of computations that just happen to be implemented on modern (and not so modern by testimonials of many college students) computer systems. It is science "in the raw", or a "hard" science, if you please.
Software Design is the study and design of software components for human interface with the goal of presenting the user with a well crafted and aesthetically pleasing environment. It is a "craft" skill and a"soft" science.
While the two deal with with computers, they are not the same. However, they are not mutually exclusive either. They overlap. Disciplines such as Human-Centric Computing explore the relationship.
Increasingly, Computer Science students are being asked to perform Software Design in their various projects at the whim of instructors who either are ignorant about the differences between these sciences or know very well that much in the way of Software Design principles are NOT being offered in the curriculum. Many of these students don't have a clue as to the difference between these two disciplines. While some have a "degree in natural talent" concerning Software Design, any course you choose to survey will show how glaringly bad Software Design is implemented in Computer Science. This is often compounded by the fact that the students must demonstrate in a presentation these badly designed projects and receive grades for their effort--much of it geared toward the aesthetics of the presentation! Currently, I don't see how the Computer Science curriculum's can be modified to stuff yet another course into their offerings.
Actually implementing Software Design is another issue. There exists many User Interface tool sets a student may use for Software Design. However, many are source language dependent. Languages like C++ don't natively support GUIs (unless your tied to a monolithic system, such as MFC) while languages like Java do. However, languages like C++ have GUI builders that allow a user to craft a UI in a highly abstract manner through another GUI. These builders allow the coder to design a screen while the tool creates the framework code. The coder extents the GUI code to link it to the desired application. In some cases, the GUI code is a separate program and simply shares collected data with a non-GUI application. For Java, I have seen a few emerging GUI building tools. There does exists some general purpose GUI systems and builders that are language independent, such as Qt and Tcl/Tk. In addition, some cross system GUI libraries and related GUI builders have become available, such as wxWidgets and the Code::Block's wxSmith plugin. While things are getting better, generally UI construction is left to the coder to implement directly in code, which leaves a lot to be desired when attempting to craft a "good looking" application.
Back to that odd, rather depressing, melancholy Home Page.