A week ago the first part of course “From Nand to Tetris” by Noam Nisan and Shimon Schocken has started. I am in the middle of solving first week (01) assignments and the more I write the more fun I have. Check it out yourself, it looks interesting.
While MOOC popularity is still on the rise I think the quality of the courses is dropping. And so it is a pleasure to see a new solid course — “Interactive Computer Graphics” by Prof. Takeo Igarashi. Judging from two weeks so far it is very inspiring, refreshing and simply entertaining — if you are interested in graphics, animation, user interface you should enjoy it as well.
Without any doubt I highly recommend enrolling on Compilers course by Prof. Alex Aiken. Since I had some time to make preparations I decided to include skeleton project for NLT generator, and the way COOL assignments are organized made me refine some features of NLT.
Among others there is one which existence derives from limitation of C# — you cannot define
enum which inherits from the other
enum despite the fact the
enum in C# is strong alias of
int (and you can inherit classes containing
ints as you like). In other words if you have to define constant integer values gradually you have to use old boring
ints (and lose value safety).
I am far from reaching
enums in Skila but I won’t make the same mistake. Anyway, both frameworks — COOL C# and NLT — are uploaded and waiting for you!
I confess — I am a traitor. Over a week ago I enrolled in Coursera course “Discrete Optimization” by Prof. Pascal Van Hentenryck and it is frustratingly interesting if I may say that. Since I love computational challenges I was hooked in since the first assignment. I tried to keep the weekend only for Skila, but I failed — writing one thing, and thinking about other makes no sense, so I switched and worked on DO almost entire Sunday. But don’t despair, I am a thorough guy, I wrote down how many hours I borrowed from Skila.
It doesn’t mean I did nothing — however only a little additions and improvements:
124” for decimal, “
0xCAFE” for hexadecimal, “
0o57” for octal and “
0b010101” for binary,
450_010” is exactly the same as “
450010” only reading is easier,
Next point is exposing back shadowed methods — I have in mind three cases:
using base::foo(Int); using base::foo(*); using base::foo;
The first one brings up method
foo with given signature, joker “
*” in the second line brings all
foo methods. And third one is a shortcut — if there is only one method
foo in inherited class it will be brought up. If there are more — compiler will give you an error.
And that’s all for the Saturday, I am running back to DO assignments…