"Is CMSC 435 right for me?"

Let's talk about expectations ...

By the time you are eligible to take CMSC 435, we believe you know how to write a program. Do you know how to write the right program? To us, "right" means something more than "doesn't seg-fault on release tests in a submit server." Can you craft those tests so you will have confidence that any program passing them will be an acceptible solution to the original problem? Can you express a possible solution to that problem so any literate practitioner can follow it to a successful outcome? None of the steps you call out can be hand waves or say "a miracle happens here".

Programming turns out to be the smallest piece of the development puzzle - it's the easy part, in fact - so if you view this class as one in which all you must do is just show you can write a bigger program, then we'll be off to a rocky start. We want to help you learn how to 'program smarter, not harder.' After all, why write a big program when a small solution will suffice? Also, why write a program any more times than necessary? Bugs are usually pretty costly to remove, so we advocate not building them in the first place.

Getting to the point where you have code right usually requires that you get the lot of moving parts to work together smoothly: the design, the build process, the team members' efforts, the configuration of support tools and underlying platforms on which applications will run, and a whole lot more. Doing all that under budget constraints and with deadlines, and then achieving predictable outcomes ... that is what we're about.

Programming is the easy part.

For students thinking about CMSC 435, we offer a field guide for recognizing whether this course is for you. Please consider these statements:

The more you agree with these statements, the more we know that CMSC435 is for you!

Copyright © 2017-2024 James M. Purtilo