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!
I believe group discussions in class are always fun and interesting ways to learn. Not only do they give you an opportunity to interact with other students, but also helps you come across ideas that otherwise may have been overlooked.
One of the key aspects of such discussion is active participation by all the members. Sometimes there’s also a noticeable difference between how much information is presented by each member. For instance, you may have one member giving pretty good amount of information on a topic, but there might also be a member who just puts forth a simple introduction. Peer evaluation thus becomes an important factor in such group discussions.
Another important factor is to make sure that group members clearly understand what others are trying to communicate. Although this issue usually doesn’t usually arise, it is bound to take place if groups don’t have sufficient time for each member to cover their topic.
Overall these group discussions are a good way to learn things that you’re probably going to go over later.