Beta

×

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!

What was Your Senior Project?

Cliff posted more than 8 years ago | from the only-if-you-feel-like-sharing dept.

Education 82

Caydel asks: "I am a third year CS major. This year I have a two-semester senior project course in which I can spend two semesters on a project of my choosing. I want to write something very cool, which at the same time provides quite a challenge to me, and serves a useful purpose; however, I am having trouble coming up with good ideas. For those of you out there who have done a similar course, what did you do? What would you have done differently? Which languages did you use? How many skills, that came from outside of your CS courses, did you use?"

cancel ×

82 comments

Sorry! There are no comments related to the filter you selected.

Oooh. (5, Funny)

Seumas (6865) | more than 8 years ago | (#13417876)

You should develop an application that will take into account numerous global and business factors to show CEOs - in real time - what their total cost savings is based on their outsourced and offshored efforts over what they would have spent if they had not done so. Then it should give projected savings for "what-if" conditions, such as laying off more employees, moving more work overseas, ignoring more labor laws. You get the picture. It could even be a sweet little Dashboard Widget to make that dashboard crap useful for once!

You could even make a version for employees that shows them what the going rate of their work is elsewhere in the world so that they can begin to plan accordingly and start drinking that free(ish) water rather than that $4/gallon milk. Or start walking 50 miles to work instead of spending a week's salary on a day's worth of gas. Or start wearing yard trash bags instead of clothes. You know - to make the average American worker more competitive with the global labor force.

Or even better, you could build on existing TTS (text to speech) libraries by creating a utility that will modify input so that it sounds more twangish or nasal or laid back. That way call centers overseas could connect these to their PBX systems so their engineers sound more "American" to american end-users looking for tech support.

But perhaps you want to make something that will actually help *you* in the long run. In that case, perhaps you could develop some sort of program that will let you travel back in time to pick another major for a career that isn't so washed-out. I'm not sure what sort of schooling is available for janitorial work, but I'm sure there are vocational training centers you could look into!

Re:Oooh. (2, Funny)

bjprice (863197) | more than 8 years ago | (#13417908)

Where's the -1, Bitter option when you need it?

Re:Oooh. (2, Funny)

Seumas (6865) | more than 8 years ago | (#13418198)

Shut up, college boy. :P

Re:Oooh. (1)

bjprice (863197) | more than 8 years ago | (#13418471)

College boy? Not me - I got expelled. Four times :-)

Re:Oooh. (1)

Seumas (6865) | more than 8 years ago | (#13418518)

At least you got to college. :)

I dropped out of the 9th grade.

I had an 8th grade GPA of 0.13 (yes, that's possible).

I just had my 5 year anniversary with my current employer. :)

Re:Oooh. (4, Funny)

Anonymous Coward | more than 8 years ago | (#13418667)

I had an 8th grade GPA of 0.13 (yes, that's possible).

I just had my 5 year anniversary with my current employer. :)


Carl's Jr. [carlsjr.com] ?

Re:Oooh. (1)

Seumas (6865) | more than 8 years ago | (#13418748)

I train Slashdot Editors for OSDN.

Re:Oooh. (1)

serialdogma (883470) | more than 8 years ago | (#13419160)

I am sorry to brake it to you, but the OSDN is no more we now have the OSTG. Sure you have been getting them paychecks the last year?

Re:Oooh. (0)

Anonymous Coward | more than 8 years ago | (#13436410)

I am sorry to brake it to you

You certainly qualify as a Slashdot editor!

Re:Oooh. (4, Funny)

tigersha (151319) | more than 8 years ago | (#13428436)

Sorry to break this to you son, but the guy in the white coat who gives you pills every morning is NOT really your employer.

Finally (4, Funny)

daeley (126313) | more than 8 years ago | (#13417885)

Hey, everybody, please help this 'person' out. My senior project was to create a brain in a jar who would be unaware of its artificiality long enough for it to 'complete' a virtual senior CS project. If you help it out, we both win!

Re:Finally (1)

name773 (696972) | more than 8 years ago | (#13419562)

that is a really cool twist on this topic

well done sir

Open source... recreate one that is sloppy (5, Interesting)

foniksonik (573572) | more than 8 years ago | (#13417901)

Here's an idea... scour sourceforge for a project where the idea is great and the implementation is usable but the code and efficiency is really bad.. then rewrite it from the ground up with elegant code and at the end of it all... submit it for the rest of us to use.

FYI it doesn't have to be a web app either... lots of standalone applications out there too but of course if it can publish reports, logs and status to a web monitor app even better.

Re:Open source... recreate one that is sloppy (0)

Anonymous Coward | more than 8 years ago | (#13420113)

Fine so in the name of screwing open source, you want to take their shit, meld it into your idea, and fuck the original person. Let me guess, your one of those guys who just fucking loves windows XP and you have never had windows crash on you because you are so fucking elite....right?

Re:Open source... recreate one that is sloppy (1)

BoomerSooner (308737) | more than 8 years ago | (#13420916)

Or better yet, assuming you keep all rights to the code, program something that takes another area of expertise and create a program to make someone elses life easier.

For example, a financial calculator. It's not to hard to find the functions you'd need to use and you can meet (network) with some people in the Business School and have them assist you (generally professors are pretty nice). Tell them you are considering an MBA at your school, that might help too.

Another example is economic models, or some biology (I'm very non-science oriented) project that could couple a need in a real area and a project you can possibly turn into a career.

In the real world (for the most part) programmers end up doing EUIS (End-User Information Systems) and they are non-trivial due to the necessary investment in learning how to integrate someone's needs into a software product. Plus it will be good practice on your people skills and excellent resume fodder. 99% of the problem I have with CS only majors is this, they are excellent technical programmers but when it comes to knowledge of any applied models the learning curve is quite slow (in financial, economic, ... models).

MIS/CIS maybe an easier degree but at least they come out knowing what a debit and a credit are (hopefully). Now if they could just program too.

IMO you might consider getting an MBA. You're exactly who it is designed for (not the damn business undergrads who just want to spend more of mommy & daddy's money and avoid the real world for 2 more years).

Good luck! I hope this helps.

Re:Open source... recreate one that is sloppy (2, Insightful)

Crayon Kid (700279) | more than 8 years ago | (#13421135)

Or better yet, assuming you keep all rights to the code, program something that takes another area of expertise and create a program to make someone elses life easier.

In other words, ask for ideas from people who work in less-technical fields. See where the power of computing can help people's task, people who aren't technical enough to write their own programs. Economics is always a rich source of ideas.

One problem (1)

HomerJayS (721692) | more than 8 years ago | (#13426861)

then rewrite it from the ground up with elegant code

There isn't a senior CS major alive that can write elegant code. When I was a senior I thought my code was a thing of beauty. When I look at it now, years later, I shudder in disbelief that such crap ever eminated from my fingertips.

Also, any /.er who claims to have written elegant code during college is either lying or delusional.

Re:One problem (1)

foniksonik (573572) | more than 8 years ago | (#13427268)

if I could use my mod points you'd get some funny....

well, true as it is, I think setting the goal high could be a great learning experience for the lad if nothing else... and remember that there are a hell of a lot more resources for learning how to code well these days. Look at the O'Reilly series for instance, did they exist back when you were in school? Not that they are the end all of coding but better than standard issue textbooks I think.

The focus of the suggestion however was implied not explicit... which was to find something that already works, that is not yet commercial and that has well defined goals and a decent framework. This will help to leapfrog the guy past the obstacles of the blank page.. ie: "what is it, what does it do, where are some of the problem areas going to be" , etc.. so he can completely focus on execution of good code... not to mention the ability to take someone elses codebase and improve upon it, which as I'm sure you well know, is one of the typical tasks you end up with as a newbie in a CS oriented job.

Just Ask (3, Insightful)

lexarius (560925) | more than 8 years ago | (#13417915)

Often the department will maintain a list of available projects. This can be a good place to look for ideas, if not actually pick one. Another thing you might do is pick a professor you like and ask them if they have any projects they would like you to work on. This is how I got the Senior Project that I just started working on. It also has the advantage of letting you get acquainted with someone important and showing them the quality of your work. This can get you a valuable reference, letter of recommendation, or an ally if you continue into grad school.

Re:Just Ask (1)

Dachannien (617929) | more than 8 years ago | (#13418478)

Not just an ally, but a potential source of financial support during grad school, especially if the same grant funding the research that your senior project is a part of continues past your graduation date.

Re:Just Ask (1)

cecille (583022) | more than 8 years ago | (#13427391)

Or even ask a prof in another department. When I did my final project we worked with a prof in the human kinetics department. Grabbed a bio engineering student and did a project designing a vision system for a robot that was being used on a study of human knee joints. They had funding for the project, and they let us use their amazing robot. The drawback was that there were so many people in the lab that we could only really work at night, which became a little bit of a problem at the end of the semester when we started getting really sick from lack of sleep, but overall it was great. Just find a department with some sweet equipment and see if they need anything.

Summer of Code Ideas (5, Insightful)

Zecritic (858738) | more than 8 years ago | (#13417941)

You could try one of the ideas from Summer of Code that didn't make the cut. The summer-discuss group was full of ideas. http://groups.google.com/group/summer-discuss?hl=e n [google.com]

Retink your requirements (4, Interesting)

ivan256 (17499) | more than 8 years ago | (#13418015)

'Cool' and 'Open Source' are nice, but don't make them requirements. The ideal senior project is something you can both get an 'A' on and looks good on your resume. Make you senior project something that you would potentially do at a job you hope to have in the future. If possible, get corporate sponsorship for your project. This is easier than it sounds. Some professor in your school's CS department is probably already in good with some local tech company and has a project waiting to be done right now.

If you project can end up being open source, that's a nice bonus, but it can be a mixed blessing. Believe me, 5 years from now when you've learned how little you knew when you graduated it will be awfully uncomfortable to explain during a job interview why you implemented that code the way you did.

Above all though, don't work on something with no obvious practical applications unless your goal is to get into grad school. A practical project will make you desireable to hiring companies in the same way past job experience would.

Re:Retink your requirements (1)

ivan256 (17499) | more than 8 years ago | (#13418034)

I just realized I didn't answer the question in your subject. I probably should, since it helps make my point:

For my senior project I wrote a Linux device driver for the Emulex LP7000 based Fiber Channel HBAs. The project was paid for by Clariion (EMC for the last 3 months). The development we did was open source, but it became the basis for the closed emulex driver.

With that on my resume, I got a job writing linux device drivers a month before graduation, and have been hacking linux for cash ever since.

Re:Retink your requirements (1)

Clover_Kicker (20761) | more than 8 years ago | (#13418833)

> Believe me, 5 years from now when you've learned how little you knew
> when you graduated it will be awfully uncomfortable to explain during
> a job interview why you implemented that code the way you did.

Meh.

Most interviewers would be interested in hearing what you'd do differently. Expecting brilliance from someone's senior project is lame.

Re:Retink your requirements (1)

ivan256 (17499) | more than 8 years ago | (#13419371)

Most interviewers would be interested in hearing what you'd do differently. Expecting brilliance from someone's senior project is lame.

My experience has been that most interviewers are terrible. You have to sit through quite a few before you find a good place to work though. Some questions, the worst kind, reflect the interviewer's predetermined conclusions. Even if the rest of the interview hasn't sold you on the position, there's something uncomfortable about sitting across from a guy who's made up his mind about you in a bad way and knowing that you have to answer his questions for 20 minutes with no way to change his mind.

Other questions I've gotten: "Why aren't you maintaining this anymore?" "So, you believe in the GPL? Don't you like to make money from your software?" etc...

Don't get me wrong, I'm not saying it's all bad. I've interviewed places that have seen my old work and have called me with an offer before I met them. The interview in those cases was more me interviewing them to see if the job would be fun. But like I said... It cuts both ways.

Hope You Like Access! (1)

Vagary (21383) | more than 8 years ago | (#13427769)

My alma matter's capstone projects were supposed to have an external client, so what most of the groups did was find a client and then ask what they want. The lucky ones got to write a Postgresql frontend in PHP, the unlucky ones got to write an Access frontend in VB. I'm sure they all have wonderful jobs right now writing SQL Server frontends in C#.

I had plenty of stuff on my resume by fourth year and aspirations of grad school, so I figured I could afford to do a project that wouldn't include soul-sucking functionality. I found two partners who wanted to do something interesting and didn't feel like putting in the effort of finding a client. We came up with the general project idea first, and then shopped it around until we found someone who would sign off on it.

It was overly ambitious and we were lazy, so we only got to a working proof of concept. But the "clients" didn't actually need it, so they were willing to sign off on that. All the Profs were impressed with our design skills and vision, so I got an A and something interesting to talk about in interviews.

create a relational database (4, Interesting)

Anonymous Coward | more than 8 years ago | (#13418094)

I mean a real one, not the SQL crap we have today. One that implements Codd's original ideas as well as recent updates (e.g. The Third Manifesto). Updateable views, user-defined types, arbitrary constraints, type inheritance, declarative syntax, the works.

Please. Somebody do this. Anybody. I have searched high and low and have found exactly 3 products. Two half-finished open source implementations, and Dataphor which is commercial and thus not worth using.

I'm seriously thinking of going back to school just so I can study databases and learn how to write one. I have written a couple attempts in Lisp and Ruby and I just don't have the brains to finish them.

Re:create a relational database (1)

ratatask (905257) | more than 8 years ago | (#13422019)

Er, it's already done [postgresql.org] .

(Ok, so one still interface pg with SQL, but the other items on your list checks off)

Re:create a relational database (1)

jbplou (732414) | more than 8 years ago | (#13441724)

You'd be better off learning how to use the RDMS systems are actually used. Then writing some piece of crap.

Compiler and Network (3, Interesting)

renehollan (138013) | more than 8 years ago | (#13418106)

My senior undergrad project (c. 1982) was the writing of a compiler.

My graduate project (c. 1984) was the development of a very low cost CSMA/CD system and network drivers for TSC/Flex. Hardware costs of $50/node were achieved when ethernet interfaces ran around $1000. Of course 125 Kb/s wasn't much, but in those days, it was impressive. Processing was purely interrupt-driven (no DMA), and the novelty was being able to mask the network controller interrupts for the right length of time once it was determined the packet was destined for someone else (or not grin).

The development system for the latter sported a 10 MB hard disk, as opposed to the usual 8" floppy-based systems -- I had written the hard disk drivers for that system in my final undergrad year: having a working HD-based TSC/Flex system was essential to the last course I needed to graduate and it was in danger of not being available, the course cancelled, and me having to wait a semester, so I did what was necessary to make the systems that were required for the course I had to take to teach me how to make such systems so that I might graduate when I expected.

I guess times have changed.

My senior project?? (-1, Offtopic)

Big Sean O (317186) | more than 8 years ago | (#13418178)

To date the cutest girl in the dorm.

Good news: I started dating her in late September.

Bad news: She broke up with me by late October.

Worse news: She got under my skin in the worst way and I moped around for the next 2-3 years.

All in all, I probably should've done an honors project instead.

Good advice (5, Informative)

meta-monkey (321000) | more than 8 years ago | (#13418283)

Seriously, forget all this "I want to do something really cool and useful!" stuff. That's a good way to wind up with an overly complex that takes too much time and risks not getting done.

For my senior project as an electrical engineer, I built what was just about an Apple IIe from the ground up. I designed the entire MC6502 microprocessor in VHDL, broke it up into component pieces and programmed them into different CPLDs, wired it all together with a RAM, a ROM, and a few serial controllers to take inputs from a keyboard and send outputs to a monitor, and wrote some simple demonstration software for it. I got an A

Another kid in my class hooked up an infraed sensor to a relay, and configured it so when you stand under a ceiling fan, it turns on, and when you walk away it turns off. He got an A, too.

The other kid was smart. I was dumb.

Remember, after you get your first job, no boss will ever care again, ever, what you did in college.

Re:Good advice (3, Insightful)

Andrew Sterian (182) | more than 8 years ago | (#13418363)

When your boss asks about the relative merits of switching from a microcontroller-based product to one that uses CPLD's, you'll be able to speak intelligently about the tradeoffs.

The other kid's job will be offshored.

I think you were smart.

Re:Good advice (4, Insightful)

pla (258480) | more than 8 years ago | (#13420727)

When your boss asks about the relative merits of switching from a microcontroller-based product to one that uses CPLD's

...You'll wake up horribly dissapointed that such conversations don't happen in the real world.

Even if your immediate boss understands the question (mine at the moment would, and you cannot imagine how happy that makes me), he in turn has any important decisions handed down based on buzzword-worthiness.

My favorite, ever (fortunately a friend, not myself, had this disaster as a task) - The customer wanted something vaguely like a POS terminal. They specified the hardware platform, and that we needed to code everything in C++. I don't know if the customer actually had a clue what "C++" meant beyond a buzzword at the time, but suffice it to say, no C++ compiler existed for the specified target platform.


Kids - Your senior project doesn't matter. Your school's reputation (assuming something better than "Bill's house of Diplomas") doesn't matter. The opinions of your professors don't matter. No one cares how much "community service"/"volunteer work"/ "social BS" you performed. Do the least work possible to pass - I wouldn't even say worry about getting an "A" unless you already have highest-honors status and a B would lower that. And as the GP pointed out, once you get your first job, no one will ever care about your college work as more than idle conversation over beers while commiserating about the Dilbertian nature of "real" work... And even your first job doesn't care what you did in college - If you worked at a decent intership, your experience there for a total of 12 months out of the previous four years, will count for FAR more than the 36 months of academic work you did in the same time.

You want to know what does matter? Get the framed piece of paper to wave (doesn't matter what it actually says), and don't let yourself get into too much debt - Many employers now run credit checks on job applicants, meaning the schmuck who went $100k+ into debt at a private school and "wasted" his summers sucking up to professors will get turned down in favor of the guy who went to a state university and managed to pay tuition with the wages from a summer internship.

And I say this as someone who did keep a high GPA, in two different degrees, worked with professors on their pet research, and ended up with glowing, obviously-personal (rather than cookie-cutter) recommendations from two separate department chairs. Fortunately I also went to a state university and kept out of debt. And what mattered, for my first post-college job? The summer internship. No one, in any of the interviews I've endured (and yes, "endured" makes the right word to describe the process of inverviewing), cared in the least about the (IMO) very cool research I did in college. They cared that I knew X, Y, and Z (where X, Y, and Z frequently had no actual relation to the job description), that I could solve riddles quickly, that I passed a background check, and how I dealt with my worst failure at work (a tough question, considering that I never really failed by my own faults, and saying "management made the project physically impossible" sounds like a cop-out).


As one last point, to give all you poor bastards about to graduate a small sliver of hope that you haven't just wasted four years of your life - My current job violates most of the above complaints, but I consider it pretty much a one-in-a-million position. I interviewed directly with a real, live, competent engineer, who cared more about my skills than about mind games and buzzwords. Management has a decent knowledge of technology, but also the wisdom not to pretend they know enough to micromanage the IT department. I can speak with the head honcho casually, on a first-name basis, and don't find my desk contents waiting at security in a cardboard box for me when I come in the next morning. So such jobs exist, but good luck finding them.

Re:Good advice (1)

Brandybuck (704397) | more than 8 years ago | (#13421602)

My current job violates most of the above complaints, but I consider it pretty much a one-in-a-million position.

Yet you haven't held one million positions yet, so you don't really know. Maybe it's more line one-in-twenty, or one-in-a-hundred. I work for a sucky dilbertian employer, but your description of the industry almost my job sound like paradise.

Excellent advice. See "the cost of an A" (3, Interesting)

xtal (49134) | more than 8 years ago | (#13425167)

I concluded very early on the effort required to get an A was not worth it (to me) in engineering; I had no ambition to go into academia, and that's the only place it mattered. Getting a BSc. EE degree was a high enough bar to set. (does anyone really even care about the BSc. vs. BEng? does anyone even know the difference here? case in point)

The effort required for a 'B' was much, much less - often just going to class and doing assignments on time - this let me take all the effort I would have wasted getting an A, and pour it into working at internships, my own learning, and contracts - gaining real world, resume-stuffing experience.

That said, I busted my ass on my senior project and learned a LOT about wireless and packet-level IP communications - that and all the C++ experience I learned got me a very nice job when I graduated. Later, all the experience with embedded systems (learned from hacking on my car, NOT my degree), C++ and graphics paid off in spades and let me start my own company.

The degree was very valuable though - I learned enough about fourier transforms and calculus to study and read papers that helped me a lot when setting up my company. Did it matter that I got 10/10 of the complex integrals right in that fourier transforms class? Nope. All that mattered was I knew what they were, how they could be used, and what their limitations were.

I'm sure there's lots of counter examples, but almost all of it goes to: If you're motivated, you'll (probably) succeed.

Do something that interests you on your senior project, and make sure it works at the end. Regardless of grade, you'll have made out better than most of your classmates.

Re:Good advice (0)

Anonymous Coward | more than 8 years ago | (#13419196)

My senior project was advised by a clueless professor 20 years past retirement. Me and TWO other CS seniors wrote a php page with some forms asking for resume type info, and a Hello World equivalent MySQL backend to store the info in, and skinned the page to match the university's home page.

We probably put in a total of 6 hours during the semester, and with the right presentation skills it looked like we just reinvented the school's HR system. We had a great senior year out of the library and in the bars, whereas some of the other kids came up with outrageous, impossible projects that took their lives away, never went anywhere, and who knows that they learned. We all got A's and great jobs, and now none of it matters, ever.

Just wanted to give another story, feel free to work hard or not, just remember that after your 4 years of fun, it's the real world for forever.

As someone who has interviewed graduates ... (1)

dustpuppy (5260) | more than 8 years ago | (#13424518)

what you say is absolutely true. When I've interviewed grads, I'm barely interested in your degree (other than that you have one and you didn't fail too many subjects).

I'm interested in your final project, merely as a conversation starter and as chance to get you talking so I can see what your communication skills are like. I'm much more interested in your attitude, communication skills, willingness and enthusiasm to learn, and extra-curicular activities. This is what distinguishes people from the masses, not the degree.

And depressing as this may sound, we assume you know nothing (beyond the basics that you learn at uni) when you start in the job. So in the parent post, he's absolutely right that whether you know CPLDs or infrared sensors ... it really doesn't matter to me in the interview.

My advice is to do a project which you can do comfortably and excel in. Better to get an 'A' for a 'simple' project than a B for a complex one.

Development of Fiji (1)

SlamMan (221834) | more than 8 years ago | (#13418301)

I did simulations on the underdevelopment on Fiji, but hey, BS in Economics ;-).

Re:Development of Fiji (0)

Anonymous Coward | more than 8 years ago | (#13421126)

I'm sorry, but you need to return your geek license now.

Why... (0)

Anonymous Coward | more than 8 years ago | (#13421450)

...did you specify the BS, I thought all economics degrees where BS ;o)

Music (3, Interesting)

Jerph (550853) | more than 8 years ago | (#13418308)

My senior project way back in '03 was to use genetic algorithms to figure out what musical scale/mode sounded the best to people. Two scales were chosen from the pool. A Java applet generated notes in the scale based on the likelihood that a given interval would happen in popular music. Then the scales were given names like Ludwig Van Nirvana and their generated songs were pitted against each other. The listener voted on the best one, and after the entire pool was tested, the winners made sweet love (genetic algorithm style) and the losers died till they were dead. Long story short - the blues scale won.

I actually had much higher aspirations for the project before the end. I had to whittle it down to just scales because I needed something that could easily be represented as a bit string (in this case, 12 bits determining whether a given tone was part of the scale). I really wanted to generate good, listenable music based entirely on votes from live bodies. It could be done in this way, but you'd have to bring in many other aspects of music to get there (rhythm, tempo, timbre, range, and (shudder) harmony for example). You could do the exact same process with each of these separately, or combine them where practical. I would certainly be willing to provide my code to anyone who wanted to try.

Re:Music (1)

DrEasy (559739) | more than 8 years ago | (#13419867)

This is a really cool idea! You should make it available on sourceforge.

Re:Music (1)

jonadab (583620) | more than 8 years ago | (#13420111)

> It could be done in this way, but you'd have to bring in many other aspects
> of music to get there (rhythm, tempo, timbre, range, and (shudder) harmony
> for example).

Forget harmony. Really, forget it. Real music doesn't *need* harmony, because *real* music has counterpoint. Harmony is just a cheap immitation. Music that's really worth listening to has counterpoint.

I am not convinced that a computer could write the really good stuff, but you could try it. It'd be a good hobby / spare time project; as long as you enjoy playing around with it, you haven't lost anything if it doesn't end up working out.

mine (1)

syrinx (106469) | more than 8 years ago | (#13418311)

Mine was working for NASA for a couple months, working on their imaging software for detecting damage to the space shuttle while it's in orbit.

Not sure if that helps you though.

Re:mine (0)

Anonymous Coward | more than 8 years ago | (#13419667)

Mine was working for NASA for a couple months, working on their imaging software for detecting damage to the space shuttle while it's in orbit.

I'm not going to comment on the recent Space Shuttle happenings.

suggestions, you say? (4, Interesting)

blackcoot (124938) | more than 8 years ago | (#13418391)

octave needs a hell of a lot of work. some suggestions:

1) a non-sucky plotting interface (there are some packages which claim to do just this, but i can't get bloody VTK to compile, so they're basically useless)

2) an optimization engine for octave

3) .oct functions which can read a multitude of image formats, write a multitude of image formats, display images, implement the equivalent of ginput, and provide the basic functionality of the image processing toolkit (if you pick this and do a good job, i will buy you dinner). what meagre image processing functions octave has all fork off a copy of imagemagick, which is *painfully* slow

4) .oct functions to read and create movies (possibly as part of #3)

all of these projects demonstrate several key skills: good c++, good matlab, and the fundamentals of engineering with existing code.

other suggestions:

5) something like mtl (matrix template library, c++ code which uses expression templates and what not to try to help the compiler produce optimized code) that doesn't suck (their lu factorization produced plain /wrong/ results last time i used it). major bonus points for implementing matrix factorizations, and eigendecompositions

6) fix gnu's binutils so that they can use libraries generated by VC++

7) an optimized c++ toolkit for developing digital video processing and computer vision software under linux. i envision this as a kind of directshow lite --- you'd supply standard interfaces and a set of plugins providing basic transforms (color space conversions, for example), thread pools, and a nice gui to edit processing graphs and run them

incidentally, most of these things have been on my todo list for a long time. i think i'm going to crack at least the image reading and display portion of #4 over labor day weekend.

Algorithmic Music Composition (2, Informative)

Some guy named Chris (9720) | more than 8 years ago | (#13418537)

My project was to create a system for algorithmic music composition. My dream was to be able to tweak parameters to generate contextually apropriate soundtracks for video games, or other non-scripted events.

Research involved dealing with music theory, AI, midi, and several languages, including neural networks and ArtIM.

Lots of fun, very stressful waiting for uncertain results, and in the end, I met with limited success, but learned a lot and impressed my professor with my ability to bring multiple ideas and techniques to bear on a problem.

Senior AI Project (5, Interesting)

OmgTEHMATRICKS (836103) | more than 8 years ago | (#13418567)

Amusing anecdote: I was an undergrad at the University of Missouri, Rolla and bored in my Senior AI course. Well, a little bored. We seemed to be spending an inordinate amount of time studying Expert Systems, a path that I thought would yield little fruit in achieving true machine intelligence.

After one of the Expert System lectures I asked Professor Arlan DeKock whether Expert Systems didn't seem a little bit too much like more sophisticated if-then-else branching systems, perhaps with a bit of if-then-else-maybe thrown in. He considered that for a little while and asked what I'd rather be working on. I said Natural Language Processing. Perhaps something like Zork.

He said, "Well, isn't that just a slightly more sophisticated version of a compiler?" He had me a little bit, but I was willing to give it a shot. He told me I'd never finish it by the end of the semester. That sounded like a challenge, so I took him up on it.

I did a ton of research on NL parsing and imperative command processing and eventually learned a ton about linguistics, Zork, object-oriented programming and AST parsing in LISP. A fantastic adventure. (Thank you Messrs. Winston and Horn)

As to when I finished, well, believe it or not I actually had a minimal space adventure coded and tested and ready to demo for Dr. DeKock 3 minutes before it was time. Of course, my other studies took a *slight* hit. 8-)

The really crazy thing was that the good Doctor was getting into and playing the adventure. One of the puzzles in the adventure prevented you from leaving a room until you gave a can of oil to a robot. He would block your way to the exit otherwise. Rather than solving the puzzle the inteded way, the professor picked up the robot and put him in his backpack. I didn't take physics into account and my adventure let him do that. He then exited the room and the robot could do nothing. The game / adventure actually let him do that and handled it properly.

I was a little dismayed that the *user* won by doing something I hadn't expected, but I was thrilled that my system was logically processing a world that in a moderately sophisticated way.

I got an A.

Then I got some sleep.

Re:Senior AI Project (0)

Anonymous Coward | more than 8 years ago | (#13419955)

Have a version of that (source or binary) up somewhere on the web?

Re:Senior AI Project (1)

tourvil (103765) | more than 8 years ago | (#13420995)

I was an undergrad at the University of Missouri, Rolla

You poor, poor soul. ;)

- Fellow UMR alumn

Re:Senior AI Project (1)

TheMysteriousFuture (707972) | more than 8 years ago | (#13424839)

demo? open source? please? :)

Re:Senior AI Project (2, Insightful)

nine-times (778537) | more than 8 years ago | (#13429458)

It's funny to hear about this, because I've just recently posted something on Slashdot to the effect of "What ever happened to CLI adventure games (Zork, Kings Quest)? With all the work put in to making cool 3D graphics and physics engines, isn't someone working on a new/advanced command line interpreters?"

I've always missed the sort of thought that went into those command line games. Clicking the "use" button while facing an object isn't the same. Are you supposed to open it, take it, break it, or turn it? You don't need to know or think about that. Just "use".

I've been playing with the old Sierra catalogue for the past few days, and I'm a little saddened to recall how the much thought went into those games, and how absent that thought it from most games I play now.

So... do you have a copy of your game handy?

Which senior year? (1)

tverbeek (457094) | more than 8 years ago | (#13418693)

My senior year in college - the first time - I wrote a program which would automatically derive proofs for arguments of propositional logic, or declare them unverifiable. I wrote it in Prolog (a language I'd learned studying abroad at the University of Aberdeen), and drew upon the Logic class I'd taken over in the Philosophy department. I coded up a batch of theorems and axioms (e.g. transitivity, DeMorgan's), plus a shell to parse the input and return the results, then told the Prolog machine to go solve! A bit trivial, I suppose, but doing it with 1980's microcomputers made it a challenge.

The second time I went to college, my last-semester project was a bit different. This time I was studying digital media and illustration, and the project was to build a portfolio site [toddverbeek.com] using Flash that would help get me a job. On the left side was a structured outline of my technical skills, and on the the right side was a more free-flowing demonstration of my creative work. Naturally, I used Leonardo's Vitruvian Man as the visual theme.

Which I'm sure is nothing like what you're asking about, but it does reflect the difference between being a CS major in the late 80s with a few job offers already in the bag, and being a Digital Media major in the early 00s just hoping to get a job that'll pay what those late-80s jobs did.

Distributed make (2)

blargh-dot-com (181292) | more than 8 years ago | (#13418747)

My senior project (in '99) was to make a distributed 'make' system that was client/server based, could deal with multiple architectures, deal with cross-compilers lending a hand, and status monitoring of it all. Oh, and base it off standard make files, with no other changes to code needed besides running dmake (distributed make) rather than make. Oh, and present full High Level Design and Low Level Design docs before implementation (which actually helped a lot). Used C for most of it, except the GUI (I was in a 4 man team, I don't remember what the GUI guy programmed it in). Ended up working very well, shorting the compile times for our sponser company from days to minutes (they had a LOT of individual PCs but none of them were particularly quick about it).

Was a learning experience, but the main thing I personally got out of it was learning the value behind doing HLD and LLD documentation instead of just coding from the seat of my pants. Just wish I would do it more, actually, would save me a ton of rewriting code. Bleh.

Dear Slashdot, (4, Funny)

sootman (158191) | more than 8 years ago | (#13418793)

I am a third year CS major. This year I have a two semester senior project course in which I can spend two semesters on a project of my choosing. What was your project, and please include a link to the source code. TIA! :-)

I made a chicken enchiladas... (5, Funny)

goodenoughnickname (874664) | more than 8 years ago | (#13418832)

...with rice and beans on the side.

Oops, I'm sorry -- that was my señor project.

Re:I made a chicken enchiladas... (1)

Excen (686416) | more than 8 years ago | (#13424796)

My sister's señor project was to do an essay.
She got pregnant because of it.

(say it out loud, 'mer'cans)

I tried something cool and useful. . . (2, Insightful)

Bastian (66383) | more than 8 years ago | (#13418948)

. . .some stereo vision software. It just found the 3D coordinates of points in a pair of images taken from webcams. The lesson I learned? Ambitious projects make bad senior pojects. Choosing that project was probably the stupidest thing I've ever done, with the possible exception of picking up smoking.

I spent the whole year programming until 2 or 3AM every night, and then I'd get up at 6 or 7 the next morning. For a whole damn year. I still barely finished the project in time to graduate. If I hadn't had the wherewithall to make a schedule for the year and start staying up late the moment I realized how tight my very first deadline was, I probably wouldn't have had a chance.

The other kids who did boring crap (like tooling around with feedforward neural networks and producing graphs about convergence time versus various properties of the network's topology) graduated with good grades, too. And they slept more, didn't hate their lives, and got to go out drinking with their friends. Me? I pretty much wasted my entire senior year on that damn project.

Pick something that's not too ambitious. I recommend something that involves modifying existing software, and something that you can easily scale up should you prove to have more time to work on it. It's much harder to go the other way should you find you're running out of time, and there's no guarantee your professors will give you an "A for effort" should you fail to complete the project.

  You should spend your senior year hanging out with your friends on the last year you'll all be together, not rotting in front of some computer terminal. You've got the rest of your life to make OCR software and write optimizing compilers and such.

Re:I tried something cool and useful. . . (1)

Jerf (17166) | more than 8 years ago | (#13418985)

While I'm not a big fan of playing the victim card, you got screwed. Your advisor/professor/whatever should have politely chuckled and asked for something a little less ambitious. I've seen less ambitious Master's theses.

Biting off more than you can chew is an extremely common programmer failing, one many never outgrow, but even for those who do it's usually a matter of decades. Most senior projects should be rejected, and substituted with something smaller, at least in my experience.

For those of you in a similar boat, take this advice: If your advisor doesn't politely chuckle and ask for something less ambitious, be wary. Either you actually asked for something reasonable, or your advisor doesn't care. Be extra, extra sure you're in the former situation, because I'd say statistics favor the latter!

File sharing client. (1)

takeya (825259) | more than 8 years ago | (#13419201)

Write a small bittorrent client (there are plenty of libs out there, or for brownie points, write your own). Edgy, useful and you could even report on it to slashdot and start up a sourceforge project or something.

That or a SIP client. Voice chat is a big topic these days and you could peek at the source of projects like phonegaim to get insight for your own code.

Good luck. Those are 2 programs that I think would be useful, fun, not too hard and good for your resume!

Some advice... (4, Interesting)

CarlinWithers (861335) | more than 8 years ago | (#13419550)

I had to do a final project just last semester, and there are a few tips that I can share with you.

My project was a computer engineering project. We controlled a bunch of simple devices over the web through a server that we had set up.

One thing I learned was to have backup plans and modularity. We listed somewhere between 6-8 devices that we thought might work. We ended up getting 3 of them to work.

What was nice about that was that we could still deliver those 3 devices (which showed up the project that presented right after us which picked a single device and got it to work in a similar fashion).

But we also could scale the amount of work. If things had gone better, and we'd had a little more time, we could have added another device or two. As it is, it took us the semester to get what we did working.

I'd reccomend trying to pick a similar project where you can get a basic set of features working relatively easily, but also have a bunch of other interesting features that you can bring out if you have the time for them. That way you're guaranteed a project that does something right, and the ability to challenge yourself if you need to.

Also, always make sure to have more than one method for doing each part of the project. Inevitably you figure out that something isn't going to work out the way that you thought it would. We had to start from scratch on portions of the project a couple of times. It was immensely helpful to have a solid backup plan to start working on right away.

Hope that helps.

I know (-1, Troll)

vga_init (589198) | more than 8 years ago | (#13419581)

Write a program that can bootstrap this Apple Powermac G3. I HATE OPENFIRMWARE. ARRRRRGGH!#%(&!#^!!!

Better yet, write some software that DESTROYS ALL OPEN FIRMWARE MACHINES AND THEIR CREATORS!!3208502835103!#@%!#~#%~@!!!!

AHAHAHAHAHAHAHAHAAHAHAHAHAHHHHAHAAAAAAAAAAAAAAAA AAHAHAHAHAHAHAHAHHAAAHAHAHAHHAHAHAHAHAHHAH

Re:I know (-1, Offtopic)

Anonymous Coward | more than 8 years ago | (#13419674)

Your name looks like "vagina".

Take the series A fundraising approach... (1)

mbogosian (537034) | more than 8 years ago | (#13419692)

...pick something you already did last semester and inform your investors ^Winstructor that this was something you just completed....

A java based voice recording system (1)

sr180 (700526) | more than 8 years ago | (#13420042)

My final year project was a java applett based voice recording system. It was commercially sponsored and had to record and perform basic editing options on audio, compress it to a variety of compressed formats and then upload it to a server. Its used mainly for recording prompts to Interactive Voice Response Systems..

Here are some ideas (2, Funny)

some guy I know (229718) | more than 8 years ago | (#13420065)

Here are some ideas:
  • Write an automated teaching system that will make college professors obsolete.
  • Rewrite MS-Windows XP in Perl.
  • Write a help assistant for Open Office that takes the form of a pop-up staple named "Stapley".
  • Write a library for NASA that can determine whether a measurement is in Standard or Metric and automatically convert between them when necessary.
  • Develop a methodology for maintaining software that doesn't involove adding feature after feature over time until, after a few years, the whole thing is a bloated mess (e.g., any Microsoft project, KDE, Gnome, Mozilla, etc.).
  • Rewrite Slashcode (the software that runs Slashdot) so that it produces valid HTML.

Start with what interests you (1)

miyako (632510) | more than 8 years ago | (#13420104)

I was in a similar situation just this term at school. Althought it wasn't a senior project course, one of my programing courses has a project that basically came down to "do whatever you want, but be sure that you can demonstrate your ability to X, Y, Z and be able to justify design decisions, etc."
I found the best way to chose a project was to think of something that I found interesting, and knew enough about to be able to reasonably finish the project in a term, but that would still offer me an opportunity to learn.
In the end, I settled on writing a GUI frontend for QCL [tuwien.ac.at] since it allowed me to learn more about Qt, and I got to work with something relalted to Quantum Computing, which I've always found extremely interesting, without having to have a PhD in physics to completely understand what I was doing.
If anybody is wondering, the frontend will eventually be released on sourceforge as kqcl.
I've seen a lot of threads saying that there is no sense in doing something difficult when you can get a good grade by just following the status quo. While it's important to not be so ambitious that you set yourself up to fail, remember that taking on an interesting project that gives you the opportunity to learn something new and contribute back to the community is often it's own reward.

Think Outside the Box (1)

Ed Almos (584864) | more than 8 years ago | (#13420201)

This may work, but I should point out that my degree is in Computer Engineering and Design rather than Computer Science.

Think outside the box. Instead of thinking of a computer project that can occupy a couple of semesters think of a project that could use computing to improve its function.

By way of example, I wanted a PIC programming to control a ham radio transceiver using a program where I only had a rough flowchart. Rather than buy a programmer then struggle with the software I contacted a local university and they gave the task to one of their students. He got to work on cool hardware that had an actual purpose then write a paper on it and I got my programmed chip. Money also changed hands as (of course) all students are poor.

Ed Almos
Budapest, Hungary

Jukebox (1)

Stephen Williams (23750) | more than 8 years ago | (#13420606)

Our computer lab had a load of ghetto Sparc IPXs an similar machines, and a single Sparc 5 with audio output and speakers. In our second year, one of the other geeks hacked together a "jukebox" program that ran as a server and allowed people to telnet in and queue MP3s to be played.

For my project, I rewrote the jukebox in Java. It used the ident protocol to log users in, so no usernames/passwords were required (which was fine for a relatively friendly environment like a university network). It checked the IP address of the connecting clients, only allowing people in the lab to queue songs. The song queue was a priority queue, allowing people a certain degree of queuejumping to ensure that no one person got to dominate the queue. It also had primitive IRC-type chat functionality.

It wasn't exactly an academic masterpiece, and I have no doubt that the quality of the code would embarrass me if I were to look at it now. But it taught me Java and the basics of network code, it was loads of fun to write, and the other geeks in the lab had fun using it.

-Stephen

My Capstone (1)

malachid69 (306291) | more than 8 years ago | (#13420798)

I was an interdisciplinary student: Computers, Psychology and Writing. As such, my capstone had to find a way to bridge all 3 that all 3 departments would agree to.

I decided on AI for Games. The game I ended up doing was Mastermind. For the CS side, I did it in Java (which the school had 0 courses in at the time). For the Psychology side, I designed and implemented my own psychological test to be used for the personalities. For the Writing side, I did a Bethsheda-like Q&A to choose a personality.

The first 1/2 of the capstone we had to focus on documentation -- that included everything from goals/objectives to APIs to flowcharting the end product. The second 1/2 was actually writing & testing.

I personally liked what I worked on -- which I think is of extreme importance. You are going to spend long enough on it that it really should be something that you crave to do.

If I would have changed anything, it would have been to make it so that my project was something I could have sold right out of college -- and perhaps skipped the first couple years of the "real world" ;)

My suggestion (2, Interesting)

swillden (191260) | more than 8 years ago | (#13421148)

Here's a little project that I've been meaning to do for quite a while that I think would be a nice senior project. A full implementation would be way too much work, but a simplified version could be both accessible and useful. I think this is the sort of project that, if done well, could generate enough real-world usage and interest to make a name for the author.

A while ago I noticed that most geeky homes and small businesses have something in common: Lots of computers, few of which are backed up effectively, and most of which have disk drives that are significantly larger than needed. So it occurred to me that a backup solution could make use of this spare storage to create additional copies of important, or even all files, on different disks and in different machines. Files that already exist on multiple machines need not be duplicated further, so there would be no need to bother excluding most system files from the backup system.

If that sounds at all interesting, you can read this description [willden.org] I wrote a while ago while thinking through the issues and just threw on my web site (very plain OOo-generated HTML, sorry).

I'll get around to building this thing eventually, but I'd love to see someone use it as a project to get it started.

Project (0)

Anonymous Coward | more than 8 years ago | (#13424496)

For my senior projet/internship I created a php based toner inventory system as well as a printer control/monitor system. This way we dcould monitor all the toner usage out across the University's campus at any moment, as well as determine the status of all printers(we use 69 networked printers) at any given moment in just a few seconds. It creates dynamically generated graphs using php + mySql, depending on the conditions you pass to it. There is a lot more to the program, but that is the basics. It got me an A, and a job. Now, I just have to go and make my code pretty before throwing it on Sourceforge.

Find someone in EE or CE.. (1)

SillySnake (727102) | more than 8 years ago | (#13426640)

There are plenty of Eletrical or Computer engineers that can't code well enough to do their dream projects.. Probably much in the same way you can't design a system well enough to create yours..

I'd try to find someone in another department, who is actually intellegent enough to design something fun, but that would require a great deal of software as well..

A good example would be some sort of robot that could be entered into some sort of competition, IEEE or otherwise, that would give you more credibility with future interviewers than I found a project on the internet and rewrote it. You might even come away with an award or two as proof you rock.

For all of the people who say that your project doesn't matter, they are in one sense right, but it *IS* important to do something that showcases your ability and you. Most people couldn't build an AppleII/e from the ground up, and while no one would ever ask someone to do that, most people couldn't. Show that you're willing to take on big projects, and can produce quality work. Remember, this will do more for you and your thinking than it will your resume. Interviewing when you are 100% positive that you are qualified to do whatever they ask of you is a big advantage.

Blood Clot Tracking Software for MR imaging (1)

Cappadonna (737133) | more than 8 years ago | (#13426650)

I was a medical physics major w/ a minor in computer vision technology. As a point, your senior project will get you into the door. And believe it or not, for many IT pros, that senior project will be relevant for alteast 5 years in you ever get laid off or leave your job. I still have potential employers asking about that project and I graduate (BS, Applied Physics) in 2000. Having said that, I would suggest doing a subject that you would tinker with even if your diploma didn't depend on it. That will make the long hours in the lab pass by alot better. For me, I chose my project b/c I worked in the Comp Vision lab as a gofer/ assistant for 2 years. I was already familiar w/ the research, so I didn't mind long dry papers on energy functionals, computational hemodynamics and edge detection theory.

Why does it have to be useful? (1)

arethuza (737069) | more than 8 years ago | (#13427229)

I did a compiler from lambda calculus (and through a set of m4 macros some higher level constructs like arithmetic and conditions) to various set of combinators - from SK upwards. I even came up with a moderately novel approach to combinator evaluation.

Now this was not useful other than it taught me a lot about functional languages and some related topics such as garbage collection techniques. I found it fascinating - which was far better than "useful".

Projects at this stage of your career can be fun because you don't have to do the rigourous research that is (should be) required for postgraduate work and its not work so you don't have to worry about "maximising shareholder value".

Symbian Apps (0)

Anonymous Coward | more than 8 years ago | (#13427287)

Hi,

my project was physic engine linked to a home made 3D engine....lot of maths and such, a bit boring but good mark assured.

But i have a better idea for you : There's one useful tool that no one did open source and free until today. A remote performance monitor for symbian plateform via bluetooth. I mean we have bluetooth applications, we have task monitors....but no links... Sony Ericsson made some shit but it works only on sony ericsson devices =)

So points of the project :
  - UI showing both graphs of the phone resources, and the screen of phone
  - Virtual KBD allowing manipulation of the device from the PC
  - Possibility of scripting the application to automatize manipulation on the device

Good points of the project :
  - Bluetooth is fun and fashion =)
  - Symbian C++ is really an improvement.
  - Manipulation of remote devices via wireless connection will look very good on resume.
  - Scripting is good for health =)
  - Learning an OS your professors probably don't know.
  - If you success, i know some dozens of Symbian developpers who will kiss your feet and pay you loads of beer =)

and for god sake do it for nokias s60!! =)

It should take you some months but not the whole year so add some features like automatic skins when recognising the phone...

And just think about how people will use their phone in the future...Mobile application dev is defenitively not a waste of time...

Joannis

I have it coming up in a year too (1)

Beowulf_Boy (239340) | more than 8 years ago | (#13427629)

I'm a junior, and my major is Gaming and Simulation design. I was in engineering my freshman year, so I have a feel for hardware too.

My idea for my senior project is to make a virtual solarsystem. I would have to write the graphics engine, from the ground up, or borrow some from other engines. But I want to make a front end that you choose how many planets, what mass, what color, what size, what topography, maybe what main elements (toss some science in there too. Then you run the simulation, you can watch it in realtime or adjust the speed the simulation runs at.

Watch the planets rotate around the sun, so on and so forth.

alternative ideas (2, Interesting)

sargosis (807169) | more than 8 years ago | (#13430350)

Yuo could always try to make something that's likely to bring you some money in the long run. My senior project involves the creation and use of a particle-based defensive weapon (no, i'm not making this up). Im also currently working on getting a patent to this, so i apologize for leaving this vague. But so far, the research has allowed me to write a 60page paper on the technology as well as test data. Try it, then you won't be forced to end up like some of these other guys, complaining about their jobs.

Here's a couple... (1)

Scorchio (177053) | more than 8 years ago | (#13437447)

The one thing I didn't know about the final year project at my university was how important it was to get in as early as possible with the professor you want to supervise the project. I made the mistake of going to lectures first and turning up at 11am to find the professors with the projects I was interested in were all fully booked. I ended up working on a project dealing heavily in logic theory and prolog programming, which was fine, but not my first choice by a long shot.

A couple of interesting projects suggestions that I remember:

Aural debugger: investigation into how well the human ear can detect bugs in software. Kind of like how a mechanic may be able to diagnose problems in a machine purely by the noises it makes. Analyse code, match sounds to various constructs and find out how easily bugs can be detected through listening for unexpected sounds while running. May or may not have any practical use, but definitely interesting.

Ethernet pager: implement a paging system using interference from ethernet cabling. This was a while ago, so forgive me if I'm a little bit off with the details! Apparently it was noticed that various patterns of data sent over network were producing different flavors of interference on a small portable radio. The project was to attempt to create a pager that receives signals through this interference and a transmitter that worked by sending recognisable patterns of data over the network.

No idea if anyone tried them at the time, or at any time since...

My senior project (1)

WhiteDragon (4556) | more than 8 years ago | (#13439467)

I was a computer science major, with minors in math and physics. I wrote a program to interface with a bunch of temperature controllers being used on one of the experimental setups in the physics department. They were having grad students sit up all night recording the temperature every half hour, and setting the controller's set points manually. I wrote an application that used a medium speed serial interface to connect to the controllers, poll them, and set them at certain times. The controllers used a completely arbitrary and proprietary protocol, but it was at least documented.

What I thought was the most interesting bit (and what I am sure the PhD in the physics dept. that I was working for didn't care about at all) was that all the communication was done using a PostgreSQL database. The master application would spawn children to connect to the controllers and poll them, and put the results in the results table. Control was done by a database client application (in php, but I also experiemented with using MS Access) that would insert commands into the database's command queue table, which the master program used some triggers and pl/pgsql code to watch for changes to. I used pgsql's LISTEN and NOTIFY syntax, which I thought (and still think) to be very useful. That way I didn't have to write a seperate server process, or worry about concurrency issues.

All in all, it took about 3 months, with about 10k lines of code (I know, not that impressive, but hey, I was proud of it). It was interesting because it was the largest project I had worked on, and even though I was the only developper, I still had to do essentially software engineering and management issues.
Check for New Comments
Slashdot Login

Need an Account?

Forgot your password?
or Connect with...

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>