Friday, June 15, 2018

CST 499: Week 8

CST 499 Week 8

The journey to achieving a degree in Computer Science has been challenging, rewarding, and eye opening. This week has been focused on polishing my game and getting my capstone video ready. I look forward to expanding on this Unreal Engine prototype. The journey has just begun...

Tuesday, June 12, 2018

CST 499 Week 7

CST 499 Week 7

With only 1 more week left of school, it has been an amazing journey in getting my Bachelor's degree in Computer Science. This week has consisted of many long hours at night getting my project to where I want it to be. I finished my final report at a whopping 42 pages in length. I also finished the essentials of having a game prototype. I plan to make a few tweaks to the game over the next 3 days. As I type, I realize that I still need to have my final capstone video complete and hope to have a draft video up tonight. I anticipate not finishing my video until Friday night.

Wednesday, June 6, 2018

CST 499 Week 6

CST 499 Week 6

This week I was able to get functions for the character to take and use objects working along with creating HUD's for the player. I created an in game HUD and an inventory HUD. I was able to get the ability for the player to utilized the inventory working as well and started working on the character's health aspect. I met with my client this week. He was able to get a previous version of the game loaded but could not get the most current version loaded. I will have to solve to figure out why this is so. I was unable to take my ETS test this week as there was a miscommunication with the testing agency. I plan to take my ETS test this Friday.

Wednesday, May 30, 2018

CST 499 - Week 5

CST 499 - Week 5

This week we were able to review how to give a successful presentation. I was also able to review the ETS computer science field test. In implementing an incremental grow and shrink function. I found it difficult to also implement it with the smooth grow and shrink functionality of the character. This ended up taking more time than expected. I was however able to get this successfully completed. I also was able to successfuly make my character fly when small via a jetpack. I found this weeks work to be both challenging and rewarding. I can't wait to see what the next week brings.

Tuesday, May 22, 2018

CST 499 Week 4

CST 499 Week 4

This week we were able to view some good tips regarding job searching an interview tips. I also was able to complete my website which can be accessed here

This week was all about smoothing out the grow and shrink function for my character. I was able to implement a seamless growth and shrink function. When messing with the characters size, I also realized that they were not moving "normally" so I had to figure out how to iron out the movement physics of a larger or smaller character. I was able to make up a few hours of work but need to work harder next week to get back on track.

My advisor gave me great advice regarding keeping a project timeline and prioritization.

Tuesday, May 15, 2018

CST 499 Week 3

CST 499 Week 3

This week I received some good feedback on both my resume and LinkedIn profile for seeking a job in the industry. I need to add projects to both to showcase what I have done in school over the past years since I have no work experience in the industry.

I created a commercial for my Capstone project which was fun and excited me to create more. The commercial consists of the initial character build along with interchangeable camera and showcase of shrink and grow functions.

Here is the commercial:


I got a bit behind due to family functions but hope to get back on track next week.

Tuesday, May 8, 2018

CST 499 Week 2

CST 499 Week 2

This week was mainly used to work on my project. We received some good pointers on job hunting, resume building, and cover letters. I was able to finalize my resume and cover letter.

Last weeks article was in regards to holding successful team meetings. Successful team meetings have 3 parts to them. This is the planning phase, the actual meeting phase, and the post meeting phase. During the planning phase, you should layout who should be present for a meeting and the goals outlined for the meeting. Also evaluate whether a meeting is even necessary. Sometimes a goal can be achieved by a simple string of emails. As a team leader, you want to make sure everyone of importance can attend the set meeting; otherwise, it may be wiser to postpone the meeting to allow for everyone to contribute and achieve the goal. You should provide documentation before the meeting to allow the people attending to review and form ideas ahead of time. More can come from the meeting when the people attending have time to think about the agenda. During the meeting, the team leader should set a positive tone and keep on track with the agenda. Of course, the documents distributed before the meeting should be used during the meeting. You do not want to set a precedence of people feeling pre-distributed work is unimportant. As team leader you also want to make sure everyone participates in the meeting. Finally, you want to create an action plan for post meeting follow up. After the meeting, meeting minutes and the action plan should be published within 24 hours. It is important to make good on the action plan and follow up with everyone at the established time on their current status on the action plan. Finally a debrief of the meeting is important where everyone is allowed to discuss what went well and what they would change about the meeting. Using these meeting principles can help a team leader achieve the goals they strive for within their team. I hope to be a team lead in software development and using these principles will help me when the time arises.

Tuesday, May 1, 2018

CST 499 Week 1

CST 499 Week 1

This weeks article was in regards to holding successful team meetings. Successful team meetings have 3 parts to them. This is the planning phase, the actual meeting phase, and the post meeting phase. During the planning phase, you should layout who should be present for a meeting and the goals outlined for the meeting. Also evaluate whether a meeting is even necessary. Sometimes a goal can be achieved by a simple string of emails. As a team leader, you want to make sure everyone of importance can attend the set meeting; otherwise, it may be wiser to postpone the meeting to allow for everyone to contribute and achieve the goal. You should provide documentation before the meeting to allow the people attending to review and form ideas ahead of time. More can come from the meeting when the people attending have time to think about the agenda. During the meeting, the team leader should set a positive tone and keep on track with the agenda. Of course, the documents distributed before the meeting should be used during the meeting. You do not want to set a precedence of people feeling pre-distributed work is unimportant. As team leader you also want to make sure everyone participates in the meeting. Finally, you want to create an action plan for post meeting follow up. After the meeting, meeting minutes and the action plan should be published within 24 hours. It is important to make good on the action plan and follow up with everyone at the established time on their current status on the action plan. Finally a debrief of the meeting is important where everyone is allowed to discuss what went well and what they would change about the meeting. Using these meeting principles can help a team leader achieve the goals they strive for within their team. I hope to be a team lead in software development and using these principles will help me when the time arises.

Saturday, April 21, 2018

CST 438 Week 8

CST 438 Week 8

This course was very informative as to the design process of larger scale projects as a software engineer. The agile and waterfall processes were explored. The course emphasized the importance of communication and quality of product throughout the development cycle. It was discovered that there are many design patterns utilized by software engineers and I feel that I have just touched the surface of this. Implementing design patterns is a skill that only gets better with more practice. We were also able to explore the importance of continuous testing throughout the design process. A good piece of code has high cohesion with low coupling. Also as has been drilled in me throughout my studies, detailed commenting is essential to be a successful software engineer and part of a larger team. I enjoyed working with the team on this project.

Tuesday, April 17, 2018

CST 438 Week 7

CST 438 Week 7

This week we further explored the various design patterns that a software engineer can implement. There are many different ways to tackle your problem and it is apparent that practice is the only way to get better at implementing design patterns to be a successful programmer. These patterns help to simply the code, DRY the code (Don't repeat yourself), follow SOLID design principle, and help to make the code extensible and reusable. 

I looked at our project and decided to implement the Filter Pattern aka the Criteria Pattern. This was a perfect use case for filtering our movies to be able to choose from the best movie and can easily be implemented should the code be expanded on. A Filter pattern is a design pattern that enables developers to filter a set of objects using different criteria and chaining them in a decoupled way through logical operations. This design pattern falls under a structural pattern.

Tuesday, April 10, 2018

CST 438 Week 6

CST 438 Week 6

This week we learned about the various design patterns and principles. It is good to be familiar with design patterns as they help developers learn software design easier and faster. Design patterns can be categorized as Creational, Behavioral, and Structural. Creational patterns allow for creating objects while hiding the creation logic. This gives the code more flexibility. Behavioral patterns are concerned with communication between objects. Structural patterns involve inheritence to create intefaces and define ways to compose objects to obtain new functionalities.

As for our project, this week I was able to get movies.html? to sink with the appropriate movieId
along with pictures for each movie. I also created a method to automatically move a movie to nowPlaying when it is passed it's release date. 

Tuesday, April 3, 2018

CST 438 Week 5

CST 438 Week 5

This week we learned about Gantt charts. I have studied Gantt charts before but this was a good refresher on the topic. We also learned about earned value and velocity for measing progress in our project through Agile development. We also applied the test-driven development process in our projects. We had to create test cases in JUnit to test our methods. The ability to understand github and branching within github has been essential to our development process. Our team was able to get a prototype website up for our Moviehouse website. The initial site can access our in memory database. We have built our website with Java Springboot framework while utilizing Thymeleaf for web development. This project has been challenging so far but I am grateful that we chose to do the project in a way that we are unfamiliar. It has been good to put another form of web development in my belt.

Tuesday, March 27, 2018

CST 438 Week 4

CST 438 Week 4

This week we learned about the importance of gathering and documenting requirements during the development cycle. We learned to use class responsibility collaboration as a design tool for creating class diagrams. We were also able to learn and create UML diagrams for our project. The UML diagrams utilized were use case, class, sequence, and deployment diagrams. All of these diagrams are useful in creating a blueprint for how to code and design your project.

I mainly worked on the design class and deployment diagrams:



Wednesday, March 21, 2018

CST 438 Week 3

CST 438 Week 3

This week we learned about the differences of white box and black box testing. White box testing takes into account the internal mechanism of a system. Black box testing has no visibility to the code and the test cases are written based on input and output functionality. Although black box testing is not controlled, meaning it only finds symptoms of problems, it is still necessary to find different types of faults that white box testing may miss.

During the assignment, I had trouble with question #10 which asked to develop test cases for different scenarios. I felt the text did not provide adequate instruction for me to efficiently figure out this last problem. I hope to get good feedback from the professor as to how to go about this problem.

This week we were able to get a simple hello world program written in the language and framework we will be using for our group project. Our next step is to build a database to utilize for the movie house website that we will be developing for.

Tuesday, March 13, 2018

CST 438 Week 2

CST 438 Week 2

This week we learned about how to effectively utilize github for project management. It was explored how to properly use branches for version control. We were also introduced to using Pivotal Tracker as an effective project management tool.

We met for the first time as a group and I liked how quickly we were able to come to an agreement for our project. We decided to build a movie ticketing system for a local movie house. We created our git repository, slack site for communication, and pivotal tracker page for project management. We decided to hold our sprint planning on Sundays at 6pm and scrum meetings on Thursdays at 7pm. I am looking forward to seeing the outcome of this project.

Sunday, March 11, 2018

CST 438 Week 1

CST 438 Week 1

This week proved to be extremely challenging. We were tasked to create a hangman game and implement on AWS. I have never used AWS before or a framework and I could not figure out how to get the code implemented in a framework in AWS. I was able to get a working code on my own computer using a local server but could not figure out how to get the framework on AWS. My hope is that I can learn from someone on how to get a working framework up on AWS. It seems that a problem for me is that I am on a Windows system and everything I looked up was from a reference of using a Linux terminal.

This week we also learned about the differences in development approaches for large scale projects. These can include the agile and waterfall approach.