Suggested
IB Comp Sci Dossier Topics for FIS
by Dave
Mulkey, 2006
Here are some suggested topics for my
students. Many of them are for me, so I would be the intended real
user.
Applications (DB = database
oriented)
- Web-Addresses DB - rather
than a list of links on a web-page, or the lists I have in
SaveThis.com, I'd like a nice searchable DB of web-sites, with http
addresses, description of contents. Should include key-words. It
would be nice if these could be extracted automatically from the
web-page itself (or Google description) and then stored in the DB
- Web-Site generator - should
be VERY EASY to use, for inexperienced and impatient teachers, or
very young students. Needn't be flexible - should be template or
wizard based, not using an HTML editor. Can start with one simple
template (e.g. navigation left, title top, content right). Add other
templates later (maybe). Should produce pages out of a data-base or
file(s)
- Daily welcome-page generator
for the computer labs. Generates a web-page with a quote of the day,
announcements, reminders, assignments, etc. The page sits on a
server (lab329). Each PC has short-cut to this file. Should make old
pages available, so students can look back at something from last
week. Could include link to daily bulletin. The program must include
features for recording lists of data (e.g. quote of the day) as well
as generating the web-page automatically.
- CAS projects DB - stores
list of students with areas of interest, plus list of projects with
similar keywords, and tries to match students with projects. Also
keeps a record of currently active projects, so the CAS coordinator
can keep tabs on what students are doing.
- Worksheets Manager - A DB
for teachers to keep track of and manage their worksheets and other
teaching materials. Should be able to click on a file name and add
it to the DB, together with keywords and description
- Friends Tracker DB - Keep
track of friends' e-mail addresses, ICQ name, Handy number, and
other contact info. Should be able to merge lists from several
friends together, so they can share. This is probably an SL project.
- Calendar - appointments,
holidays, events. Should be able to merge calendars from various
people together - for example, merge all the events from various
calendars.
- Computer Lab Scheduler - a
calendar/database for scheduling classes into computer labs (or
library or auditorium). Must keep track of teachers' names, date and
time, and must correctly show the letter day (A-H)
- Knowledge Exchange (Volunteers)
- a database e-mail addresses (and possibly phone numbers) for
students, teachers and parents. Each record includes a list of
interests/hobbies/keywords identifying issues where this person is
willing and able to answer questions. For example, a French speaker
might volunteer to do short translations for other people. A math
teacher might volunteer to help students with homework. A hobby cook
might volunteer to share recipes. The application should be able to
search for a topic (e.g. French) and provide a list of matching
e-mail addresses that can easily be copied into an e-mail address
field.
- IT Software DB - Our school
has a large collection of software. The setup files are stored on a
server, but without any documentation. We have a few lists of
required software for various installations - the labs are different
from the library, and those are different from the teachers'
machines. A good support database would have records of the names of
software titles, where they are stored, notes about installation
tricks, as well as lists of software to be installed for specific
machine types.
- IT Tips and Tricks - a
database of FAQs, hints, instructions, tips and tricks, etc. - for
teachers, students, and parents. The database should include
keywords for each record, and provide both keyword and
full-text searching. It would also be nice if it could produce HTML
pages as output.
- IT Maintenance - a database
for tracking maintenance problems and activities. Maintenance
records must include: problem description, date of problem,
description of solution, date finished, keywords. Should be
searchable by keyword or full text, and should produce various
reports (e.g. according to keyword).
- Web Notes Collector -
students doing research and teachers preparing lessons may visit
lots of web-sites and find a few useful ones. They can store these
in IE favorites or write them on a sheet of paper. But neither of
these methods is well suited to the problem. They need a very quick,
easy, and reliable method for saving the URL and a few short notes
about the useful thing they found there. The time and date would
also be useful. It should be possible to search the database and/or
print out subsets of the data later.
- Software Trainer (Tutorial
maker) - used by a teacher to create a set of instructional
screens to lead someone through the use of a program. For example, a
set of screens showing how to use Paint-Shop-Pro to make a
transparent logo and save it in a GIF file. YOU (the programmer) are
not supposed to make the lessons. Rather, you make a tool so that it
is easy for a teacher (or student) to make and save lessons. This
should be quick and easy to use so a non-expert can make lessons -
e.g. a math teacher could make lessons about using a graphing
program. Avoid fancy multi-media stuff - simply some text and a
single screen-shot picture on each page is sufficient.
Data Mining
This is a general concept, referring to
finding data sources on the web and "refining" these to
produce more specific, useful information. For example, the CIA
factbook has lots and lots of data about countries, but it is
probably too much data for most purposes. A program could present
smaller, more useful subsets of the data. It could also offer the
ability to do clever searching and sorting. Some possible data-mining
areas are:
There are many other possibilities. In
some cases you will find data embedded in HTML files or structured
text files. Then in addition to putting a nicer, more usable
interface on to of the data, you also need to extract the data by
parsing the file. Here are a few examples:
If you choose a data-mining type of
project, keep in mind that you must still have a real user
- so you cannot just make up something that you find interesting. And
you must still show mastery of file operations. Simply
inputting data from a pre-existing file does not show mastery of
files. You would need to do something else, like reading the original
files, extracting part of the data, and recording subsets in other
files.
Educational (for students)
- Vocabulary Trainer -
maintains a list of vocabulary words. Presents them either randomly
or according to some plan. Keeps track of missed words, so student
can work on those again later. Student can add new words themselves,
or merge an entire list from the teacher (or other students)
- Drill and Practice (especially
math) - timed practice on math facts, including calculations.
Questions can come from a long list of simple problems, or be
generated randomly according to rules
- Multiple Choice Quiz Generator
- stores a DB of questions. Allows teacher to generate a
multiple choice quiz, in a variety of ways: printed, on-line,
on-line random order. Would be nice if it could include 1 picture
for each record, but that should simply be a text input telling the
path and name of the file (could use file-open command to retrieve).
Online needs to give a score, but NOT store this in a central file.
- Nations Intro DB - stores
basic info about various nations, the kind of info a casual tourist
might want before traveling there. For example, capital city,
time-zone, tourist attractions, money exchange rate, etc. This
should include some web-links for further info.
Games (probably SL)
- Memory Game (SL) - turn
cards over and find matching cards. This could be based on
vocabulary practice where a word must be matched with it's
definition, or matching a word with a picture.
- Hangman (or other
word-guessing) - Selects a random word from a list in a file and
lets the user guess. Word-list maintenance is the significant part
of the program, not the game. Could have various lists of words on
different topics.
- Text Adventure - move from
room to room, fight monsters, collect weapons, etc. Scenario (rooms
and rules) must be stored in a file, so it is possible to change the
game or to make various different games. Use pointer references (a
web) to store connections
- Checkers (or other board
game) - more appropriate for SL. Should include the ability to
remember the sequence of moves and save these in a file and replay
the game later.
- Concentration - a TV game
show where a large picture is hidden behind cards. The cards are in
pairs and must be turned over two at a time and matched (like
memory). Players win prizes for the items they match, and a big
prize figuring out the message in the hidden picture. The program
should choose a picture at random and mix up the pairs of cards
randomly.
Utilities
- Document Index Maker -
makes a list of words found in a document (can be .txt or .html),
possibly with frequency count and location in file. Can save words
in a text file (or RandomAccessFile). Should provide tool to merge
several lists together - thus the vocabulary from several documents
becomes a vocabulary list for a class for the whole term. Could be
used as basis for vocabulary, hangman, drill & practice above.
- Program Launcher - can save
a sequence of programs that should run and then launch them in that
order automatically. For example, load all your favorite
applications and web-sites when you start the computer. This could
also become a standard tool for a computer teacher to create
start-up lists and configurations for students in their classes, or
for standard start-ups for "normal" teachers when they
bring their classes to the computer lab.
- Personal Data Assistant -
easy to record and retrieve bits of text like passwords, web-site
addresses, e-mail addresses. This must be quick and easy and should
save it's data-file on a USB stick to make it portable (you must be
able to carry this around with you). Simple encryption would be
appropriate for the passwords.
- Disk Cleanup
- this is like a "file-manager", but more structured and
less flexible. It should do things like: moving groups of files to
a new folder, finding duplicate files (for deletion), find large
files (for archiving or deletion), find very old files, etc. This
only need to move files around - nothing fancy like encryption of
compression. It must be organized to have straightforward tasks
which are highly automated and make it quick and easy to clean up a
disk drive. This could keep a "log" of all the changes,
so it is possible to look back and find out where a file went if it
is missing later.
Wizard Managed Projects
Some computer users need to do tasks
using several pieces of software and various other resources. They
might only do the task one time (or once a year), so they might not
know what they need to do. They want a "wizard" to guide
them through the process. Applying to colleges is a good example:
- College Applications Wizard -
helps senior students manage their college applications. This
will include web-links and advice from counselors, as well as
connections to automatically start needed software - like a
word-processor to type a personal essay, or running the UCAS online
registration system. The important part about this application is
that the counselors must be able to modify the information
(instructions) easily, and create profiles for different
types of students - e.g. applying to US colleges involves different
steps than applying to the UK. The program will be a success if it
makes it easier for the counselors and students to keep their work
organized. It might also include check lists so the counselors can
easily track students' progress. You definitely want to talk to a
counselor before starting this - if the counselors are not
interested, don't bother with the project.
There are lots of other tasks in school
- e.g. the grade 10 project, extended essay - where lots of students
undertake a somewhat lengthy and complex task and only do the task
one time, so they need guidance and resources and the teachers may
want to track their progress.
Math Stuff
- Math Problem Trainer - this
works by making a template math problem (e.g. some text with
numbers, but the numbers are changeable). Then a teacher can make:
(1) lots of similar problems; (2) making a template for solutions;
(3) produce on-line quizzes.
- High Level Math Calculator
- does complex mathematical calculations, like adding up sequences,
solving for pieces of triangles, statistics (standard deviation,
etc), solve simultaneous equations, matrix calculations, etc. This
must be solving math problems, not doing simple calculations
like sines and cosines - like the "fancy" stuff in your
calculator, but make it a bit easier to use and produce some nicer
output. Each type of calculation can be hard-coded (programmed), but
must allow the user to input numbers. This project is only
appropriate for an HL math student - but you could be doing
calculations that would help a Math Studies or younger students. It
must be possible to store the results of calculations - otherwise
you won't get any data-file mastery marks. Have a look at this:
http://www.matheass.de/matheass_en/index.htm, but make something
simpler. Perhaps create collections of tools according to lessons in
math classes (e.g. sine rule, cosine rule, bearings in one group).
- Function Investigator -
a student (or teacher) types a function in like this: 3*x^2 - 4*x +
2. The program can produce a variety of results: the derivative,
the integral, the roots, the graph, etc. There should be a variety
of standard formulas available, stored in a file and the user can
select the formula they want, then type in the exact numbers (e.g.
coefficients). It should be possible to store a set of results
(reports) for later use (e.g. Printing). A better version
(especially for HL) would allow the user to type any formula as
text, and parse that formula into a standard tree form.
More Ideas