Thursday, September 16, 2021

Newbie to Newbie Blog Part Two

"Prior to beginning work on this interactive assignment, read Chapters 1 through 3 in Data Structures and Algorithm Analysis

 (Links to an external site.); Chapter 1, Section 1.7: O Notation in Data Structures Essentials; the Complexity Analysis (Links to an external site.) article; and the Time Complexity, Space Complexity, and the O-notation (Links to an external site.) article.
Explain to another newbie how to apply algorithmic design and data structure techniques in developing structured programs. Are some algorithms and data structure designs better than others? If so, explain why one design would be used before another design would be used. Discuss in the post how you would apply algorithmic design and data structure techniques in developing structured programs."

Wow, so, those articles about complexity are full of some really dense math-talk. Way denser than I intend to parse through for this assignment. Sorry. Here's my takeaway: Some algorithms are better than others at handling huge amounts of input data. As the amount of data grows, the differences between algorithms tends to stand out more sharply. Some algorithms will take more time, while others will take more memory capacity. The really bad ones will do both. The really good ones will do neither, but those are few and far between because they're difficult to make.

What confuses me, however, is that these concepts aren't ones that we've actually worked with throughout this course. We've learned how to implement a list, a stack, a queue, and even a tree, and we've also learned about different types of sorting and searching algorithms. But we haven't learned about designing algorithms or data structures, and I don't remember learning the definition of a "structured program," either. We supposedly learned about recursion, but despite my inability to display any recursive functionality in my code, I was still congratulated and given full marks for doing it anyway.

This makes me wonder whether I'm doing something wrong, making me unable to see my classmate's blog post, or whether the instructor didn't bother to click on the faulty link before complimenting its contents. I don't know what to think of this course anymore.

Guess it's time to more on to the final project, now.

Wednesday, August 18, 2021

Newbie to Newbie Blog Part One

"For the first week [of CPT 307 Data Structures & Algorithms]’s blog post, access your Blogger account. Create a new post where you provide guidance on Java installation and discuss the concepts and features of the object-oriented design principles. Keep in mind that you do not want to provide a step-by-step tutorial on how to install Java as you did in this week’s discussion. Instead, you may want to provide links to tutorials or resources that you may have used to install Java and produce the Hello World program. This is your chance to let future employers know that you, a technical professional, can communicate technical concepts to non-technical individuals."

Provide guidance on Java installation:

1. Google Ecose "Install Java".

2. Click on the first result. Realize that it is the download page for the user-end software, not the developer kit.

3. Go to Oracle.com > Products > Software: Java > Download Java > Oracle JDK: JDK Download

4. Select the download option/installer/archive which best fits your machine.

5. Download and install it by running the installer or unzipping the contents into your desired directory location.


Keep in mind that you do not want to provide a step-by-step tutorial on how to install Java as you did in this week’s discussion.

This week's discussion did not actually ask for a step-by-step tutorial, whereas the asssignment for this newbie blog has asked for guidance, and I know of no better guidance than a step-by-step tutorial. It would have certainly been more helpful than the "guidance" we received on this week's discussion assignment. Here's an exerpt from one of my discussion posts to illustrate my issues with the guidance provided:

  1. It says to complete the required tutorials, and view the videos, but does not say where they are. They certainly don't seem to be in chapter 1 of the pdf textbook (Links to an external site.)!
  2. It says to review specified segments this week within the Tutorials Point website, but where are they specified? Certainly not on that website (Links to an external site.)!
  3. It says to go here (Links to an external site.) to install Java, when you actually have to go here (Links to an external site.).
  4. It says there are several IDEs listed in the recommended resources that can be used as your chosen IDE, but in fact there is only one (Links to an external site.).
  5. Meanwhile, I found what I think are a few more, over at Required Resources.
  6. It says to use this page (Links to an external site.) to somehow write a program called Hello My Name Is, not telling you that you'll actually be following this subset page (Links to an external site.), and altering the title (I think!) to have different words.
  7. And worst of all, the instructions on that subset page are only for the use of a text editor like Notepad, not an IDE. So I still have no idea how to use an IDE for anything.
  8. [During the installation of Java SE Development Kit (JDK) and the NetBeans integrated development environment (IDE)], the sites push you towards downloading the latest versions (JDK 16+), but the Java Tutorial page clearly states it was written for the older JDK 8. Hopefully, the built-in libraries won't have changed in any way that requires rolling back to the older versions.

Discuss the concepts and features of the object-oriented design principles:

According to our first source, the principles are Encapsulation, Data AbstractionPolymorphism and Inheritence

If an "object" in a coding context is meant to be analagous to a real-world object, such as a person, or a book, then Encapsulation emulates the external container of an object, like a person's name and appearance, or a book's title and cover. It doesn't tell you very much information inherently, like the person's age or the book's publication date, but it can act as a shortcut to allow you to refer to that object in conversation - almost like a pronoun. 

Data Abstraction (at least, according to this first source) seems to be closely tied to encapsulation, as it usually involves nested or linked encapsulations of data - smaller and smaller pieces of functionality, encapsulated together into bigger and bigger frameworks of archetecture, able to perform more and more complex work. Our third source, however, seems to describe abstraction quite differently... I don't really understand yet what it's saying.

Inheritance alludes to the ability to copy the properties or template of one class/object onto another as you build it. The example given in our first source refers to library assets as a superclass: Every library asset will have a due date, a set number of copies, a status, and a limit for how long you can borrow it. But depending on what type of asset class you're looking at, you may have an author and an ISBN (for a book), you may have an issue number (for a magazine),or you may have a leading actor or a runtime (for a movie). Need to add an object to the Book class? It will inherit all the same data fields that books have. Need to add a new class to the superclass for Microfilms? It will inheret those first four data fields, and you'll build the rest from scratch, or perhaps derive them from the DVD class.

Polymorphism refers to the ability to perform a single action in different ways, or to call slightly different functionalities by the same name. In Java, there are apparently two type of polymorphism available: Overridding, also called run-time polymorphism, and overloading, which is referred to as compile-time polymorphism. However, I wasn't yet able to parse or comprehend the details on what these terms mean, on how to apply them, and in which contexts. I'll likely have to return to this concept after getting some more experience with Java under my belt.

-Jesse

Monday, August 9, 2021

Scrum Basics week 4 journal

 This week, you investigated job openings that asked for Scrum skills and certifications. You also explored personality types. In your journal, discuss the following:

  • Did you find any jobs that might interest you? Which ones?
  • Were you surprised at how many positions utilize Scrum?
  • Were there any openings in your current industry?
  • Are you planning to earn a Professional Scrum Master certification at the end of this course?
  • Were there any surprises in your personality type? Any surprises in those of your teammates?

Your journal entry must be between 600 to 900 words.


  • Did you find any jobs that might interest you? Which ones? 

The Java Developer role is interesting to me, as I hope to develop code like this, and look forward to working together with a competent Scrum development team to make a robust, useful product. Some other roles that interest me are 

 

  • Were you surprised at how many positions utilize Scrum? 

Not really! Scrum is a very efficient, versatile methodology, and has been gaining traction and popularity pretty quickly over the past few decades. I’m not surprised at all to find it listed in the requirements/requests for this many roles, and in fact, might expect to see it listed in even more roles if the search term “Agile” were used instead of “Scrum.” The requirements in most of these postings just ask for a familiarity with the practice of Scrum/Agile, which after this course, I’m pretty confident in saying that I meet that requirement. Now just to get all the other requirements under my belt... That’s the hard part! 


  • Were there any openings in your current industry? 

That depends on how you define my “current industry” - while I work for JPMorgan Chase, which is in the banking/finance industry, my current role is that of customer/client support, and does not involve any opportunity for development of any sort. Thus, roles in the customer support industry (if there can be said to be such a thing) would not typically require Scrum, but would certainly have lots of openings otherwise. Likewise, banking/finance roles do not typically require Scrum either. But thanks to the intersection of industries, and in-house development teams, JPMC does have several openings which require and utilize Scrum. 


  • Are you planning to earn a Professional Scrum Master certification at the end of this course? 

Probably not, since that’s something that would likely cost money in order to attempt. What I will probably do instead, is to take the skill certification tests available on LinkedIn and Indeed. For the amount of involvement I plan to have in my future career, that should be perfectly sufficient. Once I get some real-world application experience with Scrum, I may re-assess my interest in the Scrum Master role. If it winds up being something that interests me as a career, I may very well look into earning the professional Scrum Master certification later on in the future. 


  • Were there any surprises in your personality type? Any surprises in those of your teammates? 

My own personality type always tends to come as both a surprise and an expectation – as discussed in the relevant forum this week, the introversion aspect has remained constant throughout my entire life. But the other letters tend to fluctuate as I grow and develop my outlook and personality. To be honest, I’ve never placed much stock on the Meyers-Briggs test results. While it can sometimes provide some broad strokes of perspective about a person, more often than not it tends to reflect what a person wishes were true about themselves. I’ve heard it referred to as “Astrology for people who don’t believe in Astrology.” Dividing people into specific labels tends to dehumanize them and cause them to focus more on their differences, leading to an “othering” effect of uverses them: false dichotomies (or whatever the equivalent term for 16 categories would be) do more harm than good, in my opinion. 

Peter and Damien weren’t terribly surprising either, and Saul doesn’t seem to have participated in this discussion at all. I’m not sure whether he’s still attending the class. 

Here is an additional sentence in order to meet the wordcount criterion. 

Monday, August 2, 2021

Scrum Basics week 3 journal

 This week, your team developed a Burn-Down Chart. In your journal, discuss the following:

  • What went well this week?
  • What challenges did you face this week?
  • What can you do to improve team performance next week?
  • How can you apply Scrum principles in your professional life?

Your journal entry must be between 600 to 900 words. Though APA formatting is not required, it is important to cite any resources you may have used in APA Style. Submit in Waypoint as an MS Word document.


What went wellThe walkthroughs for the burn-down chart were pretty thorough, and allowed Damien to get a really good start on making the chart in Excel. Then, Peter had the bright idea to get the chart into a shared document format using OneDrive, so we could all work together on the document in real-time, without worrying about who had been the most recent one to make an updated version. The team really took the initiative this week and dove right into the assignment, before I was even really up-to-speed on what was being asked of us! 

What went not-so-wellThe instructions made a huge leap from 10 tasks to 24 tasks, without clarifying where those extra 14 tasks should be coming from, or what they should be about. When we needed clarification and elaboration from our Product Owner, Dr. Parikh was again nowhere to be found. I know these assignments are just busy-work to get us some practice for how to use the concepts we’re learning, but without the context of actually having this many tasks, and how long they should be taking, it leaves much to be desired for me. 

Room for improvementTo improve team performance next week, I may try to reach out to Saul earlier in the week, since for the past two weeks he’s failed to pipe in until the very last minute. I’m also looking ahead to see what next week’s assignment is, in order to better prepare for it. From what I can see, there is no team assignment next week. So the next team assignment is in Week 5. It looks like we’ll be preparing a PowerPoint presentation together, which should be fun. To improve our performance right off the bat, I plan to start us off with a OneDrive slideshow, so we can work on it in real-time from the get-go. 

Practical usesThis question is the same as it was last week (and the week before that). Nothing about Scrum or my professional life has changed in the span of two weeksSo my answer remains the same: 

My professional life does not currently have any context for Scrum, as my current role works on a day-to-day performance to judge our metrics. We don't have any projects to implement at my current job grade. In the future, once I finish my degree and transition into a Software Development role, I anticipate that this will change, and these Scrum principles will be much more relevant. In the meantime, I can foresee these being useful in the context of my roles on staff for various conventions, using each year's convention as the scope of a single project. 

 

I noticed that the word requirement for this week’s journal has doubled in length, even though we’re still answering the same four questions as the previous two weeks. My apologies, but I couldn’t think of anything more to say. 

Schoolwork assignments incoming

These first few posts are part of this assignment:  "Throughout this course, you will create an Information Technology Blog with seven ...