Monday, October 31, 2016

CST 438 Week 1

Week 1

This week has gone pretty well. I'll admit that I haven't put as much effort into it as I have other courses and I assume next week will be the same for me. I knew this fall season would be very rough on my personally and academically.

The content covered this week was a combination of version control systems (including git), GitHub basics, and the agile process. I'm familiar with all of these things, but I haven't really read into them before and had more of a hands-on learning environment when I initially learned all of these. I definitely think that helps when trying to absorb the assortment of information.

Our project this week was a very simple hangman website (served through HTTP server). The basic code was initially written by our professor and we only had to fill in the implementation. There were some unexpected snags that directed me down the path of learning more about java jar files. It wasn't part of the instruction but I felt like I came out of this week understanding them better.

We were also placed in groups this week. We have a very basic assignment (coming up with a topic and posting the requirements) for the first week and I'll be interested to see how my new group works out. My last group was pretty fantastic, so they have some serious shoes to fill (heh).

Saturday, October 22, 2016

CST 338 Week 8

Week 8

Woo! It's the final week. I'm very happy to see it here. I did really enjoy this course, but I'm ready to move on to the next topic.

This week we had some flexibility (really, a ton!) with our final project and that was a bit difficult for me. I felt like I was too concerned about making a project that really stood out. In the end, I decided to go for simplicity and to get the project completed. I chose to implement a super simple command-line driven recipe book. The user can't write to it, but they can navigate between the pages. I think that's good enough for this time around.

Specific Prompts

They say hindsight is 20/20, what advice would you give to the next cohort regarding this course?

I have a few suggestions for the next cohort that takes this course:
  1. The last assignment requires the use of an IntelliJ product called Android Studio. Begin using IntelliJ from the first day of class and this application will feel familiar.
  2. As far as the actual studies go, begin each project early. The 4-hour estimates are way lower than the time that is actually required for each assignment.
  3. Read each assignment over before/after you work on it for the day and make sure you follow the guidelines. Double check if methods are supposed to be private/public! You'll get some points marked off if it varies from the assignment description.

How much do you envision using the skills you gained in this course in your career?

This course covered a ton of material that's extremely useful in day-to-day programming. Granted, some of it's pretty Java-specific and many students may never come into contact with Java. Professionally, I've encountered many of the topics taught. I believe that knowing more of the design patterns would have also been useful and hope I'll get to see some more in future courses.

Saturday, October 15, 2016

CST 338 Week 7

Week 7

This week has been easy breezy! I really enjoyed learning Android Studio and getting a simple little application running. Because I've been using IntelliJ (Eclipse was recommended) for this entire class, it was an easy transition to Android Studio (because they're the same).

The application we created doesn't actually do anything, but it's fun to see the possibilities. Looking forward to my last set of assignments and wrapping this course up!

Specific Prompts

Have you ever created an app before, either for Android or iPhone? How did it go?

This was my first time creating a phone application! I have created plenty of web application, but never a native phone application. I'd like to dig into it more, learn how sessions are kept and actions are performed.

Do you have any ideas for apps that you could create for recreation? What about business?

I have definitely come up with some phone applications. The primary one I wanted to work on is a coffee log where a user can record the type of coffee they drank and the grind, brew method, wash method, the region the coffee was grown, and all other kinds of coffee drinking details.

There are also some web applications ideas that I have that could easily be converted into a phone application, like my idea to create an emergency preparedness website. In a phone application, it could serve as the source for where the user's family wants to meet when a natural (or unnatural) disaster happens. It could also send the user push notifications when a natural disaster is expected and remind them of the items they need to prepare for their particular type of disaster for the case that it actually happens.

Tuesday, October 11, 2016

CST 338 Week 6

Week 6

This week has been difficult, but I think my team pulled through just fine. We worked on implementing our project in an MVC pattern and used multithreading to display a timer on the screen. I'm happy with how it turned out. This was our last group project of the course. It's been fun to work with a group again, but I'll admit that I am glad to go back to being a little hermit with my assignments again for a bit. The pressure of getting a good grade for myself and my team is too much.

Because our next class already opened up on the website, I'm feeling a bit overwhelmed trying to also get prepared for that and wrap up this course. I am hoping that I will get through the next couple of weeks without a problem. October is very busy for me socially and it definitely impacts the time I can spend on my academics.

Specific Prompts

What experience do you have with UML diagrams?

I had some experience with UML diagrams, but not for designing programs and class structures. I've primarily used them for databases at work and in some of my recent courses.

Are they used at your workplace? Have you done multithreading in any language before?

UML diagrams are known of at my workplace and occasionally used for database schemas, but not preferred. After several years of producing them, my company found that clients didn't care about them and the developers never referenced them. They found them to be unuseful.

I have used multithreading before at work (in Java, too!) and it has been fine. I've never really had to think about how it was all working. We typically use other libraries and packages that do most of the most difficult things for us. Also, we tend to use them for background processes that aren't so obvious. The most recent thing I can think of is pulling data from endpoints while the application is running and placing it in the cache it for the user to see. It makes the application appear much faster than it actually is.

Did you find Patterns to be helpful?

Yes. I really like patterns in general. They help keep everything in a nice, defined place. Otherwise, the programs can get very out of control. I will say, however, that there's a big difference from the MVC pattern we implemented in this course and what I have seen used in the real world. I think it's the difference between the old style and the new. In the pattern we learned in class, the view does not interact with the controller at all. The one I know in practice has the controller handle everything and the view and the model does not interact with one another.

Tuesday, October 4, 2016

CST 338 Week 5

Week 5

This week has been very wild! I ended up taking a vacation day on Wednesday (when the content came out) because I had weekend commitments that were very time-consuming. I'm so glad I did. I don't think I wouldn't have been able to finish off my work if I hadn't. I also had to create a video this week discussing how I was planning on working on the assignment for this week. It's attached below. I find it challenging to talk about how I plan on solving the assignment without showing some code and giving too much detail. My team really helped me through this week and I am so glad that I get to work on these projects with them.

Specific Prompts

GUI is learned late in the game with Java. Do you think this is helpful or harmful and why?

When working with Java, I do think it's helpful to learn to program GUIs. Especially if you're coming from a language that isn't as verbose (like Ruby, JavaScript, or Python). However, it does feel like a totally different thing so it may be perfectly fine to learn the event-driven style prior to the functional way of programming with Java. Although, learning it in parallel may work too (but I could see it getting confusing). In the end, I think it's important for each person to consider what works for them and what they're interested in. If they have a great idea for a GUI to build, they should work on that and skip the console stuff. Same applies in reverse. Whatever keeps you interested and excited.

Why do think that coding the Swing elements in Java would be more difficult compared to some other languages?

Java is very verbose and usually requires a lot of additional steps and lines of code to accomplish something that something, like Python, can do in a few lines. Depending on your background, it may be extremely challenging to using Swing elements in Java. If someone comes from a Ruby background, they're going to have a hard time. They will probably have a pretty easy time and would prefer it if they are experienced with Java, though. Just depends on the perspective.