Today I had my first lab for Data Structures I, the same course I am working to test out of and drop. It was brutal. I wanted to beat someone. The assignment was straight-forward. Design a Computer class with three fields, the standard getter/setter methods, and a toString() method basically. The JUnit was new for me, but pretty easy. In a matter of a few minutes, I had a 30 line Computer class and then a test class that were beautiful, self-documenting and to industry standards. Then the standards for the class used my code like a piece of toilet tissue. Yep. My suddenly beautiful code looked like crap. The irony is that the instructions specifically stated "no redundant comments," but I had to comment every method with a one line description of the obvious. Complete waste of time.
What makes it worse is a piece of software Tech developed called Web-Cat. It's an automated grading tool for code, which not only tests for functionality, but for formatting as well. That's all well and good, except it docks points for things like not having a space between the class name and opening brace, or not having a space between each term in the expression 2.9*4. Really? This is a major disconnect between the industry and academia. Schools are putting focus on the wrong things. In my opinion, first and foremost, code grading code is a bad thing. People need to be grading code, first of all, to point out good practices and criticize the bad. Things like over-encapsulation, poor delegation of responsibilities, etc., come to mind. Let's not just have machines focus on how many characters are on a line. Teach people real commenting and coding practices to prepare them for a work environment. Academics need to stop making standards for the sake of having standards. It wastes everyone's time and does little to help prepare students for the industry. Hopefully I can expedite the credit by examination process for this class.
What makes it worse is a piece of software Tech developed called Web-Cat. It's an automated grading tool for code, which not only tests for functionality, but for formatting as well. That's all well and good, except it docks points for things like not having a space between the class name and opening brace, or not having a space between each term in the expression 2.9*4. Really? This is a major disconnect between the industry and academia. Schools are putting focus on the wrong things. In my opinion, first and foremost, code grading code is a bad thing. People need to be grading code, first of all, to point out good practices and criticize the bad. Things like over-encapsulation, poor delegation of responsibilities, etc., come to mind. Let's not just have machines focus on how many characters are on a line. Teach people real commenting and coding practices to prepare them for a work environment. Academics need to stop making standards for the sake of having standards. It wastes everyone's time and does little to help prepare students for the industry. Hopefully I can expedite the credit by examination process for this class.
32 Comments On This Entry

fromTheSprawl
25 August 2011 - 07:05 PM
My teacher told me that if a java class contained more than 200 lines of code then you must be doing something wrong. Your school is using a bad piece of software, I agree to you that the things needed to be graded are the ones you mentioned. When I was in school the one graded by our code checker(Sonar) was possible empty declarations, resources that are not closed, and whitespaces. It checked for major, minor and critical errors. It was a good feeling seeing you reach 100% in code standards. But we didn't have that spacing thing. Maybe suggest to your academe that what they're using will not help you and your classmates in the industry.
Still, your school needs to set standards, they just need to know what standards to set.
@blog title I agree 100%
Still, your school needs to set standards, they just need to know what standards to set.
@blog title I agree 100%


fromTheSprawl
25 August 2011 - 07:15 PM
But that would mean missing something if your professor is good with the subject, he/she might offer some advice you didn't know of. If not, guess the CBE would be more help plus it gives you peace of mind. I find that after listening to teachers drone about a particular subject and I don't understand it, I try reading on it with the internet or any CBE that is accessible to me and it clears up. Plus no teachers to tell you what you can and cannot do.

fromTheSprawl
25 August 2011 - 07:31 PM
You rock mac! Yeah I remember your tutorials using/regarding data structures in this site and I was like "wow". Still if you could do something for the poor kids( known in the past as your "classmates") then it would be neater! Save them all so that when they're unleashed to the industry you'll all be well equipped with the proper knowledge.


alias120
25 August 2011 - 07:33 PM
I would argue that code format and readability are very important concepts to teach new developers. This sounds pedantic to the point of being absurd though. I completely disagree with the idea of using automated software to grade the semantics of ones homework. The most important reason for writing neat, structured and commented code is to make life easier on the people reading it.
Sadly, sometimes we all have to bite the bullet and do things a certain way. It sucks, but at least it's temporary.
Sadly, sometimes we all have to bite the bullet and do things a certain way. It sucks, but at least it's temporary.

elgose
25 August 2011 - 08:12 PM
Design is important, and I totally agree with docking points for atrocious style, but what you described is overkill. Especially considering many IDE's give you the ability to define a style and auto-apply it.
I understand what they're trying to do. I see Data Structures as an early programming class (at my school it's the logical continuation from CS1->CS2->Data Struct), and therefore it may be littered with reinforcing the basics (which explains commenting obvious methods). But this is where human subjection comes into play, otherwise we're simply learning to program to trick some computer into thinking our code is perfect, rather than learning to program to solve challenges and meet requirements.
Good post, and not sure you'll really miss that much if you test out, so good luck!
I understand what they're trying to do. I see Data Structures as an early programming class (at my school it's the logical continuation from CS1->CS2->Data Struct), and therefore it may be littered with reinforcing the basics (which explains commenting obvious methods). But this is where human subjection comes into play, otherwise we're simply learning to program to trick some computer into thinking our code is perfect, rather than learning to program to solve challenges and meet requirements.
Good post, and not sure you'll really miss that much if you test out, so good luck!

alias120
25 August 2011 - 08:30 PM
That is my biggest problem with how the instructors are grading the students homework. As macosx stated, code is made to be read by people. It is a complete benefit to us, not only because it allows those who read it to easily understand it, but from a design standpoint one can more readily ensure that they are not making a mistake. There is a reason there are many different design paradigms, without some continuity we are left with a mess of "Well, this works but I am not sure how". Everyone does have their own particular style though, being discounted points because you didn't put enough space between a class declaration sounds absurd to me.

Martyr2
25 August 2011 - 09:19 PM
Do realize that you may very well end up at a company who does have a strict coding conventions. I don't believe in software grading software, but do realize that in industry we all have certainly hit one point in our career where we had to change style a little. If your company tells you to use Hungarian notation, you have to use Hungarian notation.
Half of your success in school isn't going to be just the content mac, it is going to be navigating and adapting to new styles of doing things. Just learn their style and proceed.
Half of your success in school isn't going to be just the content mac, it is going to be navigating and adapting to new styles of doing things. Just learn their style and proceed.


Topher84
25 August 2011 - 10:48 PM
The upper level classes may not stress style because by the time you get there, you should have an idea of what you are doing. You have to realize you are in an entry level class and you have cater to the lowest intelligence level. The worst thing you could do is act like a complete tool and try to b a know it all. Believe me, you will get labled in your department really fast if you pull that crap.Really, this is a good lesson of real world work. There are standards and you have to follow them regardless of how you reel about them. Welcome to college!


Shane Hudson
26 August 2011 - 05:14 AM
For my Univerity interview I said I want to take things from research stages to actual products as the majority of research will never be used. He kind of frowned at the idea of industry!

xclite
26 August 2011 - 08:45 AM
Webcat is overemphasized in the lower classes. The last class I used it for was Data Structures I - the style guide they enforce is bullshit. If you can test out of this, it's likely you won't have to deal with it again.
The biggest obstacle to students who were learning to program in that class was Webcat, in my opinion, and I TAd it for 2 years.
The biggest obstacle to students who were learning to program in that class was Webcat, in my opinion, and I TAd it for 2 years.

ishkabible
26 August 2011 - 06:17 PM
odd note, my mom was on the "devolpment team" of Web-Cat. she didn't code anything but she tested it from a teachers perspective and did a lot of marketing for it. why it was labeled "development team", i don't know.

ishkabible
26 August 2011 - 06:18 PM
also to my understanding it's not just for code. elementary teachers use it to grade tests and what not, and apparently it can "grade" code too.

jon.kiparsky
26 August 2011 - 07:18 PM
s/Academia/My Professor/
s/Industry/a Student/
You got a lousy professor, and possibly a lousy school. Don't buy into the "academia sucks" nonsense. It's Sturgeon's Law: yes, 90% of what's done in academia is crap, because 90% of everything is crap. The crap percentage is probably closer to 98% in industry, because in industry you can hide your work, so only your co-workers see it. Trust me - the worst coders I've ever seen have been the ones who go around yelling about how "academia sucks". The stuff they get away with is ludicrous.
What we need in academia is more guys like you who care about the details of good coding - you should make some extra cash tutoring the kids in the DS&A course, it sounds like they'll need it, given that prof.
s/Industry/a Student/
You got a lousy professor, and possibly a lousy school. Don't buy into the "academia sucks" nonsense. It's Sturgeon's Law: yes, 90% of what's done in academia is crap, because 90% of everything is crap. The crap percentage is probably closer to 98% in industry, because in industry you can hide your work, so only your co-workers see it. Trust me - the worst coders I've ever seen have been the ones who go around yelling about how "academia sucks". The stuff they get away with is ludicrous.
What we need in academia is more guys like you who care about the details of good coding - you should make some extra cash tutoring the kids in the DS&A course, it sounds like they'll need it, given that prof.
← January 2021 →
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
My Blog Links
Recent Entries
Recent Comments
Search My Blog
1 user(s) viewing
1 Guests
0 member(s)
0 anonymous member(s)
0 member(s)
0 anonymous member(s)