It is generally a sign of how good the faculty are at an institution based on how they respond to this sort of exceptionalism.
It is generally a sign of how good the faculty are at an institution based on how they respond to this sort of exceptionalism.
The first lab featured a typing test app where you had to be able to type 40wpm or they made you drop the class. The app was a DOS app that a) made you type a certain bit of unchanging text every time for the test, and if you finished it type it again until you made a certain number of mistakes.
I wrote a borland basic TSR that pretended to be a keyboard, and typed in the corpus repeatedly.
The instructor apologized repeatedly for making me take the class, and looked utterly terrified of me for the rest of the semester after receiving my 300,000wpm test result.
I wanted to make it a proper GUI-style board with arrow key movement, randomised mines (the assignment tasked us with reading mine locations from stdin at the start), auto-expanding zeros, varying board sizes...so I did.
However, I knew the assignment would be marked on automated test results. I wanted to show off, but still pass the auto-tests. So I made it ask for game "mode" at the start, implementing both the requested behavior and my desired behavior. But if stdin wasn't a tty, it just did the requested behaviour without asking, thus foiling the tests.
That said, I can see an argument that an RPN calculator "trivializes" the assignment compared to an infix calculator, especially if the latter was supposed to do order-of-operations.
But that experience did teach me a valuable lesson -- always follow the specifications as close as possible, don't try to innovate (unless working on your own projects). And, I've learned to spot (and explain) contradictory / intractable specifications up front.
I am personally doubly surprised as GP to find two people in a discussion about Computer Science at a college level that have not heard of RPN before. For what it's worth!
If you have taken an introduction to the Unix/Linux shell, you most probably saw the dc command.
I managed to implement it using only wires, with no extra gates at all. Apparently this surprised the instructors; the best known solution used two extra gates. They gave full marks to me, but also to the many students who used two gates. Given that the exam was designed to not have anyone answer everything correctly in the time allotted and was graded on a curve, I found this distasteful: I had devoted extra time to finding the optimal solution, at the expense of spending more time on other parts of the exam. The instructors were not sympathetic, and I got a B on the exam despite teaching them something new.
Sounds like a good lesson for someone graduating into the workforce ;)
I wrote up a pretty simple implementation and realized I had 50 minutes left to sit around, so I started refactoring it into classes and writing unit tests. I was pretty happy with the result, but I turned in both versions just in case I would get docked for not following the instructions exactly.
Got a B. Other people in the class who did a straight imperative style got As.
This is what computer science instruction is like at a for-profit college.