The last day of finals has come and gone, and begun has the impatient F5 tapping on ASU’s student page waiting to see the grades. Not that I’m overly worried, despite quite low test averages in classes and several of my finals not going as well as I had hoped, I’m fairly confident that I pulled off all A’s and B’s. Overall this was definitely a good semester. I met a lot of people, learned a lot of useful things. Though it certainly did have some downs, Computer Networks and Distributed Software Development were both exercises in half comatose clock watching combined with frantic last minute cramming and cheat sheet creation before tests.
Computer Networks (CSE434) was a required class, therefore a necessary evil which is now done with. I had high hopes for that class in the beginning of the semester, as I was often looking into networks information on my own beforehand. Sadly, the class material was a mix of things I already knew, obscure details about protocols that I don’t really care about, and random math that the professor seemed to cram into everything he could. TCP is great and all, but when you spend entire lectures sitting around talking about congestion window sizes and estimations of round trip times, you end up feeling that unless you’re writing your own network stack you really don’t need to memorize all the details as long as you understand the concepts. It didn’t help that the professor was rather boring to listen to.
Distributed Software Development (CSE445) was thrown into my schedule almost purely because it fit nicely after one of my other classes. I really had no idea what to expect, and was hoping for information on things like programming for parallel processors and systems. The class ended up being a very, VERY, high level class on SOA, ASP.NET, WCF, and XML. The explanations were so high level that I really didn’t understand a lot of it. I can now sit here and spout out jargon like, “oh yeah, RESTFUL services are totally better than SOAP or building on top of WCF in terms of QOS,” but that doesn’t mean I can actually program any of it. Really the only thing I took away from this class was learning C# and ASP.NET, and the realization that I find web programming horribly horribly boring and am glad I decided to major in CSE instead of CS. XML is a horribly verbose and bad way to store large amounts of data, SOAP is a protocol on top of a protocol because SOC people are too lazy to write their own protocols and seem to think the OSI model should be 9 or 10 layers instead of 7, and don’t even get me started on the inherent limitations of cloud and service oriented computing (yay quad core 3GHZ processor… sitting idle while all my data goes back and forth over a 1MB/s link)…
But despite the downs, there were definitely some ups. Embedded Microprocessor Systems (CSE325) ended up probably being my favorite class. The lectures weren’t that interesting, but the projects consisted of programming low level C to run on a Coldfire MC5211 demo board. The first real project was making some RGB LEDs blink a sequence of colors by driving the color intensities with PWMs. The next project was an extension of that, adding the ability to set the sequences by commands via a computer serial port and a UART driver we wrote. After that we hooked up an SD card and talked to it via SPI in order to load/store our color sequences, also via UART commands. Finally we hooked up a Wii Nunchuck and read the joystick, button, and accelerometer information from an I2C bus and used it to change the speed and intensity of the color sequences. I feel that I learned enough in this class that I can go back to tinkering with my AVR butterfly and get a lot further than before. Before this class microprocessor manuals were rather difficult to read or understand, but now I can go through one and go, oh yeah, it says you toggle that bit and that other bit and stick some pull up resistors on this bus line and I’ll be good. I’ve definitely got a couple little side projects I’m planning to do this summer if I have the time involving some more microprocessor stuff.
Another CSE class I took, Design and Synthesis of Digital Hardware (CSE320), I walk away with mixed feelings of. The main problem with this class, one which ended up ruining it for a lot of people, was a schism between what the professor taught and what the lectures and assignments were on. The first half of the class was basically Verilog, working our way up through the basic syntax, to blocking and non-blocking assignments with time delays, to a standard way to write up FSMs. All of the assignments were projects involving Verilog, one being a dice game using an FPGA, some buttons, and an LED display, another being a full processor design. The second part of the class we got into some more interesting things like some clever ways to do hardware arithmetic (carry select adders, carry bypass adders, carry look ahead adders, carry save multipliers, Wallace tree multipliers), and some information on Flip Flop design, asynchronous circuits, and circuit timing. The tests consisted of very little Verilog, and questions such as, “design using just an unsigned adder and some gates, a sequential hardware circuit that computes a GCD of two numbers.” This involved thinking up a datapath, followed by huge amount of CSE120 type busy work (state tables, kmaps), and ending with some questions on timing. Such a question involved very little that we learned in CSE320, mostly being a review question from CSE120 and combined with some sort of digital design cleverness that you were supposed to think up in 10 minutes. The professor also showed no concern at test averages of 50%.
Last but not least is Physics II. It was certainly more interesting than Physics I, I’ve been a ham radio operator for years and have always wondered about things like Impedance and LC circuits. Now I finally understand things like how capacitors, inductors, transformers, etc work. I’m also one step closer to my plan of someday building a large Tesla coil! Plus, I can be a total geek and say, “I understand Maxwell’s Equations!”. I wonder I can get them on a T-shirt… ::google:: hey look I can!
And so another semester comes to an end. I also attempted to socialize a bit more and ended up meeting a lot of people in the process, getting to know some of them a bit better. In the off chance any of you are reading this; Brianna, Josh, Beatris, Brenton, Shawn, Aaron, Allen, and any others I spent time with either killing time between classes or sitting in the hardware lab cursing at small microcontrollers with, I hope you see you all again next semester, or perhaps even during the summer.
And now for summer! Without my education to get in the way of my learning, the side projects and possibilities are endless. Plus I’ve got lots of scifi reading to catch up on.