Wednesday, September 20, 2017

Weekly Learning Journal Post - Week 85

Can you tell me, where I am going to?

This week as been interesting as I have had the opportunity to look at other people's skill sets and job experiences. It has been eye opening to say the least.

First off, when I started Algorithms, Dr Byun made the observation that our cohort had the reputation of being high-achievers. And while I don't know whether we were in that class, I can tell from the job histories of work and education experiences of the group that we may have earned that reputation.

We have Amazon and Google software engineers. IT staffers for Amazon and Boeing. And people with years and years of experience. I am very impressed with our group and am humbled to be called their classmate.

As for the project this week, the homework really ate into my overall planned time. I had a gradle crash that required a rebuild of the project in Android Studio. But, as always, YouTube came to the rescue and I learned how to recover from the error.

I have sound and graphics built and a rudimentary random number engine employed on the app. I have made modifications to use the Secure.Math function within Java 7 but I am running into some implementation issues.

On a side note, still waiting to hear back on the STEM conference. Hoping to get to go. However, I have other grad schools in mind and have sent out feelers to them. In either case, keep your fingers crossed for me!!

Tuesday, September 12, 2017

Weekly Learning Journal Post - Week 85

Me, Myself and my Resume...

So this week was interesting. After the meeting and getting my feedback from Dr. Tao and Professor Robertson I locked into what needed to be done and started writing code.

Going to use Nougat instead of Marshmallow as Nougat is projected to be used my more devices than Marshmallow by November. So I have started programming in a Nougat gradle.

And by doing so I can use the function. This solved two of my problems regarding number generation and UI segmenting.

This week I have started to construct the screens and the functions of the random number generation. I am also learning some advanced concepts within the android and java environments. I am learning how to store cached data for the application and how to retrieve it. I am also dabbling in some animations. Although I may not follow up on this as it wasn't in my initial planning and I don't want to go down a rabbit hole that I cannot complete.

The following week I am hoping to complete a single random dice generation for the primary die 4, 6, 8, 10, 12 and 20 sided dice with the screen and sound effects. After that, I hope to implement the multiple die, modifiers and saved configurations. This is going to be a little more challenging that I expected, but I think I can do it.

Regarding the meeting for last week. I think it went well. I did initiate some of the items outlined in the reading. For example, the meeting was necessary - per Dr Tao. :)

Seriously though, I made sure to make use of pre-work as I had a list of the things I had done the week before in preparation for the project, I had a list of items to bring up, I listened to the feedback given to me and I had questions for everyone involved regarding the project. I found the reading useful in making a successful meeting.

Tuesday, September 5, 2017

Weekly Learning Journal Post - Week 84

The Capstone Cometh...

This has been the first week of working in the capstone project. I'd like to say I am off to a great start. But, that would be a lie. I am off to an okay start and I need to find the next gear to start moving.

I knew finding information on appropriate random number generation regarding this project would be difficult, I had no idea it would be this difficult. Everything I am running into is either too complex to run on a smartphone, even high-end devices or too simple to generate truly random numbers. I am thinking that I may have to utilize the math.random function and modify results against a second generated number.

However, I have purchased a couple of books on random number generation theory, I am doing research and haven't given up hope on finding a solution in existence already.

The second issue I have come across is the fast and furious versions of the Android OS. I am having trouble deciding on the Gradle I will be using for the base of the project. Part of me is leaning towards Marshmallow because of the total number of devices that it currently runs on. However, Nougat has some UI features that would be nice to have. And Oreo. don't get me started on Oreo. I have realized that that this is something that I should have decided in advance of the project and that I didn't schedule time for this part of the project. So I will have to splice this into my schedule and move forward.

On a personal note, I have decided that I am going to formally pursue going to grad school. I have applied to the University of Chicago, Urbana and will be attending the STEM conference for Stanford and UC Berkeley's grad programs in October.

I think it is funny that I have been looking forward to the completion of this process and the relief it will bring to be done, just to plan to keep doing it.

Oh well. I guess we'll see where this goes...

Friday, August 11, 2017

Weekly Learning Journal Post - Week 80

A final journal entry about what you learned in this course.

What did I learn in this course. I think that there is a duality about what I learned. There is what I learned on an intellectual level and a personal level.

On an intellectual level, some of the things that will stick with me are GANTT, JUnit Testing and UMLs.

I have an interest in project management, especially within the computer science field. And I like the way that a GANTT form presents information. With a quick glance, you can get an a good grasp as to what a project needs, when it needs to be done, the workforce necessary to get it done and where a project can 'bend' and where it really can't. I found that section very interesting.

Another section I found interesting was the JUnit testing. I had never heard of it before this class, but the need for it was apparent and made complete sense. White Box and Black Box testing lead into it the subject and I had always tested my code via Blackbox - testing as I went along, coding with errors and then troubleshooting. With JUnit testing, I was able to see a different way to code and test. Write the code, write tests for the code and have the system test the output. And then, to code for an error intentionally to see if the error occurs was something I had never thought of doing. The process of JUnit testing is something that I can see helping not only in Java programming but in other aspects of my CS career.

Finally, UMLs are something I had seen in my IT career, but I never actually had an opportunity to interact with them much before this class. Like the GANTT diagram, I can see the use for them in a project management career. They offer an visualization of the basic aspects of the code and, depending on the group and the type of UML diagram, can display important ideas to the group.

As for what I learned on a personal level. I learned that perseverance is an important trait in not only computer science or college in general, but in life. The last 16 weeks has been one of the most difficult journeys I have taken as an adult. I understand that the subject matter was difficult - it is supposed to be challenging. But I think I underestimated the velocity of the subject matter in both courses. I struggle to understand how this course would work in an 8-week sprint - it truly needs 16 weeks to take everything in.

I learned that it is good to have good teammates. The members of my group, Enhydra Solutions, was some of not only the most decent people, but some of the best programming professionals I have ever worked with. I have no doubt that Joe, Lisa and Cian will be successful wherever their professional lives take them. I thank them for their help and camaraderie the last 100 weeks and wish them the very best.

Tuesday, August 1, 2017

Weekly Learning Journal Post - Week 78

Keep Up With Your Learning Journal

Update your learning journal with what you experienced in the course this week.

So these last two weeks have been a lot smoother. I have taken a much more relaxed view of both classes. As my daughter, who just graduated UC Riverside, told me; "You can only do, what you can do... If you look at yourself in the mirror at the end of the day and tell yourself you did your best. Then that should be good enough."

I have enjoyed this week, working with the Gantt project layout. Within the time that I have worked as IT management (and backup to the IT management when they are gone), I have noticed that having a project timetable is very important. And often, we forget that timetables are interdependent on other timetables. Yes, it will only take 2 weeks to cable up a school wing. And school doesn't start until August 20th, so I am okay. Except the rooms are all being painted for the next week. so now I am not so okay. But, if I had a Gantt project printout, I would have known that in advance and could have planned for two network techs to cable for those two weeks.

I totally see the value in it.

Also, I am becoming more adept in my Algorithms class. Not proficient by any stretch of the imagination, but good enough that I can understand the work, give accurate answers and get the program to do mostly what I want them to do. And the logic of how to get the application do present the data I want is coming into better focus.

I have said it before and I will say it again: I understand the reason for these classes to be 16 weeks. I can't imagine trying to do them in 8. But they shouldn't be stacked up against one another in those 16 weeks. These two should be pressed up against other non-programming classes such as ethics, proseminar or service learning. In this way we would exercise each side of our brains and get the most out of the course.

But to live and learn, I suppose.

Tuesday, July 18, 2017

Weekly Learning Journal Post - Week 77

Keep Up With Your Learning Journal (15 mins)

Update your learning journal with what you experienced in the course this week.

Have you ever ran into a wall? Just be going as fast as you can go and then 'bam' ... stopped. I, for whatever reason, have ran into a scholastic wall.

And what frustrates me the most is that I am so close to being done. Literally, 3 more weeks of CST 438 and CST 370 and then the final project. Yet, I so don't want to be doing any of this. And that is not my style. It is not how I operate in any sense of the word. Ask my family, ask my friends ask my work colleagues. I was told today my an administrator at my work that people are excited to see me on a work site, because 'they know that sh** is going to get done, done quickly and done right.'

And that is how I generally operate. Yet, lately, not when it comes to school work.

And the thing is, this week has not been as difficult as weeks past. The CST370 homework, while difficult, was achievable and understandable. In CST438, I have been acting as the Scrum Master of the group. And while I have NO WHERE near the programming prowess of my team members, I felt like I was able to contribute.

Yes, I understand AVL trees. Yes, I understand good code programming review. Yes, I understand binary trees. The fact is... I don't CARE. I have reached maximum apathy. I am not retaining anything. Even worse, I am having great difficulty recalling how to do things I have learned to do.

And now it is starting to affect my work. I was given, by far, the easiest assignment within the group this week, and I totally half-assed it. It's not done and if work hadn't kept me at the office until the meeting time, I would have totally admitted it. It's not that I couldn't have done it - it's a simple sql query displayed on a web page. We have already did that in web programming. Yet, I didn't do it. My guess is that it is some sort of cognitive dissonance. However, the fact is it isn't fair to the other members of the group.

I know that this two class exercise, in my opinion, has been an abject failure. I cannot maintain 50 hours of work a week, two classes that require 8-10 hours of work a week (one requiring much more than 10 hours) and the responsibilities that I have for a day to day living. I want to quit. Yet, I am only three weeks out.

Someone told me that 'I looked sad' yesterday. I didn't know how to take that. I still don't.

What to do... Well, I will tackle that tomorrow.

Tuesday, July 4, 2017

Weekly Learning Journal Post - Week 76

Keep Up With Your Learning Journal

Update your learning journal with what you experienced in the course this week.

This week was, singularly, the hardest week I have had in this program to date.

In CST370 we had to program, in C++. an algorithm that took an adjacency matrix and displayed a topographical sorting output. Each of them is a task in and unto itself. Especially the topo graphing. After a good 30 hours working on the problem, I finally got the two samples to output the results that were shown. But this took not only reading, but several external video sources explaining things.

I have learned that I don't learn well from reading. I learn well from being shown, then reading. Reading reinforces what I have seen. Call it a left/right brain thing. But as I told a classmate this week; My entire life, I have been educated by being shown examples of the subject and having the exercises reinforcing what I have been shown. In Kindergarten, I was shown how to draw an 'A', then I practiced it. In the 7th grade, I was shown how to solve for 'x' and then I read more examples, then I practiced it. Now, I don't see examples - I read them and practice it - which isn't working as well as I would like.

In CST438, I have been struggling with the gameservlet JUnit testing. I spent a good week (week prior) trying to just get it to work. I felt better after discussing this subject with professor Wisneski that we were not the only class struggling with the JUnit testing of the servlet. Working with Joe Sarabia (seriously CSUMB - when are you going to hire him?), we have developed a testing environment that will emulate the the interface and classes and test whether the servlet works.

Ultimately, I nearly quit this week. Saturday night, I had a full-blown panic attack because I wasn't understanding ANYTHING. I wasn't understanding JUnit testing of Servlets. I wasn't understanding topographical sorting, the source removal algorithm. And I certainly wasn't understanding GitHub, Netbeans or Mockito. I nearly took myself to the ER, because I felt like I was going crazy.

Then I realized that I was doing too much at once. And that the teaching style of CST370 wasn't matching my learning style. So, I spent Sunday morning watching every video I could on Topo sorts and the source removal algorithm. Then I read the materials again, which made a LOT more sense. Then I stopped and gave my brain a chance to digest the material. 3 or 4 hours later, I was able to get most of the code to work. I spent the next two days fine tuning the output and testing the inputs.

The same with the JUnit testing. I have been watching every video I can, including going over the original material from earlier in the class. I have watched every Mockito video I can. Now I am just letting my brain piece together the subject matter to the coding problem and see if I can't come up with a solution.

Let's see if this week is better now that I have adjusted my learning process. Here is to hoping...