Sunday, October 28, 2012

Week 9 - Burnout Recovery (Oct 22 to Oct 28)

This week opened up with a nice hearty exam. The kind of exam that is designed to be so unlike any previous exam or homework ever given in the history of the class so there's absolutely nothing you can do to study except know the material inside and out and pray.

I can see the pro's to giving a test like that but overall it seems a bit unfair when you can look at your test grade and say: When I practiced with the test that was given last year, I aced it without studying, and then after studying for days, I failed the actual test? What? There's too much variability in what people will know after studying that some people get lucky and other people get screwed.

---

Luckily, OOP has reasonable, well-designed tests by comparison.

But after finishing up project 4 and recovering from the last couple of weeks of not getting enough sleep and being totally burned out, I look back on this test and it seems similarly inconsistent. Luckily when it's a project you're talking about, it's much easier to sort out the confusing issues over a long period of time but what I'm talking about is design.

I find it hard to believe that the same professor who teaches a software design class would also teach a class where good design is so readily ignored. I'm sure not a single student in this class who has ever worked with C/C++ would say that the way we're organizing the code in a reasonable way. We write all of our code in a single .h file! I mean, I understand that this makes it easier for the grader in a sense, but it makes it much more difficult for the students to deal with, and we're learning bad habits.

We've gone through the effort of learning Git/GitHub, Doxygen, UML diagrams, etc. And for some reason, we aren't using Makefiles? Why not provide us with a simple Makefile for every project and explain briefly how it works, and tell the students to update the Makefile with additional source files and header files as needed, and then encourage us to use that. Then the grader only has to type "make" and then he can test our programs. So, rather than requiring a set of files and ONLY those files, we can turn in AT LEAST the required files and any code files needed to compile our programs. This way we are free to design freely and organize our programs in a way which makes the most sense for our implementation.

In earlier projects this was a minor inconvenience, but in the next project, we are given no starter code or guidance for how to design our custom creature, "Best." I would like to put all the creature definitions in files and have a constructor which takes in a filename and reads the creature from the definition. I have no idea how they're planning to test the creatures since they said to just put the definition of the creature in the comments of the code. This doesn't make any sense.

Normally I can get around the strange restrictions the project turn in policy has been putting on us but when we're kept in the dark like this, I feel like it's very likely we're going to lose a ton of points and not know why until it's too late.

Even asking on the class forum for help hasn't yielded any usable information. =[

Pressing forward...

No comments:

Post a Comment