Newbie to Newbie - Blog Part Two (CPT307 - Interactive Assignment 5)

When developing structured programs correctly applying algorithmic design and data structure techniques will make a massive difference between your program running a few seconds and several minutes to days.  Computer programs utilize algorithms to answer questions, which is one of the primary purposes of a computer system.  An algorithm must produce the correct answer within is a series of logical and finite steps. The algorithm must also complete and not continue indefinitely (Shaffer, 2013)

Understanding the problem to be solved, is the first step in the algorithm.  After the problem is understood, decisions on the computing platform, methods, data structures, and algorithms should be made. When these decisions are defined, the exact algorithm specification, verification, and analysis should be performed before any code is created, which occurs after the design is finished (Singhal, 2019).  For more specific information about the design process, review the following book  Analysis and design of algorithms.

Newbie to Newbie (CPT307 - Interactive Assignment 1)

Java is an object-oriented programming language or OOP for short.  An object can represent anything in the real world, including a person, a kitchen utensil, or a city. Using an OOP like Java allows developers the ability to utilize the four major principles of object-oriented programming, which are encapsulation, abstraction, inheritance, and polymorphism.  Encapsulation asserts that the state of an object can only be obtained or changed through the exposed methods of an object.  Abstraction is similar to encapsulation and represents the critical elements of an object that differentiate it from other objects.  Inheritance allows an object to utilize attributes from another object.  Finally, polymorphism allows a single class to be either override or overloaded within the code to provide a different result that is appropriate based on the object.

When first approaching Java, the correct Java Development Kit (JDK) needs to be downloaded from a trusted source.  There are two primary JDK available.  One is provided by Oracle, who owns and manages Java, and the other is an open-source version called OpenJDK. Due to recent licensing changes from Oracle, please ensure that you will comply with the license before using it.  The license details can be found at https://www.oracle.com/technetwork/java/javase/overview/oracle-jdk-faqs.html.  For personal education, either edition should be fine.  The following installation video on youtube.com provides information on the download and installation of OpenJDK:



https://www.youtube.com/watch?v=lvGFOeMWt98  

OS Theory Concept Map [CPT304 - Final Project]

Operating System Features
A contemporary operating system provides a platform for programs to execute, called program execution, and interact with hardware resources, called I/O Operation (Silberschatz et al., 2014). The operating system also provides a user interface. In delivering these core features, a contemporary operating system has six other functions. These functions are file system manipulation, communication, error detection, resource allocation, accounting, and protection and security (Silberschatz et al., 2014). The features and functions of an operating system are seen in the below diagram.


These functions are implemented through operating system subsystems and system programs. For a complete review of the operating systems, functions, and implementations, see the Section 1 concept map.