Thursday, November 4, 2021

How do you apply algorithmic design and data structure techniques in developing structured programs?

The best way to begin solving which algorithms and data structures you should use in your structured programs are to understand that there is no one-size-fits-all. By understanding the common algorithms and data structures and their strengths and weaknesses, you are well on your way to becoming a better programmer. In the following paragraphs, we will dive into some key definitions and concepts for implementation in your structured programs.

Data Structures

When developing a program, the programmer should start with studying data structures and then the algorithms that manipulate them. The way information is structured in a program has varying effects on its processing efficiency. That said, what is a data structure? A data structure is a representation of how data is organized so that it can be used efficiently (Lysecky, R., Vahid, Lysecky, S., & Givargis, 2015). Data structures can solve various problems, including searching data, processor speeds, and handling multiple requests (Shaffer, 2013). For example, a sorted list of integers stored in an array is one form of structuring. Some others are linked lists, hash tables, stacks, queues, graphs, and trees.

Thursday, October 7, 2021

Introduction to Java: An Object-Oriented Programming Language

Java is one of many languages falling into the Object-Oriented Programming (OOP) methodology, others being Python, C++, C#, etc. What exactly is OOP? This methodology involves using classes and objects to design a program. In this context, an object is anything that has state and behavior, otherwise known as variables (or properties) and functions (or methods). For example, a horse is an object because it has states like color, name, breed, etc., and behaviors like neighing, eating, and trotting.

A class, by definition, is a collection of objects and is the blueprint from which individual objects are created. For example, if you have a bicycle, it would be an instance of the class of objects known as bicycles. This is because there are thousands of other bicycles in existence that are the same make and model.

Monday, October 4, 2021

Operating Systems Theory Final Project

 

Operating System Theory Summary Blog Post

Describe features of contemporary operating systems and their structures

Contemporary operating systems have extensive features guiding the user and computer system to have purposeful interactions. Specifically, the features include the user interface (UI), program execution, input/output (I/O) operations, file system manipulation, communications, error detection, resource allocation, accounting, and protection and security (Silberschatz, Galvin, & Gagne, 2014). The below concept map describes what these features are in an operating system.

Operating systems can be structured in many different ways, including monolithic, layered, or hybrid structures. The monolithic structure has all the functionalities of the operating system compiled into one space, whereas the other two approaches use a hierarchical structure. Contemporary operating systems used layered or hybrid approaches to prevent system vulnerabilities discovered in the archaic monolithic approach. In these methods, the subsystems or subcomponents are referred to as modules. The course text shows a unique example of a layered approach for the Mac OS X, also outlined below. The layers are hierarchical, starting with the Aqua graphical user interface (GUI), the application environments and services layer, and the kernel environment. The kernel environment details the I/O kit, kernel extensions, Mach (memory management support), and BSD (support for networking and file systems) functions (Silberschatz, Galvin, & Gagne, 2014). As outlined in the description above and the graphic below, we can see that subsystems or subcomponents use functions and services of only lower-level layers or modules that can call any other module, alluding to its benefit in reducing system vulnerabilities.

Monday, March 8, 2021

Exploring Computer Network Architecture

 How Network Architecture Relates to Concepts

            Network architecture is one of the fundamental concepts of information technology and computer science. It refers to how network devices and services are built to meet user’s devices’ needs (Cisco, n.d.). The history of computers dates back to the 1900s, where they originated from telephone switches using ones (on) and zeros (off) (Lysecky & Vahid, 2017). Through time, network architecture has evolved into smaller components, which consequently involved increasing its functionality. From the 19th-century French silk weaver and inventor Joseph Marie Jacquard to the 20th-century American inventor and creator of the punched card tabulating machine Herman Hollerith and beyond, the evolution of computer network architecture is a significant component of information technology and computing history (Lysecky & Vahid, 2017). Additionally, the combinations of multiple inventions led to the network architecture that we see today. The world has become increasingly reliant on computer connections, including accessing the web and is the fundamental concept behind network architecture. By understanding this technological topic, we see that it is vital to how information technology operates and communicates, as well as demonstrates the maintenance and evolution of computer science.

Thursday, March 4, 2021

Why is Information and System Security Important?

Protect Information:

            In the evolving technological world, information and system security should be at the forefront of every individual’s and organization’s mind. The availability and access to information can be used for various purposes, in some cases malign. This concept’s foundation is that every piece of information shared online may have value to somebody, whether that be being sold to third-party companies, being used for marketing, or being used for blackmail or coercion (Lysecky & Vahid, 2017). For example, in the intelligence community, we use social media posts to gauge heuristics and events in a region. While a video on social media may not be of value to someone else, a federal agency may use that to determine valuable information about a particular region. Keeping in mind that information sent to and throughout the internet, whether private or public, can still be accessed, individuals and organizations must be careful with the information they share and post. Anything that is sent should be assessed how that information would be conveyed if it were to become public.

Demonstrating the Ping and Traceroute Commands

How do Packets Travel through a Typical Network?

        Typically, packets start at the originating machine. For me, this is my ASUS laptop. To reach the internet, they must travel through a router, then to a modem, and finally through the ISP. I have a DSL connection in my home, meaning that it uses a copper telephone wire to transmit data (not optimal because the maximum speed is 1.5 mb/s). My laptop sends packets wirelessly to my router/modem, which then gets directed to my ISP (CenturyLink). I thought it was funny learning about routers in a home since most devices are grouped nowadays. However, they are still very relevant in businesses. From there, the packets travel through several other computers on a path to their destination.

What are Computer Applications? How should we use them?

Word Processors, Spreadsheets, Presentations, and Databases:

            Word processors, spreadsheets, presentations, and database applications have unique functions that are suitable in most but not all cases. A common function found in word processors, spreadsheets, and presentations are editing the font size, color, and shape. Besides that function, these four applications have a broad range of tools and useful applicability to different tasks. A word processor allows you to compose, edit, save and print documents in digital format. A spreadsheet is a computer application designed to represent data tables that include text or numbers (Lysecky & Vahid, 2017). A unique function of a spreadsheet is that you can use formulas and create charts to manipulate and display your data. Also, spreadsheets are arranged in rows and columns of cells labeled chronologically by numbers and letters, respectively. A presentation application is used to create a slideshow, including text and graphics, and often with animation (Lysecky & Vahid, 2017). A slideshow is composed of individual slides where you can choose to use editing, animation, or presentation tools. A database application (commonly called a database management system (DBMS)) allows the user to create, maintain, and access database systems. Database functions include adding new data, editing existing data, deleting data, and querying for information (Lysecky & Vahid, 2017). Companies and vendors use database applications most frequently to keep track of inventory and to forecast trends. The unique functionality of each of these applications can be applied across a vast array of problem sets.

Reviewing the All Trails: Hike, Bike & Run Application

I decided to review an app from the Apple App Store called All Trails: Hike, Bike & Run. This app allows you to discover hiking, biking, and running trails around the world. I was first introduced to this app when I visited Hawaii on a military training exercise. I have now used it in Hawaii, North Carolina, and Virginia, so I am pretty familiar with the free version’s layout and functionality.

Learn Scratch: The Fundamentals of Programming Languages!

My Experience with Scratch:

               My experience building a program using Scratch is akin to other programming languages I have attempted to learn. At first, there is a steep learning curve where you must master the fundamentals of the language structure. Computer languages are analogous to spoken languages, where you must first learn the letters, sounds, and grammatical structure. In computer languages, you must learn the structure, syntax, and meaning of a statement. Without understanding these key concepts, you will be lost when building more complex and innovative scripts.