Computer Science

Some Projects:
===========================================================

For my OOAD class, our team did a Home Appliance Control System:
HACS Part II, HACS Manual

For my AdvOS class, I did a demo of various timestamp schemes:
AOS Project 2

Here are some of my current thoughts on Computer Science:
===========================================================

Computer Science v. 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 asthetically 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.

Increasingly now, 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 disiplines. 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 asthetics of the presentation! Currently, I don't see how the Computer Science curriculums can be modified to stuff yet another course into their offerings.

On top of this issue is the one about actually implementing Software Design. There exists many User Interface toolsets a student may use for Software Design. However, many are source language dependent. Languages like C++ don't directly support GUI's with code libraries 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 code to link it to the desired application. For languages like Jave, I have not seen any GUI building tools. The 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.