CSCI 1300
Introduction to Computing


Fall 1997

Project Ideas

The projects listed below are suggestions. You are not required to choose one of these projects, but they should give you some idea of what is expected from your semester project in terms of complexity and difficulty. Keep in mind that you will be spending the second half of the semester working on this.


Birds
Brief description
This project simulates the flight of flocks of birds. Each simulated bird follows some simple rules in choosing its location in flight and the program shows what overall formations such single-bird preferences result in. The user can control one bird to see how its movements influence the rest of the flock.
Purpose
This project lets the user test theories about how flocks of birds create their flight formations.


Optics
Brief description
This projects illustrates basic aspects of the workings of photographic lenses.
Purpose
To provide a teaching tool that lets the user explore concepts such as focussing, depth of focus, aperture.

Binary Numbers
Brief description
This project lets the user visualize binary numbers and their relation to decimal numbers by moving blocks of various sizes on the screen.
Purpose
This project allows high-school students to learn about binary numbers.

Flight Simulator
Brief description
An instruments-only flight simulator. The users flies a plane.
Purpose
Soaking up spare time of aerospace majors.

Formatting
Brief description
Automatic formatting of program text ("code") can be very helpful to programmers. This project implements a formatting technique that turns
        // ------------------------------------------

        char suitToChar (Suit s)
        {
            switch (s)
            {
                case Hearts: return (char (3));
                case Diamonds: return (char (4));
                case Clubs: return (char (5));
                case Spades: return (char (6));
            }

        // ------------------------------------------
into
        // ------------------------------------------

        char suitToChar (Suit s)
        {
            switch (s)
            {
                case   Hearts: return (char (3));
                case Diamonds: return (char (4));
                case    Clubs: return (char (5));
                case   Spades: return (char (6));
            }
        }

        // ------------------------------------------
Purpose
Providing a tool for formatting programs in a way that brings out the relationships between similar successive lines.


Heat Transfer
Brief description
This project shows how heat propagates across sheets of metal. The users can specify various initial temperature values and also properties of the metal.
Purpose
Illustrating the physics of heat transfer for anyone who wants to see it.

Springs
Brief description
This project shows how objects that are connected by springs arrange themselves in space. Any number of springs can be used, of varying lengths and strengths. The user sets up the initial situation, the program then simulates what happens when the objects are let go.
Purpose
Aside from illustrating the physics of springs, this projects shows how "continuous" objects like a string or rope can be approximated by a series of small objects, like short springs.

Jigsaw Puzzles
Brief description
This project supports the designing and solving of jigsaw puzzles. For solving the puzzles it simulates a table top on which the user moves the pieces. For designing the puzzles it randomly cuts up a rectangular shape and scatters the pieces.
Purpose
Not sure.


Crossword Puzzles
Brief description
This project supports the solving of crossword puzzles. It provides clues for the entries that the user points to.
Purpose
Providing a convenient interface for crossword puzzle addicts.

"Probabilistic pegboard"
Brief description
This project simulates a pegboard into which balls get dropped from the top and make their way to the bottom. When obstructed by a peg a ball randomly moves left or right.
Purpose
This simulation lets the user build up intuition about probability concepts.

Traffic Simulation
Brief description
This project simulates the flow of traffic through a street map.
Purpose
To provide a test bed for decisions that affect traffic, such as lane closings, one-way streets, traffic light switching algorithms.

Color Mixing
Brief description
This project simulates the spreading and mixing of colors on a canvas.
Purpose
To teach children about the effects of mixing colors.

Particles
Brief description
This project simulates the behavior of water molecules and other types of particles inside confined spaces. Various parameters can be set that affect the global behavior of the particles.
Purpose
The user can explore theories why water and sand and gases and piles of tennis balls all behave differently.

Dendrochronology
Brief description
Dendrochronology is the dating of historical events by tree rings. This project lets the user explore dendrochronology tasks by manipulating tree-ring data on the screen.
Purpose
This project allows high-school students to learn about the concepts of dendrochronology by performing tree-ring dating tasks.


Copyright © 1997 Karl Winklmann

Last edited (or copied to this place) at 1:10 PM, Wednesday, February 12, 1997.