So it’s the last day of the semester. Wow! It’s kind of amazing to think about how I started here as an international student, and within just 4 months fell in love with this country and Virginia Tech!
The intro to unix class was an incredible experience for me. It was the first time I was experiencing the flexibility of the American education system. It was for the first time that I focused more on writing code than memorizing theory – something common in India.
It wasn’t really a walk in the park though. Some of the assignments took me a lot of time to figure out, and it became difficult because of assignments from other courses. However, the excitement and joy of figuring it out and submitting the assignment before the due date was far greater than the frustration.
I really liked how different types of assignments and quizzes were used foe the course. Not only did it keep things interesting, but also kept me on my toes throughout the semester !
Writing an assignment that might be used for a future class?! Whoa! This is the coolest assignment I’ve ever had! One of the reasons why I find it very interesting, is because it gives me an opportunity to keep my views and suggestions forward in a very good way. I have always been fascinated by assignments that connects the students to something we see or make use of in our everyday lives. Practical application of the knowledge acquired in class indeed should be the goal of each course.
The assignment that I wrote for this assignment ( haha ), is about students writing a program to mimic the way modern music applications like itunes work. Such assignments not only help students to think about how these various applications work, but also introduces them to various crucial programming concepts.
Now I have been to LUUG meetings in India, but it was never really for a course. When I read about the optional luug assignment at the beginning of the semester, the whole idea of gaining points for attending these meetings did seem a little odd to me.
It was like getting easy points for something I enjoyed doing. This assignment did seem to make sense when I found out that one of my friends had never really attended one of these, and although he initially attended these meetings for points, he soon started to really like them.
One difference that I noticed from the luug meetings I attended in India, was the level of casual interaction that took place. It took me very less effort to break the ice and get involved in discussions which ranged from discussing fps game engines to comparing android devices. I think this assignment is a great way to introduce students to something they can really enjoy and learn from.
Here’s my first ever attempt at writing poetry, as a part of an assignment for the class:
Yes, “simple” is the word
Whenever you’re in doubt
Says Unix to the world.
I used to look at computers with amazement when I was two
Never had I thought I will be able to code in python while eating stew.
Python and Unix are amazing tools I would say
And although they don’t make my life easier in any way
They help me understand programming concepts through and through!
Featured Image source - https://raw.github.com/jsantell/poet/gh-pages/img/poet.png
Alright so honestly, I thought it would be a difficult and not so… pleasant (?) task to work on a paper during Thanksgiving break. I was wrong! It’s kind of weird, but I’ve actually grown used to staying busy and full of assignments all the time. When visiting my friends in Philadelphia, this was the only task I had at hand… and I’m so glad I kept it aside to work on during Thanksgiving. You see, there are times when you need to get away from all the fun and do something intellectual… No, I’m not kidding! I actually like working on something early morning or just before going to sleep. It helps me enjoy the good times even more! Haha.. think of it as a break from the enjoyment
So anyway, working on the paper was a good experience. I read about a lot of things that I really didn’t think about before. For example, I never really thought about GUI implementation on an OS level. Reading about so many things that has helped changed the software industry was indeed a very important part of my first Thanksgiving holiday in the United States.
It’s really fun (and sometimes tiring) to see how a simple idea turns into hundreds of lines of code, followed by optimization of that code for maximum efficiency even on pre-historic computers.
The final project for the class has been coming along well. The team has decided to implement multilayer over an ad hoc connection. We did face a little hiccup when the ships were marked as points initially to test everything worked properly. I tried to integrate the correct ship size functionality without making any major changes to the code. (UPDATE – 12/19/12) This in turn, turned into a nightmare. There were issues arising due to some weird reason, which basically told the user that the spot was occupied by another user even when it was not. I realized that the only way to correct it was by restructuring the various functions that were interacting with each other.
So far so good! Let’s see how the final project turns out to be.
Alright so it’s time for something cool!
I met my project-group today to decide what we wanted to do for the final project for this class. A lot of amazing ideas were passed around and we considered the pros and cons of taking each project. One thing that we all were fixed upon doing was to keep the project interesting. As someone who loses interest in things pretty quickly, I was initially kind of afraid that I’d have problem working if my group voted on something that didn’t elicit interest in me. It was good to find out that the other members of my group though on similar lines. The most important thing that we considered while choosing the project topic was perhaps the interest-level it had, and if it was something we’d love to work on. After discussing various ideas, we chose to work on a game called Battleship. More details on that later!
So far so good! I hope everything turns out the way it should. Hey, that rhymes!
Alright so let’s go through the dreaded midterm experience… It wasn’t really that bad! I feel I could have done a lot better, and maybe if I hadn’t spent too much time trying to figure out how to work on the extra credit question , I could have prevented losing 10 points for not completing within the time limit.
The practice midterm helped a lot! Not only did it make me familiar with the pattern and revise the concepts, but also helped me mentally prepare for the test.
One thing that I really liked about the test is that it got me to use everything that I had learnt in the class. Be it using the python concepts, or just using vim – I felt I was being challenged and tested on all those fronts! And that was quite awesome, because it kept me on my toes for the entire time! Haha yeah.. I do get bored in some of the exams.
Text based games are fun! They do not take too much processing power, and you can probably write one in under two hours! That doesn’t mean that you can’t make them complex though. I have seen text based games in the past which were as simple as moving from one room to other, and I’ve also seen text based games with amazing storyline, and which give you an amazing amount of control with environment interaction. The recent related assignment on the topic got me thinking how complex these games can be really made. I mean can these games be taken to a point where you may need to hash the various components together? Or does that sound totally crazy?! It may seem so, but what if you had multiple combinations of some weapon? What if you could combine two game items to get a third item.. and then combine that item with some other item to get something unique altogether?! Now that would be a fun game to play, and to code!
It’s funny how irritating and joyful coding can become, all at the same time! This is specially true when you’re walking out of your comfort zone into unchartered turfs.
I remember using Python long back. Really really long back! I was quite comfortable when I read that the second assignment was based on Python. Little did I realize back then that my entire Saturday afternoon was going to be spent on trying to figure out the basics of this old friend.
When I looked at the assignment this morning, it gave me a mini heart-attack!
The next one hour was spent on going back and forth through basic Python tutorials, and it was not pleasant. However, the joy of figuring things out and being able to compile without any errors is enough to fuel you to push through.
Yes, homework 2 did make me nervous in the beginning, but in the end it was fun and once you figure things out on your own, you really want to jump straight into it and get your hands dirty!
Looking forward to playing some more with my dear old friend Python.