Saturday, May 5, 2012

4/30 - 5/5 CS373 Blog Post

Good morning, everyone.

The semester is officially over!  What an incredible journey it has been, and it all went by so very fast!

So how about that last exam?  I found it to be pretty difficult just because I felt kind of rushed when taking the exam.  While there were only 10 multiple choice and the rest was written, I took the longest time trying to think up of a solution for the written portion and as a result, rushed through the multiple choice a bit.  I am a bit disappointed with my results for the multiple choice so far, so I'll probably go in and see what I messed up on.  Hopefully my short answers will make up for the rest of my test!

This class has been an awesome and amazing class.  It's been tough considering everything we've learned in the class, but has been so extremely useful.  I've applied all of the things we've learned into the real world, honestly.  I've been doing some mobile app development, and things that we've talked about (especially in the second half of the semester) have really enlightened me to change what I've been doing so I can write cleaner and more efficient code.  I've also been refactoring my SQL database so that redundant data becomes minimized.  I look at what I had, and I look at how so much could go wrong with one edit in a row; so many other rows from other tables would have to be modified!  With relational database management, this is easily solved.

This class has probably been the most helpful and useful class I've ever taken at UT.  A lot of other classes teach their respective concepts and such, but most classes only go towards the theoretical aspects of what they teach.  That is, they teach theorems and concepts, but we don't necessarily get a chance to incorporate them.  Furthermore, when we do get a chance to integrate them, we attempt to based on our previous, introductory knowledge of writing code (a la 307, 315, etc).  I feel like this class, if anything, should be taken as soon as possible so that people can learn the inner aspects of developing software.  I seriously can't think of any other course that has taught me so much in so little time besides this class.  I believe it has to do with the method of teaching (Socratic method), where Downing consistently asks students questions.  Personally, as a student, I don't like getting called on and giving a wrong answer, because it makes you feel "stupid," especially if it's a relatively simple question.  Granted, people who are put on the spot don't necessarily answer as well as they could if they weren't on the spot, but it's taught me that things like this will always happen to us in the future.  In meetings where people have to present code and demonstrations in front of their team, there are bound to be questions.  And one must answer them without having to feel nervous about it.  It's helped all of us (I think) stay participated and engaged in the course, and prevents anyone from really slacking off in the class.  I really liked how the class was taught.  And of course, Professor Downing is down to earth and funny, so what else isn't to like about the class?

I feel more confident about what I write thanks to unit and acceptance testing, and I feel better about how I process things.  While I still haven't fully inhabited the "test first, code later" mechanism, I think that this will be highly useful once I get into the job industry.  Everything we've learned, be it from readings, code, projects: these techniques and tools will be used extensively in my career.  I've actually noticed in a lot of job descriptions that things such as version control, and agile methods are almost requirements to know.  While I haven't fully experienced an agile-ran environment, I know how it works, so whenever I get a job that involves that system, I know how it all will work without having to feel consistently pressured.  Relational database management and just knowing the basics of SQL have also seem to be on many job descriptions.

I actually had a phone interview a week or two ago, and the interviewer had asked me what my most helpful class was at UT.  I had told him it was this class, and I went on explaining what I learned/did in the class.  Turns out, the interviewer had also gone to UT and had taken this class with Professor Downing.  He too had stated that this was the most useful and helpful class he has ever taken.  So it seems like it's a consensus that this class is highly important and highly useful for the future of students.  I would highly recommend this class.

Professor Downing, thanks for all that you've taught me and the rest of the class.  It has already proven to be useful, and I am positive the things that we've learned in class will be applied extensively when we approach the real world.  Thank you so much!

Until next time,

Corey