If you find the problems presented in Programming Challenges or The Algorithm Design Manual interesting, you are the kind of person who should think about going to graduate school. Graduate study in Computer Science involves courses in advanced topics that build upon what you learned as an undergraduate, but more importantly doing new and original research in the area of your choice.
Making the finals of the ACM International Collegiate Programming Contest or the International Olympiad on Informatics, or even being a top finisher in a regional contest is a tremendous achievement. It clearly suggests that you have the right stuff for advanced study. I would certainly encourage you to continue your studies, ideally by coming to work with me (Steven Skiena) at Stony Brook! My group does research in a variety of interesting topics in algorithms and discrete mathematics.
Stony Brook provides full financial support for all admitted Ph.D. students, including all tuition and fees plus enough of a stipend to live on comfortably if not lavishly.
Here are some hints to help you with the application process:
These days, every Computer Science faculty member gets a tremendous number of unsolicited emails from students wanting to know their admission chances or whether the faculty member has a research assistantship to give. As described above, Stony Brook provides full financial support for all admitted Ph.D. students, usually initially as a teaching assistant. I, like almost all other faculty, do not support Ph.D students as research assistants until after they pass our Ph.D qualifying exam, which is typically taken nine months after your arrival at Stony Brook.
Steven Skiena
Professor, Computer Science
SUNY Stony Brook