In looking at the CS1 course at SUNY, csc212, it was difficult to find elements of it which would blend into cs15. Their introductory course is not about OO but about java. The whole course tends to focus on solving problems in java, not on design or programming in OO, the backbone of cs15. As such, it was difficult to find aspects of their curriculum which even was within the same scope as ours.
The focus of csc212 seems to be on the written tests, which I don't think should be a part of cs15. There are several programming assignments, but they deal mostly with textual I/O and data manipulation without mentioning OO. I think that this is certainly a valid application of cs, and one that is frequently taught at the introductory level, I just don't think that it has a place in cs15.
While clearly csc212 is a very different course than cs15 with a very different philosophy, they introduce the idea of a library early on. The idea behind some of the projects is build a component which can be used again in later projects. While this concept is talked about in cs15, it is never actually inplemented. It could be a very valuable lesson to have to make few objects which have applications in multiple programs.
The message that reuasable and extensable code and objects are a good thing is an idea that is never put to the test in cs15. A project which builds on this concept would not only emphasize the importance of extensability and generality in one instance, but for projects which don't build on each other.
Increasingly annoyed by his presence, the nation acts as one to exile (after discarding some other ideas) Adam Leventhal to sparsely populated regions (like Canada). The general idea being that having only himself to talk to, Adam would bring upon himself the same terrible fate that befalls his neighbors in the Sunlab. Of course, to stay up to date on the latest java technologies, Adam insists on taking his Mac with him wherever he goes.
But much like a landfill, toxic waste dump, or extremist cult no one wants to have an Adam Leventhal living in their state, so Adam is forced to constantly be on the move.
Consequently, Adam is forever having to move his Mac around with him. What a pain! While Adam is the elite java hacker, he can't come up with a good solution to his problem. No matter how hard he tries to fix the problem, he just can't bring back those groovy days when he was just a boy with his Mac. That's where you come in (and bear with me here).
Your task is to create a keyboard interface that can not just be moved from state to state, but from program to program.
The idea behind this class you will create is that it is general enough to
fit into many other programs. But how do you make it general enough to
work anywhere? Each key will be associated with a
which the client program passes in. The
described in the GP documentation.
The Big Idea is that you can pass in
tie them to certain keys.
Your Keyboard class will need to be able manipulate the
GP.Doable, letter interaction in as many ways as I don't have
time to think about right now.
I hope that I'm getting my point accross with all this. I think that this is really a valuable assignment: it is a concrete application of a important topic in cs15.