Need idea for final project (AP Comp-Sci)

PigCorpse

[H]ard|Gawd
Joined
Sep 4, 2005
Messages
1,115
Hi, as the end of the school year approaches, I need to think of a program that I can write as my final project. This is for an AP computer science class. Can you suggest some ideas?

I was originally planning on a Monopoly game.
 
Monopoly is a lot harder than one might think. I say try something easier, but then add functions to it.
 
Holy those are cool ideas. I especially liked the books and will try to see if my school has them. I'll probably buy one and start off with that first if not.

The thing is though, the project really just needs to be cool and stuff. Writing a fast grep probably takes a lot more intelligence than writing Monopoly, but it's really not as cool.

Just a question, I see that you're a professional programmer, so I was wondering if you can tell me the difference between computer science, information* (there's information science, technology, etc.), and computer engineering? I need to decide soon what my major will be and I'm leaning towards computer engineering because I want a career with computers but not just with software.
 
The thing is though, the project really just needs to be cool and stuff. Writing a fast grep probably takes a lot more intelligence than writing Monopoly, but it's really not as cool.
"Cool" is in the eye of the beholder. I got a free Monoploy game CD when I ordered a combo at TGI Fridays, if I remember right. If you write a grep with good features--better than the craptacular open source ones, obivously--you'll make lots of developers really happy.

Is that you don't think technical goals are "cool" something you should consider when planning your education and career?

Just a question, I see that you're a professional programmer, so I was wondering if you can tell me the difference between computer science, information* (there's information science, technology, etc.), and computer engineering? I need to decide soon what my major will be and I'm leaning towards computer engineering because I want a career with computers but not just with software.

I'm not really in touch with college curricula, but my take is this: CS is about software; specifically, pure algorithms, their design, evaluation, and some applied stuff regarding their implementation.

Information Technology is generally about managing networks, building and managing systems infrastructure for businesses, and so on. It can extend to the development of internal business applications, but since most companies would rather buy than invent, it ends up meaning that such a degree is more about business and management.

Comptuer Engineering (and Systems Engineering, as some schools call that track) is indeed a mix of EE and CS. You'll learn about low-level architecture, integration, and so on. If this avenue was available when I went to school (and I didn't think the education system was useless), it's probably what I would've taken. Then again, that also probably means I wouldn't have ended up where I am now.
 
do a instant messanger program

Seconded. I assume AP CS is in Java now -- simple networking's pretty darn easy in Java, and the end result would be neat.

Make sure to do a little planning beforehand, though; you'll find yourself adding little tidbits to an IM program . . . forever. They're addicting and fun to share with friends :p !

Edit: Maybe make a basic Wiki?
 
You can write an AJAX driven turing machine or push-down automata simulator. It's got it all, relative simplicity, the technical [H]ardness, and the wow factor :p.

*Edit* and if you plan on majoring in CS, major brownie points if you show this to your intro computation theory prof. :D
 
Try something XML-RPC based, wow your friends as you interconnect multiple programming languages on multiple operating systems using multiple interfaces (webserver CGI can do XML-RPC processing). Write something that will do simple message passing and maybe write something to do various locking mechanisms (ie, ring based distributed locks, easier than it sounds).

Remote procedure calls are way, way fun. :cool:
 
"Cool" is in the eye of the beholder. I got a free Monoploy game CD when I ordered a combo at TGI Fridays, if I remember right. If you write a grep with good features--better than the craptacular open source ones, obivously--you'll make lots of developers really happy.

Is that you don't think technical goals are "cool" something you should consider when planning your education and career?



I'm not really in touch with college curricula, but my take is this: CS is about software; specifically, pure algorithms, their design, evaluation, and some applied stuff regarding their implementation.

Information Technology is generally about managing networks, building and managing systems infrastructure for businesses, and so on. It can extend to the development of internal business applications, but since most companies would rather buy than invent, it ends up meaning that such a degree is more about business and management.

Comptuer Engineering (and Systems Engineering, as some schools call that track) is indeed a mix of EE and CS. You'll learn about low-level architecture, integration, and so on. If this avenue was available when I went to school (and I didn't think the education system was useless), it's probably what I would've taken. Then again, that also probably means I wouldn't have ended up where I am now.

I dunno. I know that a game like Monopoly is at most a gimmick and does not stress real computer science, but the thing is, the class is an AP Java class and we're supposed to as much of the stuff we covered as part of the AP subset. So OOP-related things like inheritance, abstract classes, interfaces, polymorphism, etc. is necessary. So is the Collections API. I thought something like Monopoly is a good way to include all that stuff.

Also, thanks for all the info about the college majors. I think I'm probably going to settle on computer engineering. How important is physics when it comes to that?

i wrote a pong game for my ap comp sci final class 6 years ago =)

My friend who takes systems programming (next step after AP) wrote a pong game with his group. It wasn't really pong, it was the kind where you have four players each on a corner. They were able to make it networked, cool stuff. It was in C++ btw. And that friend of mine got into MIT.

I did a network version of Monopoly... in COLLEGE :eek:

I want to make it networked, but I have no idea how.

do a instant messanger program

Sounds cool. I remember someone wrote a networked text editor where people can edit something in real time, which was really cool.

Seconded. I assume AP CS is in Java now -- simple networking's pretty darn easy in Java, and the end result would be neat.

Make sure to do a little planning beforehand, though; you'll find yourself adding little tidbits to an IM program . . . forever. They're addicting and fun to share with friends :p !

Edit: Maybe make a basic Wiki?

I'm going to spend some time reading about networking in Java. I'll try my best to get networking in the project.

You can write an AJAX driven turing machine or push-down automata simulator. It's got it all, relative simplicity, the technical [H]ardness, and the wow factor :p.

*Edit* and if you plan on majoring in CS, major brownie points if you show this to your intro computation theory prof. :D

I don't know any AJAX, but in Java it should be writable. I'll read more about Turing machines and consider it.

Try something XML-RPC based, wow your friends as you interconnect multiple programming languages on multiple operating systems using multiple interfaces (webserver CGI can do XML-RPC processing). Write something that will do simple message passing and maybe write something to do various locking mechanisms (ie, ring based distributed locks, easier than it sounds).

Remote procedure calls are way, way fun. :cool:

Uh, that's a little too [H].

Ray tracer.

Do you mean the lens one I linked?

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

Thanks for all the cool ideas, all of you have been very helpful.

I was wondering, if I wanted to make a multiplayer game in Java. Would it be better to just make it networked, or should I make it an applet? What other ways are there?

Thanks!
 
Also, thanks for all the info about the college majors. I think I'm probably going to settle on computer engineering. How important is physics when it comes to that?
You should talk that over with your guidance councelor or admissions advisor.
 
I vote IM program as well, but with encrypted transmissions. You could say it was a prototype for a corporate IM program. It should include the ability to send files across the network and also have conferencing as a feature.
 
Tetris, Pacman, Asteroids, Arkanoid, Mario... I've done them all... in various languages/API's. If you want to do something like this I could help you out.
 
I dunno. My group likes Monopoly and that sucks because I obviously haven't made any decision yet, but I guess that as long as it's possible I'll just write Monopoly.

Is there any way I can just get a picture of a board and stuff and make the property squares each be buttons?

And should I start off just writing the actual game (as if I were writing text-based Monopoly) and then add the GUI later on?
 
There's two ways to look at this...

1) APCS is the equivalent to a college-level intro programming class. Most schools will give you credit equivalent to one or two semesters. As such, don't go crazy trying to come up with a big, impressive project - final projects from university intro classes are generally pretty insignificant. Anything involving networking or complex GUI/graphics is really outside the scope of the class. Figure out the size of project the teacher is expecting and try to find something along those lines. Most of the suggestions here are entirely too ambitious when looking at things this way.

2) You -are- in the AP program and planning on going on to a university program where programming will be a significant portion of the coursework. Any extra work you do will only pay off in the end.

Either way - it's just highschool. You'll probably cover most of the material again in college. Don't burn yourself out this early in the game. Just make sure you study for the APCS test & do well there.

Standard College Student Advice : If you're concerned about your career when you get out, get internships during the summers (Big companies, small local firms, government programs, whatever...) & try to find campus jobs or undergraduate research positions that are related to your field. All the class projects in the world are just coursework, actual job experience will actually make your resume stand out and give you a leg up after graduation.
 
In my highschool class, we wrote Bejeweled for our final project. I made mine look like the real thing.
 
Seconded. I assume AP CS is in Java now -- simple networking's pretty darn easy in Java, and the end result would be neat.

Make sure to do a little planning beforehand, though; you'll find yourself adding little tidbits to an IM program . . . forever. They're addicting and fun to share with friends :p !

Edit: Maybe make a basic Wiki?

Yup i did an IM program in java for my project. too bad my supervisor's laptop sucked big time and diddnt work on it properly
 
And should I start off just writing the actual game (as if I were writing text-based Monopoly) and then add the GUI later on?

you should write it such that the game exists independently of the gui code, yes. you're concerned about dice rolls, property purchases, etc., whether or not the events come to you through text or gui shouldnt matter internally.

i dont think monopoly will be very interesting unless you utilize some kind of graphics engine. flash, OpenGL, something. lots of busy work. you'll also put in special cases for all 20 or so cards the players can draw. just a tedious project. but if your group is happy with that and you dont have anything else in mind, you're kinda stuck with it. it's doable, and "cool" if you execute it nicely, but it wouldnt be my first choice.
 
3-D Minesweeper? I did that for a project once.
(for DOS in C/Assembler, to boot.)

Lots of different aspects there... logic, 3-D programming, user interaction.


Of course the 3D stuff would probably be easier since you have libraries (OpenGL, Direct3d, etc).

I had to do it all myself :mad:
 
3-D Minesweeper? I did that for a project once.
(for DOS in C/Assembler, to boot.)

Lots of different aspects there... logic, 3-D programming, user interaction.


Of course the 3D stuff would probably be easier since you have libraries (OpenGL, Direct3d, etc).

I had to do it all myself :mad:

I've done that (3D engine from scratch), it's not fun, need to know your trig
 
Hi, as the end of the school year approaches, I need to think of a program that I can write as my final project. This is for an AP computer science class. Can you suggest some ideas?

I was originally planning on a Monopoly game.

Step 1. Implement a stream cipher. RC4 is easy.
Step 2. Set up a simple TCP server and client application to send a message to the server, do something, and return something to the client
Step 3. Use the stream cipher to share a key and send an encrypted command to the server and encrypt the result. Verify with a network sniffing tool.

I hope you're using a high level language. :)
 
Step 1. Implement a stream cipher. RC4 is easy.
Step 2. Set up a simple TCP server and client application to send a message to the server, do something, and return something to the client
Step 3. Use the stream cipher to share a key and send an encrypted command to the server and encrypt the result. Verify with a network sniffing tool.

I hope you're using a high level language. :)

you forgot the last 2 steps:

4. ???
5. profit
 
Also, thanks for all the info about the college majors. I think I'm probably going to settle on computer engineering. How important is physics when it comes to that?
I'm a just-finished-third-year computer engineering student so I might be able to answer that. There is certainly less than in other engineering fields, but expect to take a couple courses.

At my particular school, our first year curriculum is quite multi-disciplinary. I think this is reasonably common, but you'll want to check the curriculum of each school and program you're considering. This means, among other things, I took basic courses from each of the major engineering departments (electrical, computer, civil, mechanical, etc). The electrical courses taught physics of E&M. The civil and mechanical courses taught classical mechanics. This isn't particularly advanced physics though. It's just to make sure you have a certain level competence in each field.

Second year, the physics was more E&M, but using integral calculus (ie/ Maxwell's equations). There were also courses in circuit theory, and electronic devices, both of which you might consider physics. These courses were mandatory for me.

Depending on what area of computer engineering you are considering, you may have to take even more physics related courses. In my case, I have just finished courses in quantum mechanics and semiconductor physics. If you stick to the software or networking side of comp. eng. you likely wouldn't need to take anything like that.

Anyway, the best option is to check the specific curriculum of each school. Mine has only a (combined) electrical and computer engineering department, as well as a preset course schedule for the first two years, so everyone has to take physics courses even if they plan on going into a totally unrelated field.
 
Back
Top