Skip to main content

CST 338 - Week 6

Dueling cards? Who ever knew that would be the assignment for this week's class? I guess the professor and TA did, because that's what our group worked on this week.

Our program this week was largely an extension on the card game we did last week, although this time with more rules. In addition, we also did major restructuring of our backend code by following the Model-View-Controller architecture.

Model-View-Controller, or MVC for short, describes an architectural pattern where a program is divided into three independent, yet directly related subunits: the model contains data structures, variables, and the fundamental internal logic of the program, the controller takes user input and communicates with the model to manipulate internal data, and finally, the "view" provides a graphical display of the program to the user, and updates this display accordingly. 

Our team found the assignment challenging just like last week, and the most difficult part was getting the computer's AI working correctly, but we didn't find it as labor intensive as last week because we already had most of the groundwork done from the first version of our card game. Overall, it was a fun assignment.

UML Diagrams
I work in software test for a large government contractor. I don't deal directly with code myself at the office, but I am pretty close to certain software developers, especially the folks in the embedded software department, and I have seen numerous UML diagrams in their software design description and interface design description documents. I have also seen UML-style diagrams for non-software related items such as hardware systems overview diagrams. They are usually smaller and more abstract than the ones we make for this class, but it seems as if there are many more of them around.

Multithreading
Multithreading is something I've always been curious about in terms of how it works, but it's never something I have learned or done personally until now. Even though the use of multithreading in our program was quite simple compared to some other programs, it gave me better insight into how it works. In my old data structures class, I did have to implement some sort of job scheduling queue that ran in a loop, and I found that assignment very difficult. If I had known about how to utilize multithreading in Java back then, it probably would've made writing that program a lot easier.

Patterns
Patterns are useful for getting a rough idea on how to structure a program, as long as you avoid falling into the trap of following them too closely to the point where it restricts creativity and flow in your program. Personally, I believe the best design patterns are structured enough to make code easy to understand and consistent while allowing for flexibility. 


Comments

Popular posts from this blog

CST 300 - Week 4

Educational Goals My current educational goals are to finish my bachelor's degree in computer science while also gaining a deep understanding of the fundamentals along the way. I have always believed that a solid understanding of the fundamentals goes a long way in any skill since you always refer back to them. When I have gotten stuck on a problem or some skill in the past, I have always taken a step back, broken down things into smaller pieces and remembered my fundamentals, and doing so has helped me through a lot of academic and professional work so far. Although I already know basic programming and data structures, I want to learn more about them and discover new ways of thinking in order to solve complex problems.  Career Goals I started a career as a full-time software test analyst about two months ago. Even though my job doesn't involve a lot of programming, getting a degree in computer science would be really helpful in all aspects of my career, such as identif

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 6

This week, our group made the last touches to CONVEE, our AAC application for our capstone project, and then we proceeded to record and publish the (first) draft of our video (if it's approved, it'll be the last draft). I'm very proud of the three of us and what we have accomplished a little over eight weeks. It's been rewarding to watch our application grow from the initial planning stages to what it is now. Abby plans to take over CONVEE after capstone and expand on it further, and I'm positive she'll do great things with it in the future. I might still help out with development and other related stuff once in a while. I also took the ETS Computer Science Field Test, which was a very disappointing experience. First, the test is too wide in scope, and it is littered with questions about specific niche topics not always taught in classes. Second, setting up the testing application was slow and awkward, and I had to wait 30 minutes for the proctor to set everythi