Skip to main content

CST 338 - Week 3

In this week's material, we expanded on what we started previously about arrays, classes, and inheritance, and put it together to create a program that simulates a deck of 52 standard playing cards and then performs basic card operations such as shuffling a deck and dealing it to "players", which are classified as Hand objects (objects that store Card objects in internal arrays).

I haven't gotten this program any kind of approval or convinced some sort of online gambling site to use it for some of the backend they use to run their casino games, but I'll keep all of you readers of this lovely blog once I do, and how much money I make (or lose) off it.

Disclaimer: I am not promoting or endorsing gambling with your assets.

Speaking of arrays, the largest multi-dimensional array I've ever used was a 10 x 10 array that an old professor of mine came up with for a simulated "Battleship" program in another class I took early in my computer science career. He came up with the classes to generate the playing field, and we had to simulate multiple games amongst two players with wins/losses/ships sunk. It was an entertaining assignment to run once my partner and I got everything working together.

I don't particularly think any single array size would be unwieldy to work with, but the worst ones would be arrays that cause memory leaks have some algorithms with awful runtimes, such as O(n^3), or the absolute worst: cause out of bounds errors. Thankfully, I've never seen such code both in school and browsing around open source projects that would be so buggy, and I don't want to think about it. However, I have a feeling I will need to face my fears eventually and fix such code in the future, so I must prepare myself mentally now.

Inheritance is a beautiful thing about object-oriented programming, and its biggest strength is simplifying program structure and allowing the reuse of good code. One of the earliest examples of when I used inheritance in code was in a homework assignment to create four classes, one superclass and three subclasses. My superclass was "Aircraft", and the subclasses were "Fighter", "Bomber", and "Cargo", and the superclass defined attributes such as weight, number of engines, and number of crew. I thought it was a simple and elegant solution to demonstrate inheritance. 




Comments

Popular posts from this blog

CST 499 - Week 7

This week, our group finished recording and editing our capstone project video and prepared our presentation for the capstone festival. Although I wish the capstone festival was held in person (and it could not due to current circumstances), I am excited to show off our project and hard work to other computer science students, friends, and family. I hope they'll enjoy it and learn something cool while doing so. 

The Final Journal

It's the end of a long, four year journey, and what a journey it has been. I never thought I could pull off finishing my second bachelor's degree four years ago when I first went to that introduction to programming class at my community college. I would like to thank all the friends I've made along the way and the people who have helped me through the last two years. Although it was difficult at times taking class while working 40+ hours a week, I'm proud of myself for making it through. I don't think I'll be a student enrolled in classes anytime soon, but I'll always be a lifelong student. See you all around.

CST 499 - Week 3

This week, we finished our ILP portfolios and turned in the final versions of our resume and cover letter. My group also completed the first part of the capstone report. I'll admit that creating a portfolio showcasing my past work was not at the top of my priority list when I first started studying computer science, although at this point in my educational and professional career I've learned how important it is to have such a portfolio. Like other creative professions, having a solid body of work to show to a potential employer, or even for personal documentation is one of the best ways to display your talents as an engineer. Also, all the assignments I've completed during my academic career, both at CSUMB and elsewhere, have given me a good start to my portfolio. I tend to prefer classic, plain styling like  Brian Kernighan's  home page (he has a pretty nice portfolio too), although I've come to appreciate highly stylized portfolios that make use of WebKit ani...