Tuesday, August 1, 2017

Gantt and Algorithms

Even if I won't be using Gantt Charts with agile development, since they fit instead under the waterfall methodology, and, furthermore, although I am not pursuing a job as a project manager, it's still interesting to have sat down this week and set up the tasks, resources and dependencies that make up such a project timeline.  They're a smart tool for planning that may be applied to many different types of projects.

In our other class, the algorithms class, we completed and submitted our last homework assignment today.  I'm feeling pretty confident in my ability to design algorithms and apply or translate algorithmic pseudocode to C++ programming, or any language I've learned, for that matter, which is pretty great.  In specific, writing the backtracking code to the (dynamic programming) coin row problem was particularly satisfying because, although involving a few "Hail Marys" in my running it, was challenging for me and something I built without pseudocode.  It might be easy to whomever might be reading this blog, but for me, it was not that east.  Resolving it was definitely an "it's working" moment.  (All this is not to say that translating pseudocode is not without challenges; it also requires some careful interpretation, too, at that.)  I came close to giving up, twice, but thought, hey, I might be on to something.  Keep coding.  Just see where this leads.  --In the past, I'm unsure I would have felt such confidence to persevere through what I felt was a difficult (challenging enough to me) programming problem like this.

Tuesday, July 18, 2017

Peer Reviews

This week we read a variety of articles about the peer review, which is essential for code quality and thus reduces development time, while we continue to work on our team project.  My story involved creating a new schema with a variety of tables, which I then used to reverse engineer, or generate, a UML diagram, (far nicer, to me, than hand drafting one), as well as create the entity classes in netbeans.  Our team is meeting in weekly sprints to review code and plan next steps.



Tuesday, July 4, 2017

Scrumming away and happy fourth of July, everybody!

The team and I had a good initial meeting with Professor Wisneski and are amping up our project to transform our J2EE version of Hangman into a Wheel of Fortune game. We're continuing with sprint meetings, checking out code and making branches on github, recording activity in the collaboration and version control tool, PivitolTracker, doing test driven development and code review for pull requests.  Stuff like that.  It's great practice for the workplace, which is exciting.

Tuesday, June 13, 2017

Midterms/Finals Week

Finals at the mid-term--sounds odd, yet that is sort of what is going on this week!  In any case, it's exams time, and I'm cramming to ensure that I understand the topics we've been learning, including agile methodologies, junit testing, scalability, user diagrams and J2EE with its Java Sever Pages and servlets, as well as entity managers and persistence files connecting it all to MySQL's database servers.  It's been a challenge, and I'm grateful that NetBeans auto-generates so well!  Ha-ha.  I'm planning on poring through Murach's textbook again and hopefully achieving the deeper understanding that I've been wanting to attain for the client/server relationship.

Monday, May 29, 2017

JPA

This week, we're using JPA, the Java Persistence API, which is a type of ORM, object relational mapping, to access and manage data between Java objects / classes and a relational database in MySQL.

We're also studying measuring the time complexity of a recursive algorithm using initial conditions, backwards substitution and recurrence relations, after studying the non-recursive mathematical analysis of algorithms last week.  We find the basic operation, then create a function including the recursion and any other multiplications that occur, then look for a pattern in the backwards substitution. From that we find a general form that can be compared to the initial condition, so you solve for that, and you can produce an expression that will be in the range of Big Theta, between an upper and lower bound, or if there are possible variations to efficiency based on the input, O and Omega, as well.

Tuesday, May 23, 2017

Java Enterprise and Model-View-Controller

This week we studied coding a web service application with the Java Enterprise, J2EE, which consists of Java Server Pages, the Java Servlet and Java Persistence Architecture (next week), and its use of the MVC pattern (M-JPA; V-JSP; C-JS).  Other frameworks apart from Java include .NET and Ruby On Rails.

Thursday, May 18, 2017

Testing

It's great to get some more experience or exposure to test driven development in our Software Engineering class this week.  I've really valued studying and writing test files.

We also had our midterm this week in the Algorithms class.  I'm definitely not in agreement that having two programming classes at the same time is easier, as had been mentioned was the rationale and would be the case.  We've definitely dived into the deep end with respect to course material/content, compared to some of our more recent classes, so it's a lot!  The above in conjunction with studying asymptotic time complexity, which is a lot to get one's head around, in itself...!