×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Ideas for High School Computer Projects?

Cliff posted more than 13 years ago | from the slashdot-does-curriculum? dept.

Education 633

rcmpcbf asks: "HELP A TEACHER OUT! My Computer Science students often get bored doing stuff that the AP Curriculum or School Board asks us to teach. I would really appreciate the input of Slashdot members on interesting Computer Science projects for high school students. You would be helping other students, just like yourselves, not me." What kinds of computer projects do you feel would be stimulating for the high school age group?

cancel ×
This is a preview of your comment

No Comment Title Entered

Anonymous Coward 1 minute ago

No Comment Entered

633 comments

Make 'em work! (1)

Anonymous Coward | more than 13 years ago | (#885288)

Why not get a CS consulting job on the side, then make the students do your assignments? That way, they can see what CS is like in the real world, and they can get bored, jaded and angry right away, instead of slowly grinding away years of their precious life on this earth in front of a CRT first.

You might even find this arrangement profitable.

So what if they're bored? (2)

Anonymous Coward | more than 13 years ago | (#885299)

Do you really want to teach them something other than the AP curriculum, or do you want more interesting projects that teach the AP curriculum? I'd hesitate to stray from the suggested curriculum too much because the concepts it teaches are good concepts to know and understand. Learning about the basic structures like stacks, lists, queues, etc. has helped me enormously in my career, and I have worked with people who didn't learn them, and they write worse code.

However, if you want to teach them about the same structures and algorithms, but with more interesting projects, try real world things. One project I did in my AP class (in '88), was working with word processing files. We would read in the files and do things like count words and lines, spell check, and things like that. In other words, some of the stuff an actual word processor would do. In college, I really enjoyed learning about image processing. The main problem with graphics, though, is that you have to tie the class to a specific platform, which bites.

Maybe you could teach some of the concepts and relate them to networking, since the internet is such a big thing these days. I would have loved to do stuff like that in high school.

-D

"Fastest" Program Contest (2)

Anonymous Coward | more than 13 years ago | (#885300)

One of my favorites back in high school was who in the class could write the fastest prime number generator - the key to this was the Sieve of Erastosthenes (sp?) - and even then there were many incarnations (props to Bob Markowicz at Glastonbury HS for that one!!!!!)

And one I thought of just the other day which bit me on a trading system - write a program to convert decimals to fractions...the key there is Euclid's Algorithm, I believe...

And over the course of the project drop little hints pointing the students toward these old formulas and hypothesis, don't just give it all away

Whoever's got the best one in the class gets an extra A or something who knows...these are great for not only programming but critical thinking and scientifically/mathematically thinking...we were coding in GW-Basic...I think some of these concepts are lost in the days of VB where UI's are often the focus of projects

Build a rope computer (2)

smartin (942) | more than 13 years ago | (#885311)

A.K Dewdney wrote a fictional account [rustrans.co.uk] of a rope based computer in an issue of Scientific American. I always thought that it would be a lot of fun and an educational experience to try to implement a simple component, such an Adder, using the ideas in this article.

good, basic, computer science (3)

jCaT (1320) | more than 13 years ago | (#885318)

I was very fortunate to have an excellent AP CS teacher in high school. We moved fairly quickly, and by the end of the year we had studied all the common sorting algorithms, and most of the common data structures. We looked at bubblesort, quicksort, merge sort, stacks, queues, linked lists, doubly linked lists, binary trees, etc. On top of all that we did some GUI projects for kicks, like a calculator, and an application of our choice. I didn't bring away much from the projects, but all the basics- that helped me more than anything.

By the time I hit data structures in college, it was a breeze- I had already learned the stuff a couple years back. The best advice I can give is to nail all of those topics before doing any projects. It was fairly interesting, but I didn't realize the full benefit of the stuff until much later.

One thing that would be good (4)

Zachary Kessin (1372) | more than 13 years ago | (#885320)

Would be to get your students used to working in groups and planning projects. If they become real world programers (or do much of anything else) they will have to work in groups and share a project.

But also the writting a functional specification on their own is a very good expierience for anyone going into any form of technical field.

Ofcourse you can then assign them something more complex and interesting.


The Cure of the ills of Democracy is more Democracy.

Bot wars (2)

bunco (1432) | more than 13 years ago | (#885321)

We had a "bot wars" program where you wrote a C/C++ program, and then the arena program uses the resulting executable to represent your bot in a graphical arena. There was a basic command set, and a set of rules. It was great fun. Teaches you how to program and the basics of AI. Does anyone know where I could get this? I've looked all over. I know about redcode... but ASM isn't my forte.

Real life Solutions (1)

Muck (2022) | more than 13 years ago | (#885324)

See if you can partner with a small local ISP (do they exist anymore) to help them architect something. Or get an intern type job that the whole class can do. Have them develop something that will be seen in a REAL environment (not just by school teachers, and parents, and on the schools website). That will really get them interested. And definately not boring, when they have deadlines, and requirements, that aren't just for grades! (depending on what grade they're in.. they might get really excited because if they do a good job, the company you partner with, might be more likely to hire them, or help them find a job.. a reference from a real business would be a great start for them!)

Audio project? (1)

algae (2196) | more than 13 years ago | (#885325)

Along the lines of software that actually does something that a lot of high-school students might be interested in, how about a simple synthesizer? You could start with a basic sine wave oscillator, and add on controls to change the pitch, amplitude, waveform, and so forth. If you were feeling really adventurous, you could even get into envelope and bandpass filters.

Just strikes me as a project that could be within the scope of a HS course, but would hold the interest of students. Anyone know of a good programming reference for this sort of thing?

Cool projects for kids (1)

flanman (2247) | more than 13 years ago | (#885326)

I would get them to do something either game related ( think AI ) where they would first create an environment and meta-language and then write bots within the environment to compete for a task.

...you could also just get something like AT -robot wars or the like and have them build robots to compete against each other.

Re:Make a MUD (1)

flanman (2247) | more than 13 years ago | (#885327)

Yeah, that's an awesome idea.

I too got into C because of LP MUDs...it's a good opportunity for the different skills of the group to be used in QA, copy writing, coding and, of course, play testing!

What would help them and everyone... (1)

boinger (4618) | more than 13 years ago | (#885330)

Have them hack the Linux kernel.

You never know, they might just get patched in!

I know that if I was a high school hacker and I was allowed to hack Linux "on the clock" and was encouraged and had resources made available to me to be successful, I would have been so excited to have had such an opportunity.

Something like that might just make the next Alan Cox!

Project ideas (2)

Signal 11 (7608) | more than 13 years ago | (#885341)

Well, there's quite abit you could try, depending on your skill level. If you're into electronics, how about making an RC car which is computer controlled? Mount a small camera on it, and then hook it up to a little short-range transmitter, and have the computer control where it goes. That'll get you a few "coolness" points.

Something alittle less adventerous might be writing a client-server app that accepts math formulas and then spools the result back out in a nice 2d/3d graph. Maybe use gnuplot as a backend? That would show that you know networking, advanced math, etc. For bonus points, write both a linux and a windows app to show you know cross-platform stuff. You could use this outside of highschool too - demonstrate it to prospective employers! :)

Okay, moving down towards simpler stuff, how about writing a program that takes all the bus routes in your area and you provide which destinations you want to go that day, and it spits out a route for you. Be sure the routes aren't hardcoded. This is the infamous "Travelling Salesman" problem in CSci. This was done way back in the 70's on the PDP-5 by a few hackers for the subway system in NY. Read Steven Levy's "Hackers - Heroes of the computer revolution" for additional historical information

Hmm.. Another idea might be to write a simple webserver. Or a chat client/server like IRC.

That should get you started.. Cheers!

What students in Nome, Alaska used to do... (5)

TrentC (11023) | more than 13 years ago | (#885347)

I'm sure many of you have heard of the Iditarod [iditarod.com] -- the dog race from Anchorage, Alaska to Nome, Alaska over 1100 miles.

High school students in Nome were given an awesome project by their high school CS teacher -- we wrote the program that was used to keep track of the mushers during the race.

This was pre-internet explosion -- I'm talking mid- to late 80's here -- and we wrote the program in BASIC on our trusty Apple IIe's. It was a simple database; the users would enter a musher number, checkpoint number, time entering or leaving, and number of active dogs on the team. Once an hour we had to print off a report that was given out to the media reps sitting in Nome.

The ultimate perk was, once the race actually started, students could sign up for 8-hour shifts manning the computers at the Iditarod HQ in Nome. (Yes, even during school hours, but you had to sign up for 2 non-school shifts for every one school shift.)

About the time I graduated from school, Alascom (Alaska's big telephone corp) was using the data from our program to do the updates on their 800-number voice-messaging number. ("The current leader is Libby Riddles; her last checkpoint was in Ruby" and all that.)

Granted, we re-wrote the program from scratch every year -- not the best model if you want to teach code re-use and modularity (but then again, it was the mid- to late 80's). I suppose it's likely that, should a class totally screw off for the semester, that they'd pull an old copy off of the shelf to use. But it was a project that stimulated the creative drive of the students. Even the ones who weren't in the class; kids also helped out with feeding and caring for the dogs when they got into town. It was a real community effort.

I suspect that, since the Iditarod has become more "professional" a la the Olypmics, that this project isn't being done anymore. It's a pity.

Jay (=

A couple of suggestions: (2)

sammy baby (14909) | more than 13 years ago | (#885360)

  • Pick a worthy open source project and try to suss the entire thing out as an assignment. Extend its functionality as a class project - for example, using ext_skel as a start, write a new module for PHP [php.net]. When you're done, offer the maintainers the fruits of your students' labors.
  • Think of an application that would benefit your school in general - say, a web discussion board for planning extra-curricular events - and code one up, from scratch (or from a much smaller project.

I get warm fuzzies when I see educators at the high-school level trying to make classes interesting and relevent to students in an immediate sense, as opposed to merely informative. Good luck!

Games Games Games (1)

Ty (15982) | more than 13 years ago | (#885362)

Simple games are one of the best types of projects I can think of for kids that age. I would think that most kids taking an AP Computer Science course would be interested in computers, and being that they're kids and interested in computers, I would have to think they're interested in games. Perhaps simple stuff like tic-tac-toe or text-based adventure games.

On another thought, providing the option for students to work on a project of their own design might be a path you want to examine. I know when I was in high school, I learned a lot more/spent a lot more time working on my own programming projects than any school work I ever did. I think I may even have a copy of my final project release...SuckMUD 0.0.1a laying around. :)

Ty

AP Curriculum? (1)

crow (16139) | more than 13 years ago | (#885363)

So what is the AP Curriculum these days?

I took AP Computer Science in 1986, and it was mostly Pascal programming. I heard that they changed languages at least once since then, and they've probably revised other parts of the curriculum significantly.

And of course, what's so boring about that curriculum?

More information... (2)

sterno (16320) | more than 13 years ago | (#885364)

A few questions:

1) How much time can you spare to commit to this?
2) What is the experience level of the students? (I know the AP CS stuff used to be in Pascal, what is it now?)
3) What resources are available to you? For example, can you get a computer to run Linux on as a server or anything like that?

Ultimately those three questions are going to limit what you can reasonably accomplish.

---

Dynamical web sites (1)

AeiwiMaster (20560) | more than 13 years ago | (#885381)

What about building dynamical web sites.

All you need is a linux server,
with apache, php and a SQL database (Postgresql or Mysql).

It is not that difficult and it is something they can
show there friends.

Design should be the focus. (1)

jstepka (20825) | more than 13 years ago | (#885383)

Rather than focus on the programming alone, try getting the students to work on a design before they code. This will help them stop bad habbits before they start, every project always starts with a good design.

Not what I did (2)

FascDot Killed My Pr (24021) | more than 13 years ago | (#885409)

I remember writing a program (on a TRS-80!) that simulated those order-taking consoles at McDonald's. LAME!

Some suggestions:

1) Lego Mindstorms. Get enough of them so your can put 3-5 kids on each and have them compete (cross the room, soccer, whatever).
2) Games games games. Find out what this year's class' favorite game is. Write a (simplified) emulated version of it.
3) Simulation. Have an ongoing "physics simulator" (or something similar) project. The first year the students can do some design and basic coding. The next year they can do more advanced coding. Etc.
4) Simple AI. Do some theorem-proving AIs or ElizaBots or something.

Really, thinking up ideas for a CompSci class is as close as your nearest tech mag.
--

Make a MUD (3)

sugarman (33437) | more than 13 years ago | (#885432)

Well, not the whole thing. Take one of the existing codebases and have the students modify it. They can add there own parts (snippets), and it would probably allow for division into project teams.

This would let the students gravitate to the area they may be most interested in (coders, builders, whatever) and will also allow you to share ideas between more than one class (if you have one, or if the other teachers are into it).

As the actual building requires a lot of creative writing, you may want to see if some of the English teachers / students want to participate as well.

I can't speak for eveyone, but this is the sort of thing my freidns and I were doing in our spare time during highschool anyways, so why not comhine the 2?

Just don't make it too much like work =)

slashdot? (1)

billnapier (33763) | more than 13 years ago | (#885434)

Students could work together to create their own discussion site. Would teach them HTML, CGI (meaning either PHP or PERL), expose them to using databases and SQL, and whole lots of other things. And when they were done, they would have something they could use.

pick out a useful project and run with it (1)

brokeninside (34168) | more than 13 years ago | (#885436)

My biggest pet peeve with my first few computer courses were that the canned coding exercises didn't contribute to anything.

What I would have greatly enjoyed was if the courses had used actual open source projects where the potential would have been there for the code from homework to earn immortality.

Think of the motivation that would result from telling a bunch of sixteen year olds that they have the potential to have their names indelibably stamped onto a product thousands of people will use.

I'd give some specific ideas for projects, but (a) I don't know the skill level of your students and (b) I don't know what territory your curriculum will cover and kernel hacking vs. database hacking vs. network hacking vs. UI hacking have quite a bit of differences.

Let them choose. (2)

proboy256 (34710) | more than 13 years ago | (#885439)

One of the best things that I've done in school is to choose a project, work on it, and get credit for it.

Work with the class to choose a project that will reinforce the AP curriculum. Then, as a class talk about the design of the application. Once you have a good modular design, create small groups to work on each small, well-defined module. Make them create the stubs so that each group can see exactly what methods they can call and what they can receive from them. Then, implement the darn thing. This teaches good design, good teamwork, and good modularity.

I think that a chat client is a good project. It involves using the network, creating a GUI, interesting data representation questions, and a plethora of different design directions they can choose from.

This was one of the most rewarding things that I did in my Intro. classes at college and it worked out very well. The key for you to remember is that it is the learning process here that is important, not the actual product. YOU are trying to get them to learn the curriculum, not to demonstrate that they already know it. If they do already know it, they will have fun coding anyway!

Have them join existing open-source projects (3)

Silas (35023) | more than 13 years ago | (#885440)

Instead of trying to create exercises or projects that will only be useful in the context of your particular classroom environment (although that could be very instructive), consider having the students sign up to work on existing open-source projects.

Even if they are contributing small amounts of code or insight or peer review or documentation, they are still benefitting themselves AND lots of others in the process.

There is such a wide variety of projects out there - just look at SourceForge and the like - that would allow students to make significant contributions to real-world projects while utilizing the principles and practice of good computer science. You would probably have to be the one enforcing that last part, but I can't emphasize enough the value of real-world experience as a complement to the AP/IEEE curriculum.

You would also have the advantage of having lots of infrastructure already set up - no need to worry about establishing project workspaces, titles, task assignments, etc...many projects will already have these in place.

collaboration and development skills (2)

sirinek (41507) | more than 13 years ago | (#885449)

First of all, if C is not being taught in your school, it should be. Second for teaching C on a non-microsoft operating system. Have a couple systems set aside running Linux or one of the BSDs that these students can use. Allow these students to spend time contributing to open source projects of their choice to demonstrate and expand on their knowlege of C programming, and distributed development.

Bill

Analysis of the Human Genome (2)

superid (46543) | more than 13 years ago | (#885458)

Get the ascii data from the genome server [nih.gov] and then do some basic analysis. Something like a histogram of basic sequences would probably be very interesting. Start with maybe a length of 10, tally up the number of "AAAAAAAAAA", then the number of "AAAAAAAAAC", etc. Then repeat for different sequence lengths. The hypothesis might be that there are sequences that occur more often than others with statistical significance, and the null hypothesis would be that they are uniformly distributed.

Obviously text processing of a 33MB data stream is pretty intensive. A simple project might just take a subset of the data. A more complex programming exercise might be to make it a beowulf-aware application.

SuperID

Neural Networks (4)

xtal (49134) | more than 13 years ago | (#885463)

See if any of them are interested in neural networks. It's not a beginning project, but some students are likely to have some experience with programming and AP math should be enough to get started. Here's some reasons:

  • It's an area that's actively being researched commercially, and has lots of interest from academia and the public.
  • The difficulty can scale from trivial to PhD Graduate work depending on how smart the students are.
  • You can do useful things that interest kids at that age, like, show them how to find patterns in stock prices. (There's a book I have that does this as an example; Email me and I'll hunt for the ISBN)
  • The results and propagations through the network are great for graphical representations! So you can see what's going on in a picture instead of just number crunching, and it gives the game programmers a problem: How to visualize the network? (Hint: 3D works real kick ass)
  • There's LOTS of sample code and problems/learning sets to get you started.
  • Not to be discounted, but a cool project might get you national or state attention.

Just some ideas. I don't think it's beyond the scope of some bright high school students.

Weblog (2)

Hard_Code (49548) | more than 13 years ago | (#885465)

Hmm. Create a weblog? If database stuff is too complicated you can avoid using a database and just write to flat files on the file system or something. Should be rather interesting and able to be broken up into parts, to teach encapsulation.

I.e., one group of 3 does the file storage/database structure, another does the backend scripting/programming for manipulating user accounts and preferences, and a third group does the web page scripting (jsp, perl), to take use the library provided by the second group to actually serve requests and fill in content.

So you have three layers of abstraction: content layer, logic layer, and finally data layer. Each group has to depend on the good design and encapsulation of the other groups' stuff.

Something (positive) that they can brag about (1)

Ground0 (63349) | more than 13 years ago | (#885482)

Have them help out on GNU projects or other open source projects. Nothing feels better than to go and say, "Hey, see this feature here , I did that." It shows that one person can make a difference and will improve the student's confidence.

Important Considerations (2)

tarsi210 (70325) | more than 13 years ago | (#885507)


From the: Betcha-can't-do-that-with-only-a-stick-of-gum dept.

In the course of my education there have been two overriding things that have helped me the best in learning. While these do not always point to the best way to teach, they are certainly something to consider, and many projects can stem from them.
  1. Individualized Learning - Find out what some of the individual students in the class would like to learn. No doubt many of them have no clue. But some just might, and they might have neat projects in mind. For instance, when I was in HS, I sure would have liked to dabble with Apple Assembly, but of course we couldn't deviate from the pre-prescribed curriculum. I'd suggest some talking with the students. They want to learn HTML? Have them teach themselves! (individual or group, teach them to work in a software team)
  2. Group Projects - Group projects, while sounding cliche-ish, are actually a good medium in which to learn technology as well as excellent people skills. So many of us are used to communicating with an electronic entity that when we have to communicate with the wetware in the world it is a less-than-ideal situation. Programming a game can be fun and educational. Everyone likes a neat game, but to actually do it, get it planned, figure out the specifics, etc., can be a big project!
  3. Make It Real - If you don't make the meaning of the project apparent to Real Life(tm), students will be turned off from it. I hated abstract math when it was explained in a purely theoretical viewpoint and had no relevance to what I might use it for someday. Have them program or design a tool - recipe book, game, inventory calculator, webpage analyzer, etc. Even something silly (bubble-gum speed calculator) can teach skills and bring motivation to the students if presented correctly.

Just my $0.02 as usual. Some good considerations.

palindromes (1)

fence (70444) | more than 13 years ago | (#885510)

in 1981 I had a computer instructor (ok, a math teacher) who had us write a program to input a word phrase and then check to see if the input was a palindrome.

That should keep them busy for a while...at least for three minutes or so.
---
Interested in the Colorado Lottery?

Some thoughts (1)

Tony Hammitt (73675) | more than 13 years ago | (#885517)

First off, have half of the class use KDE and the other half use GNOME. We need another warring set of tribes. Let's set them off as early as is possible. While they're at it, have half use vi and half emacs, half use BSD and half use Linux, half use one indent style and half use another...

But seriously, I think a good, mind-stretching programming excercise is artficial life. Genetic algorithms are really simple to program and can do some amazingly complex things. Have a prisoner's dilemma robot contest. Here [iastate.edu] is a really fantastic book on the subject.

networking (1)

abiessu (74684) | more than 13 years ago | (#885519)

In high school I was never taught anything about network anything (sockets, mailing protocols, etc.). This may be a bit beyond them (or not, since it's AP . . .), but it would probably be good to ask them to write a text-based chat program, maybe give them some pointers to code specifics when necessary, and let them have fun. Essentially, all it would need to do is open a port and listen for another computer to open the same port, then allow the students to chat (text-formatted page?) sort of like the "talk" program in Unix . . .

AP CS Project (2)

Datafage (75835) | more than 13 years ago | (#885524)

Well, in my AP CS class, after we finished what we needed for the Ap test, we modded Quake time after time, and even taught our teacher how to play. That was even more fun, because he had said no skill was involved in these games. But seriously, Quake is written in QuakeC, which is damn close to the C++ taught in school, and the differences are simple for anyone with half a brain to figure out by just looking at the code. I know I learned a lot about both Quake and coding from that.

-----------------------

For God sakes let them have internet connectivity (1)

m0nkeyb0y (80581) | more than 13 years ago | (#885533)

The one thing that bored the hell out of me in my highschool programming class (C++) is that all we ever did was math related projects. Making up algorithems and more loops than you can shake a stick at. While these are very very important, it gets very very repetative and needs variety. Teach them how to use ports so they can make anything from 2 player network Battleship to and instant messaging client.

Project! (1)

deefer (82630) | more than 13 years ago | (#885536)

How about a system to model a library or a video rental shop? :)
Seriously, though, I'd offer several choices to get your protonerds going:
* A systems type project - something like process monitoring - who used what files/sockets/CPU time. Gets them right into the guts of an OS.
* A database app. Something like a list of IP addresses, open ports and OS that runs... Actually, scrub that I can see where it's headed. Or maybe an MP3 database. Whatever, but make it relevant to the students.

As a general guide you'd want to include file access, socket access, some basic DB work, memory allocation (pointers/allocation) and user interface.

Strong data typing is for those with weak minds.

Re:One thing that would be good (2)

deefer (82630) | more than 13 years ago | (#885537)

And what better way to give them real life experience than to team them with their art school counterparts? Then they'd get used to being project managed by someone who can barely switch on the computer, far less use one...
Make a point of keeping your art students tired, so they'll snap at the protonerds. Once a project spec has been decided, make it an integral part of the art students role to keep the objectives changing.
And the art school project managers should never, ever thank the protonerds... Just like real life!!!

Strong data typing is for those with weak minds.

Cryptography (1)

KrackerJax (83403) | more than 13 years ago | (#885539)

I took AP Computer Science last year, (C++ was the language used) and I did my science fair project making a simple encryption program. This can be done using publically available algorithms like Blowfish. It is not too difficult, and has a practical purpose as well.

OSS (1)

stilborne (85590) | more than 13 years ago | (#885545)

Have them pick an open source project to join.

It gives them experience in working with other programmers, lets them work on a project without implementing something from scratch, lets them do actual meaningful work and allows them to see other coding styles (both good and bad varieties).

It also inspires better work, I feel... since to get patches included they have to "be up to snuff".

Program clones of classic games? (1)

qbwiz (87077) | more than 13 years ago | (#885554)

Maybe you could have them try to program some clones of classic games. Like one of the stories posted a little ways below pointed out, classic games are really fun, and they can't be to hard to use. I've seen a book that teaches prgramming( The Black Art of Java Game Programming) teach how to program a few classic games to people who had just started programming in the language.

Computer Modeling? (3)

cot (87677) | more than 13 years ago | (#885561)

Maybe some modeling of physical systems would be interesting?

There are many systems in biology and physics that are not too difficult to describe using a computer program.

Computer security (2)

Chairboy (88841) | more than 13 years ago | (#885565)

A real cool project would be to teach them about computer security. Eg, explain how TCP/IP works (down to the point of SYN and ACKs), then show them common ways systems are compromised and how to secure them. Knowing about computer security is becoming more and more important, and at the same time, the subject will have just enough of a 'forbidden' aspect to it to really involve the students. Just be sure to carefully work the hacker ethic into it so they don't go out and abuse their new knowledge. Who knows, you might even be able to keep a few of them turning into 3l33t h4x0r dud3z!

I took that class last year (1)

MicroBerto (91055) | more than 13 years ago | (#885570)

Although our projects weren't crazy, we had some good ones. I did bad on the AP test though, I choked.

Anyway, just do things that high schoolers like. Parties... rumors... TV... sports... sex/drugs/beer/violence (haha well maybe not). Just take your standard programs and make it fit for high school mindset.

So instead of like a traveling salesmen problem, they're doing a travelling rumor problem. Makes it that much better.

But to be honest, our class was fine with standard "boring" projects -- because the teacher wasn't boring. Maybe you should consider getting crazy with the kids. Scream, throw chairs, have contests -- inspire competition. That's what we AP kids love, competition.

Mike Roberto
- GAIM: MicroBerto

games games games (2)

cybercuzco (100904) | more than 13 years ago | (#885585)

I have a friend whos HS teacher gave the following assignment: Program a game. That was about it, his entry was barney blaster, which was a big hit with the rest of the class. The games were judged on their cleanness of code, the fact that they actually ran, and their playability.

Re:big databases are fun (1)

Vanders (110092) | more than 13 years ago | (#885601)

Because database applications are insanly boring :) You'll have a multitude of Video/DVD catalogs, address databases, and maybe the odd image catalog....entirely predictable. Yes, the students would learn the basics of databases, but then promptly ignore most of what they have learnt.

I know this to be true, because a database app is exactly one of the boring projects i had to do in College :)

More information please (2)

Vanders (110092) | more than 13 years ago | (#885602)

I could probably come up with loads. Except you don't give us a lot of information.

What is the current ability level of the students?
Is there anything in particular that you would like them to learn during the project?
How long will the students have?

One quick thought. Why not define loose parameters for the students, and let them choose something to do (in small groups)? They can learn planning that way themselves at least :)

big databases are fun (1)

Mr. Sketch (111112) | more than 13 years ago | (#885606)

why not just do something like created a large database for storing and categorizing things? It teaches object oriented design, database concepts and could give them a useful tool after they finish.

And after they're done they can keep track of all their pr0n...errr...popular science magazines.

Re:AP Curriculum? (1)

Mr. Sketch (111112) | more than 13 years ago | (#885607)

They're teaching C++ now, my younger brother took it and was quite bored. But I can't comment on the curriculum, as I never took the class, but I did take the AP exam while it was still Pascal and only got a 4, bummer.

Group oriented skills... (1)

Sheeplet (120355) | more than 13 years ago | (#885634)

Most of the time programming projects are short-lived individual efforts. Instead try making them work as teams, and have them employ some sort of development strategy, so that they learn good project management WHILE learning how to code. Give them vague catagories so that they can design and then code. I know that this makes for a longer project, but it will excercise more than just coding skills, and everyone needs more than just coding skills. --Sheeplet

Teach 2 semester course.. (1)

SirGeek (120712) | more than 13 years ago | (#885636)

Have the 1st semester focus on Software Design (from how to determine requirements to how to design for usability).

Then have the 2nd semester do the project

Pick something REAL and doable. Something that schools can use. A web based calendar system with administration aspects, user aspects, etc.

Design methods is the one thing I wish school had tought me. Its the most important part of programming and its the one part usually forgotten. and ignored.

Spending 1 month of solid design work can easily save 3 months of testing and debugging in a complex program.

Let them decide... (1)

QuantumRiff (120817) | more than 13 years ago | (#885637)

Let the students decide on a project that they would like to do, and then have them work in a group to accomplish this. In school, programming classes emphasize too much on the individual programmer. In industry, team work is a requirement. Get them to work together, plan and design, then implement it. This way, they will be more prepared for a proffesional career in programming

------------------------------------------
If God Droppd Acid, Would he see People???

A few ideas (2)

Dungeon Dweller (134014) | more than 13 years ago | (#885661)

1) Robotics. Robotics are cool and fun. Don't make it some complex mechanical beast requiring lots of electronics skills, since this is a computer science and not a computer engineering course, but something that the students can build in a day, and then write programs for, that is always a winner.

2) AI. Kids can write really simple AIs. It doesn't have to win the Loebner prize or anything, but think about the possibilities. You could have simple games, tic-tac-toe (I did that for a science fair project), and eliza's and word-chaining, and junk like that. People also get a kick out of talking to them. You could also go over different theories. You could go over heuristics and game theory and such, just nothing too deep.

3) Web design. People like flashy things, the web is flashy. It takes 10 mins to write a decent web page, and you can take all day jazzing it up. You could go over perl and CGI and JAVA, kids could post their work to the net. You could even work as a group to write something useful, like a page that gives the school's announcements for the day, weather, does e-mail, shows grades, shows sports schedules, the possibilities can really go wild on this one.

4) Games. Heck, half of the kids in that class probably got into it because they wanted to write a game, everything from the simple to the complex. Try writing a mud, or something graphical in nature. There are LOTS of simple projects and complex ones in this area. Students could use kits and libraries, or roll their own depending on how advanced/serious they are. This is good because the levels of effort and interest can vary, while still allowing for all students to produce good projects.

5) Graphics/3D. Do some rendering/modelling/so forth. Write programs that make cubes and such. If the kids have already had trig, then they can handle the most basic of the 3D algorithms and most of the very basic 2D ones. This is something that can be taught in bits and pieces, and you can really go step by step, if that is the kind of class that you had.

6) A few algorithms. In one of my college classes, we went out into the lawn by our classroom, and ran around forming various data structures. This is something that, depending on the kids in the class, could go over very well or very poorly. Discuss the algorithms in class ahead of time and after. It is MUCH more fun if the kids understand what is going on.

Stuff that I wish that you could go into in such a class, but really, you should stay away from.

1) Truly advanced CS topics. I am guessing that this is an intro class, and these kids have what one would call a "budding interest" in computer science, don't kill it by doing anything too difficult. Big-O notation might be something fun to mention, but evalutating execution times of algorithms really isn't an intro-level thing.

2) Algorithms galore. Teach your kids some algorithms, have fun with it, but I doubt that they are really going to be interested in the fastest way to form a binary search tree.

3) Really heavy topics. Anything that you had real difficulty understanding at first, and doesn't make a good puzzle in a book sold at airports, will probably lose their interest quickly.

Oh yeah, and grade syntax, but don't kill them over it, it's just HS.

Well, I figure that much of that, you could have figured out yourself, being as how you are a teacher and I have relatively limitted experience with kids. Hope I was at least marginally helpful. My ideas sure sound fun to me :-)

Well, DUH! (2)

luckykaa (134517) | more than 13 years ago | (#885664)

DeCSS -- If kids from Norway can do it, why can't Americans? :)

Because of the DMCA, UCITA, and the MPAA of course.

User interface... (3)

Malk-a-mite (134774) | more than 13 years ago | (#885665)

Back in high school I did a project exploring the different ways user interfaces work.
Wound up trimming it down to joysticks and what is a natural way for users to use them (i.e. - expected controls models and such).

With all the talk that hits the /. boards about interfaces and the good/bad points about them maybe that's something for your students to look at.
A fresh set of eyes on a old problem.

Malk-a-mite

Neural Nets (1)

yamla (136560) | more than 13 years ago | (#885669)

Get them to explore neural nets. Neural nets are generally overrated in the field of AI, at least among those people not directly working in AI, but they can do some pretty neat things and, also important, you can program one from scratch with almost no effort.

You would, of course, need to provide some tasks for their neural nets. Simple character recognition based on 8x8 input matrices may be good. I think I did something like that a while back.

Of course, if this doesn't grab their attention, you can be sure that programming simple games will. Just be very careful to scale back your or their plans for such a game. They'll have too high hopes for such a project and you are far better off making them write a small and simple game.

Projects... (1)

Electric Angst (138229) | more than 13 years ago | (#885673)

My Comp Sci teacher faced a similar problem back when I was in High School. (Actually, her problem was that the cirriculum required that she leave paschal and start teaching C, but she didn't know C.) She had us divide into groups, and entered us in a competition. I don't remember the name, but the jist of it was that we each had to come up with an idea for a program, then develop and impliment it. We did this for six weeks, and there was some great diversity. One group did an HTML editor, one an asteriods game (I did the sound system on that one) and other great ideas same out. It gave us a chance to be creative, do what we liked, and get an idea of what it's like to code as a team...

Well, that's my two cents...
--

For the logicly / electronicly inclined... (1)

Some Id10t (140816) | more than 13 years ago | (#885677)

I highly recommend projects based on the Basic Stamp [parallaxinc.com] line of products from Parallax [parallaxinc.com].

These microcontrollers are very easy to interface with, program, and use in small battery operated projects. You can build everything from environmental sensors to light controllers with them.

The cost may be a little high for start up (I think the programming kit runs around $100) but they probably offer educational institution discounts.

Using these devices you can learn digital logic basics, system logic design, simple programming logic, or any combination of skills depending on the application you have in mind for them.

Good Luck!

Build an ethernet card (1)

clink (148395) | more than 13 years ago | (#885697)

Get your class some hardware exposure! Have them build a piece of hardware and then write the drivers for it. The specs for ethernet devices can be found on the web.

Less text manipulation please (2)

dima233 (148467) | more than 13 years ago | (#885699)

I can still remember clearly my AP computer Science Classes from high school, and what bothered me was that the programs were mostly about text manipulation. Yes there were some more advanced concepts involved in the projects, such as hashes, etc. But they were given to us as tools, and we (almost) did not know how they worked. I found it a lot more interesting when in college I actually learned the implementation of things like hashes, and I dont think it would be too complex to teach in HS to those who are interested. And it would certainly be a lot more interesting than programming yet another "organizer".

-----------------------

How about some other languages? (1)

DogzOfWar (151656) | more than 13 years ago | (#885709)

I think AP Computer Science deals mostly with C++. What about teaching them some other useful languages, like Perl or Java/Javascript?

They might enjoy Visual Basic too [insert sounds of Slashdot readers gasping]. Since most of them are probably using Windows in High school, they might get a kick out of developing some nice, simple GUI applications.

High Schoolers (4)

MattLesko (155081) | more than 13 years ago | (#885715)

1) Try something they can do for pure hack value, i.e., just something that they can impress other Comp. Sci. people in college with.
2) Go to www.sourceforge.net [sourceforge.net] and let them pick out a project to watch/join in. Nothing is more exhilarating than to know that code your writting is going to real use (even if the project justs rejects it as not good enough - but you as the teacher should help them), not just text-book examples on loops and theory.
Just my .02.

You are more than the sum of what you consume.

Re: Build a rope computer...or model a computer... (1)

mmaddox (155681) | more than 13 years ago | (#885717)

For that matter, the replication of hardware components, using software, is an interesting exercise, as it teaches computer architecture and programming. For a quick and dirty project, write a binary adder in C++, and componentize it for use with other components. Of course, you can't CHEAT and just add numbers, you have to implement the architecture in code.

This form of emulation is pretty interesting, and can get as complex as you would like...See the emulator thread from earlier.

My own ideas... (2)

JCMay (158033) | more than 13 years ago | (#885723)

My wife teaches at a very small private school here in Melbourne, Florida. Their athletic program includes a set of swim teams from grammar school through high school.

One problem they had last year involved the volunteer timers and spotters that worked at meets. Spotters would say that the first three finishers were lanes 4-5-3, but the recorded times would have them finish 3-4-5 or something. Obviously, the reaction times of the timers were not good enough to ensure proper scoring of races.

My idea was to build a small computer that would act as a multichannel lap timer. It would need fourteen inputs-- Reset, Start, and two stops for each lane, one at each end, six lanes maximum.

I wanted to use RF links to the different remotely placed inputs to reduce the wiring clutter and raise safety.

My problem was at such a small school it was hard to get the kids interested in a hardware project like this. When I told them we'd be designing computers, they thought I meant buying a motherboard and slapping PCI cards on it; I really intended to choose a microprocessor (68306 was a good choice) and build a little single-board computer. Not everyone thought that this was fun :(

Good luck in your search for interesting projects!

Jeff

Depends on Resources..... (1)

-ParadoX- (158084) | more than 13 years ago | (#885724)

If you have the software available (i.e. decent graphics editing/creation such as photoshop or painter, and Dreamweaver or even Microshaft's front-something-or-other) I know I would have appreciated time to design and create a webpage in class. This also allows you to get into some java and possibly PERL as well. Other ideas including creating an online learning/gaming environment (i.e. a MUD or MOO). The core components are all freeware and not to tough to program. Students could create their own room complete with a machine of some type and an automated robot. Just a few thoughts.

-ParadoX-
'What's that?'
'I dunnow... lets hit it with a rock.'

Class Projects (1)

toddstock (161153) | more than 13 years ago | (#885730)

I will probably be flamed for saying this, but look to some of the Larger Unix Vendors (SUN/IBM/HP) for hardware and software. Try teaching the students how to install and administrate an industrial strength *Nix system. I know for sure IBM has a good site at http://www.ibm.com/education. If you are looking for a cheaper solution, look at sun's website for solaris x86. Unfortunately at the present time, these would be better real-world preparation than linux

educational and morally enlightening (1)

Miriku chan (168612) | more than 13 years ago | (#885743)

make them write a gnutella client. it's an open protocol, so in pass one just write a simple socket, in pass two write a gui, and in pass 3 multi-thread it.

Casino games. (3)

Chiasmus_ (171285) | more than 13 years ago | (#885751)

I don't know how acceptable this would be in the high schools, but the applications that taught me the most programming theory were casino games.

I managed to pull off Keno and Blackjack. They were a lot harder than they seemed. Keno required a graphical interface with the ncurses library that was probably harder than most menu interfaces you'd see, like pine or capt. Blackjack was a little easier, except programming in things like split, double down, and insurance, which was a headache.

My friend pretty much catapulted himself from novice programmer to experienced programmer in two weeks with Deuces Wild. Now that one was a nightmare. Not only did he become obsessed with randomizing and shuffling the deck, but the algorithm for determining the final hand was incredibly complicated. To make matters worse, he insisted on testing the thing on a 4 megahertz machine from about 1986.

Anyway, I've written a lot of worthless software, but nothing has been as useful later as casino games.

An Idea (1)

Ian Wolf (171633) | more than 13 years ago | (#885752)

How about making a web site for the school?

I'm not certain at what level you are at, or what the students are capable of, but developing a web site is only as difficult as you make it. You could start by keeping the site relatively static and with minimal graphics. Afterwards, you could introduce Perl, PHP, mySQL, more detail on Apache or Linux, introduce security to the students. Whats even better is that the project could be linked with other classes and activities. For example, the graphic arts classes could do the graphics for the page, and the school newspaper could provide some content. The possibilities are pretty limitless.

Need more info! (1)

freebe (174010) | more than 13 years ago | (#885758)

I'd need to know more info about what this class covers - is it programming? Algorithms? But anyway, here goes my idea:

Have the students analyize the components of a modern operating system in depth. Have them each pick a part (C library, display subsystem, etc.) and analyize how it works, and possibly look at applicable GNU source and documentation about these issues. Each one should be able to describe their component(s), how programs interact with them, how they very based upon OS designs (graphics in/out of kernel, net in/out of kernel, etc.), and how they interact with other components. To test them, you should be able to give them a pseudocode program that exercises most portions of the operating system (graphics, sound, net) and have them each pass system "calls" around each other to execute the "program". I think that would be a lot of fun for a class like this.

Honestly... (1)

suwalski (176418) | more than 13 years ago | (#885766)

There aren't that many realyl cool projects that can be done over a single semester. However...

I recommend a real-world situation. My high school teacher goes out every year and finds small companies that need a contractor, often dealing with databases. Although this is not very exciting, it does show the real world. Some people even had cool projects.

Another good thing he does is give a month for an independent study for teaching yourself a new language. It not only gives something to students, but he finds that it gets easier and easier with each passing semester as he knows the various languages more.

I know that I would recommend a number of small projects (5 or so) that could be put into a little 'suite' of tools. This can make students happy because they have a whole little slew of programs that are designed to work with each-other and encourages them to add to this once school's out.

However, your best choice is to do what is done in the last year at my HS. Give them a day or two to come up with a cool project. Then look at it and approve for content. Then give a week to 'storyboard' it. A good, concise description with a timeline, format ideas, you name it. This definitely works best. It also leaves less room for cheating (variety of projects) and encourages teamwork because people may have to help each other even if they're working on different programs, simply because one people may have more experience in one area than another.

Independent projects are the way to go. Make sure to give them access to Linux if there's interest. It's banned in my school board and it really limits ME. Don't make that mistake if you can.

Scheme (1)

Fjord_Redd (176519) | more than 13 years ago | (#885768)

This past year was my first at college. Of course, I had taken several years of CS in high school, done the AP stuff, &etc. When I arrived at college, I thought the intro CS course would be below me. I was wrong.

The course was taught in a language new to me called Scheme. Scheme is a variant on LISP. Scheme teaches you to do, really, one thing EXTREMELY well. That is recursion. I never thought too much of recursion, until I tried Scheme. In Scheme, all you can do is things with recursion. A neat project would be to have your class learn scheme, along with yourself. There are many online tutorials available, and Scheme itself is free. Best of luck!

--

Ashamed to admit it, but what got me into C was... (1)

jvbunte (177128) | more than 13 years ago | (#885769)

I'm ashamed to admit it, but what got me interested in programming in C was a little game called LPMud.

Its all about games... (1)

litewoheat (179018) | more than 13 years ago | (#885778)

If they're AP, they should have enough Calculus/Algebra etc. to create a Doom like reality engine. Now if I was given that assignment in highschool I'd probably fail everything else just to finish that! But that's me.

Actual applications (5)

egerlach (193811) | more than 13 years ago | (#885802)

My OAC Computer Science course (OAC=Ontario's Grade 13) consisted of, among other things, a term-long project for the entire class, which was learning about how to, and creating, a full-blown application.

At the start of the term, everyone in the class applied to "jobs", with resumes and everything. According to what you applied for, and how you presented yourself (not necessarily your skillset), you got certain jobs. One person was chosen as the "VP" (the Pres was the prof), and had to manage a lot of stuff, as well as do some work. We had three departments: Coding, UI, and QA (whose job it was to make the coders and the UIs co-operate). There were department leaders, and then inside the deparments, if there were special task forces, they had team leaders, and so on. Basically, our prof tried to make it as much like a company as possible. It was a lot of fun. No class (to my knowledge) has actually completed the project, but it's the process that's important.

For me, it was really helpful to learn how to work well in teams, and how the real world operates. It was a lot of fun, and I think you learn more than doing games, or anything like that.

Re:collaboration and development skills (1)

DanBari (199529) | more than 13 years ago | (#885818)

I definitely agree that a lot of people have moved to C++, but a good knowledge of C comes in very handy when working on software written back in the 90s that would be too cumbersome to rewrite into C++. A good knowledge of C is good to have =o)

Something Interesting... (1)

Neumsy (201524) | more than 13 years ago | (#885825)

A few ideas poped into my head. Being that I'm a computer science major still in college (almost done) maybe I can relate a bit. Most of my classes are still boring :)

Anyway, I always wanted to learn more about the history and how things developed. Like why is Micro$oft so big? Where did linux start?

Aside from history, why don't something simple but has applications as well. Like web pages. These things can get simple and complex. Start off with basic html. Teach some java scripting, maybe some cgi and perl. Maybe even get some slashcode going. Maintain the school's web page and if they don't have one, make one.

If it's more of a coding level, why not make a teaching aid. Like a grade book program or scheduling assistant. It could be graphical (teach graphics, I'm a senior and still never did any graphic programing) or command line. Which ever you think is better for the level of the students.

Of course the real challenge is fitting it in with what the admin says is ok. That's always the hard part eh? :)

re: AI... (1)

meghji (205668) | more than 13 years ago | (#885835)

When I was in HS, I did a project w/ NCSA and the NSF on using AI (spec. BackProp Neural Nets) and video cameras for lip reading...That was pretty cool. It took like 2 years to do, but it was a lot of fun (and pretty hard, too). Of course, this was a while ago. I'm sure most students in HS today could code some AI w/out a lot of effort...

Instant messengers. (3)

johnnyQuaint (206406) | more than 13 years ago | (#885838)

If your students are learning easy languages like Visual Basic or delphi, writing an instant messenger would be interesting for them. This is software that they use, but probably regard as being difficult to make. When all they have to do is set a few properties, they will be pleasantly suprised. And considering that they will be programming for the internet in any case ..... -John.

This is America goddamit! (1)

Johnny Rocket (207939) | more than 13 years ago | (#885846)

Freedom of choice is what it's all about baby. Have each of them pick a programming language they haven't yet worked in. And write a program of sorts which takes advantage of some of that languages unique features. I did this with perl, and made a LaTeX spellchecker, it was actually more fun than it sounds.

Entertaining is good (2)

evanbd (210358) | more than 13 years ago | (#885854)

What level of comp sci matters a LOT. I'll answer assuming intro classes, because that's probably hardest. While ideally the program should be entertaining to write, one step is to make something that is (at least somewhat) entertaining to use. Programs that play some game are good. In some sense, however, these don't emphasize basic concepts, like sorting an array or whatever, but they can instead emphasize things like algorithm design, which is at least as useful, IMHO. For example, a program that plays tic tac toe, while theoretically simple (we all know how to win this one, right?) can require some thought to implement efficiently. So the assignment becomes, 'write a perfect tic tac toe program'. This requires so little CPU power, it should be a requirement that it run very very fast -- but it won't if you don't put thought into it. Also, some kind of contest is a good idea. There was a piece on Slashdot a while back about a RoShamBo (rock/paper/scissors) contest, but that more emphasizes game theory and the like than programming. perhaps something like battleship or 3D tic tac toe (4x4x4, get 4 in a row). I think interest often has less to do with the program being challenging to write than haveing there be a purpose to the program. No one will be able to convince most students that there is any reason to sort this array using that algorithm; But if it does something, that's interesting. Conway's game of Life is also good, and fun to play with when you're done.

---

Pattern Searching (1)

RAndrew (211267) | more than 13 years ago | (#885861)

I too took Comp Sci AP in the eighties, and was bored beyond tears. I think a project that is fairly straight forward enough, and goofy enough interesting for that age group, would be to perform SETI like searches on various forms of random data. Of course, this leads to thoughts of encryption and cryptography, which are excellent vehicles for lesson plans. Students could write small but complete programs, that should incorporate all their AP skills in data structures, sorting, array passing, and the like, but not involve a lot of educationally wasteful GUI work. They could search TV static, temperature patterns, or just about any paranoid white noise source..

An idea.... (1)

rattid (214610) | more than 13 years ago | (#885875)

I took the AP C++ course in my high school last year. It was pretty bad to say the least, the teacher was learning along with the students. Assuming the kinds are learning more than the language systax (ie, put it all together and make an efficient program without miles of spaghetti code) then there are tons of fun projects they could do:

I always thought it would be a great project for kids to program AIs for a game, and have them play each other. It could be something simple like rock-paper-scissor, or even something like checkers.

Just stay away from stuff like text-alligning, and obscure loops. Let them make games, thats whats fun :) Teach them how to use a database and they'll be able to get summer jobs.

Rattid

Porn filter (2)

DunkPonch (215121) | more than 13 years ago | (#885880)

Sure, it won't work. But you'll be able to sell it to the administration easily. Best of all, you'll have no trouble finding kids who want to do research.

Basic Game (1)

AbbyNormal (216235) | more than 13 years ago | (#885886)

One of the neatest projects that I had during my International Bacheloreate program for Computer Science in High School, got me hooked in the subject in College. Our teacher basically told us to write a program in Pascal(...**shiver** **shiver**)that demonstrated a basic knowledge of FILE I/O, Arrays (again..**shiver**), and memory managment. Granted this was a very basic project, it taught us how to use our skills in ways that would benefit our lives and those of others. Okay, so my Aquarium database/journal was not a Nobel Price for Technology winning project (IT SHOULD HAVE BEEN!), it still got me hooked in Comp. Sci and got me a phatty job after college.

A real software project (3)

rackhamh (217889) | more than 13 years ago | (#885894)

Identify a software tool that the school doesn't have, but could use (e.g., class discussion boards and/or chat), and work with the class to implement a solution. Your students will learn programming and group skills that are more applicable to "real world" programming, and if all goes well (with your guidance) have the benefit of seeing their work put to use (unlike many programming assignments of the "everything you ever possibly wanted to know about doubly-linked lists" variety). Good luck!

- Rackham

"You can't protect anyone.... You can only love them."

Teach a real programming language (3)

Dopefish_1 (217994) | more than 13 years ago | (#885895)

I don't know about other schools out there, but my HS only taught Pascal, and later added a rudimentary C course. I would vote for teaching something like Perl or Java as well.

What do we usually do? (1)

(-)erd of (ats (218158) | more than 13 years ago | (#885896)

Judging by the massive proliferation of IRC clients, `bots, ICQ clones and simple OpenGL FP shooters among entry level programmers, I'd say any of them would be an enjoyable forced project.
Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Sign up for Slashdot Newsletters
Create a Slashdot Account

Loading...