"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:
- 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.)!
- 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.)!
- 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.).
- 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.).
- Meanwhile, I found what I think are a few more, over at Required Resources.
- 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.
- 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.
- [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 Abstraction, Polymorphism 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