Real World Projects
In addition to the flexibility which comes from the breadth of the computer science discipline, the computer scientist has a wide range of career options. Generally, careers that focus on the development of applications and specialized software for business and scientific areas require the Bachelor of Science or Bachelor of Arts degree. With either degree, students are prepared for employment immediately after graduation. Students with an interest in the development of computer systems, including hardware and major software, will find that the Bachelor of Science degree provides a firm foundation for a career that may require a Master of Science degree and result in employment by a major computer manufacturer. A student hoping to perform advanced computing research or to be a university professor will find that the Ph.D. degree is essential.
The depth, breadth and flexibility of the computer science program includes the ability to apply classroom knowledge to real world projects as part of independent study, directed projects and regular classroom requirements. The following are a sampling of the recent projects students have been involved with
Students worked in groups for their final project to create a video game using Java Swing libraries. The project allowed them to apply their knowledge of data storage and organization to a real world software project, and produce readable documentation for a developer. Below are a couple of the projects: Snake, BlackJack and Pong:
In a recent independent study, a senior computer science major developed an interactive graphical user interface (GUI) for molecular dynamics simulations. His GUI could visualize a molecule using three views while stepping through a simulation and checking results. The GUI was built with the TKInter libraries for Python, while the simulation was executed by the open source MDLab (mdlab.sourceforge.net) software.
This course offered students a hands-on atmosphere for applied computing in the biological sciences and mathematics. By running simulations of biological cells using Conway's Game of Life and the Cellular Potts Model (CPM), students study how the application of simple mathematical rules to behavioral entities result in patterns similar to those observed in nature. In the screenshots below, student projects captured foam bubble dispersion, cell sorting analogous to those in the eye, and the slime mould Dictyostelium Discoideum using CompuCell3D which runs the CPM:
Students explored the internal hardware of a computer and for their final project create a machine which can add two numbers using (shown below) breadboards, logic gates and LEDs. The LEDs illuminate to show the result of the addition.
Students explored the various design issues which affect the appearance of a graphical user interface and provide the means by which a user may communicate with the underlying applications software, realizing that good design facilitates effective communication. Graphical user interface features such as mouse interaction, menus, dialog boxes, tool bars, error messaging and direct manipulation are evaluated and implemented.
In this particular assignment, students were asked to create simple word processing application in Java, using traditional GUI components, such as menus, dialog boxes, sliders, etc., from the Java Swing GUI widget toolkit.
Students were introduced to the theory and programming issues involved in rendering graphic images. Theory includes the physics of light and surfaces, surface illumination equations, and algorithms for rendering scenes using ray tracing. Visual surface algorithms, 3D viewing transformations and projections, anti-aliasing, 3D model transformation, illumination models, texture mapping, animation, and interactive graphic techniques are also presented.
In this assignment, students were asked to create an animation using a number of graphic objects, with one object demonstrating an attempt to model a real world object as accurately as possible. Object shape and surface properties, such as reflectance and texture, were chosen to realistically model the object. Another object had its surface appearance based at least partially upon the use of a two dimensional “texture” map. The project also demonstrates an object based animation as well as a camera based animation.
Students were encouraged to envision and implement projects in evolutionary computation that are of research level quality. Here is a sample student project, which after additional research and review led to a peer-reviewed publication at a major conference.
Project Title: Communication as a Model for Crossover in Genetic Algorithms
Abstract: We have created an evolutionary model of multiple ant colonies searching for a resource using swarm intelligence and a modified genetic algorithm. In place of the standard crossover we have employed a modified crossover which models communication; we call this a communicative GA (CGA). The communicative crossover operation sums up the moves of the most fit and least fit chromosome. The most frequent high move and low move are selected for altering. For each chromosome, the lowest move is changed into the highest fit chromosome's most frequent allele. Statistics were recorded in each generation, including; max fitness, min fitness, the average fitness, the average number of generations it took to reach the resource, and the percent of variation of fitness. The statistics were compared to the same model implemented using a standard GA with a crossover.
Our model simulates N different ant colonies competing for one resource. We used N=4 colonies for our experiment. For illustrative purposes we have created a square shaped habitat. The ants' path towards the resource originates from the colony and the ants may not go off the edge as seen in Figure 1. Six circular tiers were placed radiating outward from the resource representing some indicating factor from the resource. These tiers are used to calculate the fitness of each individual.
Students use an expert system shell to create expert systems in an area of their choice. Some of the most remarkable Expert Systems created include:
- Advising system for purchasing a boat
- What to do when a hurricane approaches
- Restaurant recommendation system
- Recommendation system for computer games
- Football head coach
- Academic Adviser
- Automobile troubleshooting system
- Recommendation system for music studio equipment
- Surf adviser
- Recommendation system where to spend your vacation