Published at: 07:01 pm - Sunday January 03 2010
So, after what seemed like the longest semester ever, I’m finally done with 2 and a half years of college. This semester was definitely the most challenging, but probably taught me the most specifically related to my major. I’ll give a brief overview of each course, and some of the more interesting things that I took away from them.
Digital Systems Design (DSD) – I realized how much I take for granted in everyday life from this course; everytime you hit a button, or a door opens for you, or anything happens in your life thats automated, theres a digital system responsible for it. We learned how to construct basic systems from states, and multi-part systems using datapath and control designs. Although we never got a chance to do the final lab, which was to design and implement VHDL programming to have a robot follow a hand drawn line by itself (a goal I had set for myself at the beginning of the semester), I really enjoyed this class. For the final project, each group had to design and implement a game of some sort in VHDL – my partner and I ended up re-creating the old arcade classic PONG, which turned out really nice. Other groups did things ranging from DDR to Wack-a-Mole to a maze, all of which were very interesting.
Electronics I – Electronics was an interesting class, but unfortunately became a harder one as the semester went on. It was a continuation of Circuits from sophomore year, but incorporated some other material, and required us to apply a little more analytical thinking to solve the problems. We covered op-amps, BJT transistors, and MOSFET transistors, and learned how to construct various everyday circuits, ranging from simple TTL IC circuits to Function Generators. For the final project, again working with a partner, we were required to use our knowledge of the various components to construct a more complex circuit. Some of the options given were a temperature controller, function generator, dual-slope analog-to-digital converter, and motor controller. My partner and I chose the function generator for this one, and were able to produce a square wave, triangle wave, and a partial sine wave using a combination of op-amps, while allowing the user to select the frequency (from a choice of 3 presets) and the amplitude (again, from 3 presets).
Signals and Systems – As I said in my original post when the semester started, “by far the class that seems that its going to require the most work this semester” – and it definitely followed by original assumption. While I felt like I was constantly living in the library, all of the hard work paid off in the end. We learned how to handle both digital and analog signals, performing Fourier Transforms and Z/Laplace Transforms to manipulate the signals in both the time and frequency domains. The final project for this class consisted of taking two wave files containing audio, and theoretically designing the necessary hardware in MATLAB to transmit both over a single cable. This required us to take the Discrete Fourier Transform of each, shift one signal to avoid overlap, multiplex the two signals together – at which point they are transmitted over the cable – separate the signals back out, down shift the shifted signal, and finally get out both original signals. Again, as with DSD, this one of those things that I take for granted everyday, and understanding how things like cell phones work, is definitely interesting.
Cryptography – Where to start with Crpytography? We learned how ciphers were used back in the time of Ceaser, how to crack a more modern cipher (Vigenere) through brute force and a computer, the theory behind public key cryptography (discrete logarithms), and how to use the RSA algorithm. Cryptography was among my favorite classes that I’ve taken at Binghamton so far, and helped me to realize that I’m more interested in the software aspects of Computer Engineering rather than the hardware aspects. For our project, we had to code the algorithms necessary to perform the RSA algorithm in C. While this originally seemed easy – it required us to write copy, addition, subtraction, multiplication, mod, and exponentiation functions – it became a little harder when we realized that we could not use any of the built in functions, but rather had to perform each operation as we did when we were younger, going digit by digit, and breaking it down to the most basic functions. I’ll post my code in the next few weeks – there was a small error that stopped it from performing the final calculation in the end.