Thursday, January 12, 2023

Structured Programs





Development of Structured Programs

A data structure is a technique of storing and organizing information so that it may be employed effectively. Trees, arrays, linked lists, racks, graphs, and other data structures allow us to perform numerous operations on data. Learning algorithm design concepts in data structures are critical for constructing software systems, regardless of scripting language (Seaver, 2019). Choosing an appropriate design methodology for algorithms is a difficult but critical endeavor. The following are some of the most prevalent algorithm design strategies:

Backtracking

Divide and Conquer

Greedy Algorithms

Brute-force or exhaustive search

Branch and Bound Algorithm

Randomized Algorithm

Dynamic Programming

Are some Algorithms and Data Structure Designs better than others?

In practice, it is rarely true that one data structure is superior to another in all instances. If one data structure or algorithm outperforms another in every way, the inferior one is usually long forgotten. You will see examples of where it is the optimal choice for practically every data structure and technique taught in this book. Some of the cases may astound you.

A data structure requires a certain amount of data storage for each data element it contains, as well as a certain period to perform a single core operation and a certain level of computing work. Each task involves constraints in terms of space or time needed.

Space Complexity and Time Complexity

Time Complexity

Space Complexity

The time complexity of a procedure is defined as the expanse of time it takes to finish its operation as a function of its input length, n. Asymptotic diacritical marks are often used to express an algorithm's temporal complexity: O(n), Ω(n), and Θ(n).

The magnitude of space (or storage) mandatory by an algorithm to operate as a function among its input length, n, is referred to as its space complexity. Space complexity comprises both supplementary space and input space.

 

The Big-O Notation

A hypothetical estimate of the implementation of a set of rules, typically the period or storage compulsory, specified the difficulty size s, which is typically the numeral of objects. Casually, saying f(s) = O(g(s)) suggests that it is lower than some fixed multiple of g(n) "f of s is the big o of g of s," the notation reads (Mitzenmacher & Vassilvitskii, 2022). Essentially, this hyperbolic notation is intended to theoretically evaluate and contrast the nastiest case likelihoods of algorithms. The Big-O study for any algorithm should be uncomplicated if we precisely classify the functions that are depending on n, the intake magnitude.


 

References

Mitzenmacher, M., & Vassilvitskii, S. (2022). Algorithms with predictions. Communications of the ACM65(7), 33-35.

Seaver, N. (2019). Knowing algorithms. DigitalSTS, 412-422.






Wednesday, November 30, 2022

"JavaScript Fundamentals and Installation"


HOW TO JAVASCRIPT!

Are you an experienced programmer? Are you a new programmer? Are you looking to learn your first or new computer language? Well, if any of those questions apply to you, you have come to the right place. Look no further, your "Google" search is over. Here I will give you all the links and tools you need to install and run JavaScript. By the end of this blog, you will understand how to install and the basic principles of JavaScript...ready? Let's get started!

JavaScript is one of the many computer languages that can be utilized by a programmer. Let's begin with discussing Object-Oriented Programming (OOP) or as I like to sing as I write "are you down with OOP, yeah you know me, are you down with OOP, yeah you know me." Okay, enough of my 90`s nostalgia. 

There are four major principles that makeup OOP:

1. Inheritance: In simple terms think of this as groups like objects together to prevent writing multiple lines of code. So, I can group objects such as trains, vans, buses, and cars into a class called transportation and they will inherit those properties. 

2. Polymorphism: Let's keep it simple here with a simple translation Polymorphism simply means "Many Forms". If you are like me, you're asking yourself "what does that mean to you in programming?" Let's go back to our previous reference to class transportation. If we create a "drive" instance underneath that class, all objects (Vehicles) will be able to reference that, and it will be available. However, if I want to override one of those, let's use vans in this instance, I could go into the objects and override it to say "stop."

3. Data Abstraction: Abstraction shows the required information to the outside and hides the lower-level complex implementation (Gunasena, 2022). Using the example of cars earlier. When you start your vehicle in the morning, you need a key and fuel. Those are the things you know you need for the vehicle to run. You need to know how much fuel the injectors need or the minimum amount of charge the alternator stores to start the engine. Someone much more intelligent than I figured all of that out before and allows me to start my internal combustion engine with the simple interface and ignition and key.  

4. Encapsulation: Let's keep it simple, the best way to explain this is to hide information. Keeping in the car method, we don't want someone to take out the alternator in our engine, so we hide the fact that the battery uses the alternator for keeping charge to start the engine. While our car knows where to go to get that charge, it would not be public information in relation to the encapsulation process. 

Okay, now that you have the basics let's talk installation (The easy part). For this, I am going to provide resources and links. It is very simple to install the program and get it running. One thing that is key not you will need an Integrated Development Environment (IDE). I use Eclipse, but please pick a program that is comfortable for you. I will give you links and tutorials by

Lastly, with your newfound knowledge, let us get our first program up and running. There is a simple "Hello World" program that will help you apply the basics.  I will give you links and tutorials below for all things JavaScript. Happy Programming!!!








Installation Instructions

14) JavaScript Tutorial for Beginners: Learn JavaScript in 1 Hour - YouTube

(14) How to Install Java JDK on Windows 10 ( with JAVA_HOME ) - YouTube

IDE Videos

(14) What's the best IDE for Java - YouTube

(14) How to Setup Eclipse IDE on Windows For Java Development - YouTube

"Hello World"







References

Gunasena, A. (2022) What is abstraction in object-oriented programming? great 1 of oop, Ennicode. Available at: https://www.ennicode.com/abstraction-in-object-orient-programming/ (Accessed: December 1, 2022). 

Monday, May 31, 2021

Tech Topic Network Management

 


Network management can be defined as the ability to monitor, manage, and respond to anything inside your network, causing the network to not work correctly for any clients. Hynes 2019 states that there are five primary functions in network management: detecting the problem, isolating the problem, troubleshooting the problem, and documenting what was don’t to correct the problem. Several different items are included in your network, including clients, servers, access points, firewalls, switches, and routers. Furthermore, there are several types of networks, with the most common being WAN, WLAN, and LAN. However, depending on the network level you are monitoring, you may only have access to your LAN or WLAN. Throughout network management, several key fundamentals of Information Technology have been taught throughout this course.

            First, network management is the critical component of keeping it all together in the information technology field. Knowing how all things in the network work together, such as the hardware, software, applications, and computing devices will make managing the network more effortless. If you do not understand some fundamental basics, you will not be able to manage the network correctly.

            Next, network management relies on the hardware of the computing systems to report information correctly to troubleshoot the problems within the network and show when the network is running efficiently. Network performance is measured using metrics like throughput, uptime and downtime, error rates, percentage utilization, response time, and latency. This data is primarily collected using SNMP (Simple Network Management Protocol), without which we couldn’t identify devices, monitor network performance, or keep track of changes to the network (Hynes, 2019).

            Furthermore, one of the programming languages commonly used in network management is Python. This open-source programming language is the top choice of the open-source community. Network admins use Python for automating system administration tasks. It can be operated using plugins and scripts to integrate into various workflows.

            In addition to programming language, software plays a crucial role in network management. Several applications and software-based programs will allow you to manage everything within your network to include the transmission pieces of your signal flow. I am familiar with the program SolarWinds. SolarWinds lets you trace packets, monitor switches, routers, and traffic. Having this ability through intelligent software makes monitoring your network reliable and straightforward. In recent history, SolarWinds has been shown to have vulnerabilities to allow outside intruders to get information about your network configuration and security. As with anything in technology, the correct security protocols must be implemented once a vulnerability in the network has been identified. Gartner Inc, 2021, has several alternative monitoring tools available other than SolarWinds, such as Nagios, Microsoft, and ManageEngine. Knowing all your software and application options is just as crucial to make sure you have the capabilities need to manage and protect your network.

            By the same token, network security and network architecture are crucial elements of network management. Understanding what services you are providing and how the information flows through the network will better manage the network. Knowing how data is routed through the network allows me to troubleshoot network hardware and software problems as a communicator. For instance, if I can do a traceroute and get all my routers aren’t responding, I can pinpoint where the network error occurs. Likewise, network security is essential to prevent personally identifiable information from being leaked. The information within your network should be protected. You must ensure you have the correct hardware and software on your network to monitor threats and vulnerabilities. All networks have vulnerabilities; our job at the network management level ensures we have the appropriate policies and procedures to prevent unrepairable damage.


          In summary, effectively managing your network relies on your ability to understand the fundamentals of Information Technology. Knowing how all components of hardware, software, applications, security, and monitoring tools work together will allow you to manage your network effectively. Stephen Nappo 2021 said it best “Technology trust is a good thing, but control is a better one.”

   

References

Contributor, S. (2021, April 19). Network Management Guide: How To, Best Practices, & Tools - DNSstuff. Software Reviews, Opinions, and Tips - DNSstuff. https://www.dnsstuff.com/network-management

Gartner, Inc. (2021, February 3). Top SolarWinds Competitors and Alternatives - Gartner 2021 - IT Infrastructure Monitoring Tools. Gartner. https://www.gartner.com/reviews/market/it-infrastructure-monitoring-tools/vendor/solarwinds/alternatives

Hynes, A. (2021, February 16). Network Management: What It Is and How It Works - Auvik Networks. Auvik Networks Inc. https://www.auvik.com/franklyit/blog/network-management-for-msps-nutshell/

 

Vahid, F., & Lysecky, S. (2017). Computing technology for all. Retrieved from zybooks.zyante.com/

Friday, May 28, 2021

Network Security

 


Security within networks is the most crucial aspect of ensuring that a network operates at an optimal level and ensuring that no personally identifiable information is leaked online. Both information and system security are essential to an individual and an organization. To the individual, if you allow someone to get personal information from you by either phishing or other means, it could leave you vulnerable to bank fraud and identity theft, among lots of other things. For the organization, it is crucial to ensure system security to make sure intruders outside of the network cannot get into and disable or harm the systems of operation. Furthermore, depending on the information classification, there is a possibility of information causing a threat to national security. Typically organizations have a wealth of information about employees and dealings within the company that, if not controlled, could cause harm to the employees and the organization as a whole. There are several ways to ensure you are not vulnerable such as passwords, education, and anti-virus software. Many types of attacks can harm your network, and I will be discussing two of them: phishing and security holes and vulnerability. First, phishing is defined as a fraudulent attempt by attackers to gain sensitive information by the impersonation of a reputable source using email or other online communication (PhishingTackle.com, 2021). Typically, someone trying to launch a phising attack will impersonate an organization by making themselves look credible. They will most likely try to make the email or phone call look and sound just like it would if a bank were to call you or ask for your information. However, the best way to defend against phishing is through education. Most banks or companies will not ask for your personal information or account numbers via email or phone call. Typically, you would reach out first and provide them that information. It is crucial for people inside an organization to verify emails before clicking links within an email. I have personally seen phishing attacks where they act as an IT department and Page 3 ask for specific information about individuals and organizational policies. Phishing does not just have to be about money; it could also be about getting information that could harm the organization or company. To this day, there is no 'catch-all' method for stopping phishing; one must remain vigilant at all times and treat all emails and websites with caution when online (PhishingTackle.com, 2021). Now that we have discussed phishing, let's discuss security holes and vulnerabilities. In its simplest term, network security is a set of rules and configurations designed to protect the integrity, confidentiality, and accessibility of computer networks and data using both software and hardware technologies (What Is Network Security, 2021). Having network security will allow you to mitigate your vulnerabilities within your network. Scanning your network regularly using either hardware or software to check for vulnerabilities is crucial. If you leave yourself susceptible to attacks, it will be easier for the intruder to get inside the network. Furthermore, you can set specific rules within the systems to make them even more fortified— little things such as complex passwords or changing your password every thirty days. There also encryption devices that you could utilize to make it harder for the adversary as well. In summary, you must educate your users within your network. It is also essential that you constantly monitor your network for vulnerabilities and make sure you prevent and many security issues as possible. Martina Navratilova said it best "security used to be an inconvenience sometimes, but now it's a necessity all the time."


Jelen, S. (2021, May 25). Social Engineering: What Is It? Types of Social Engineering Attacks 

and How to Protect Yourself from Them. Security Trails. 

https://securitytrails.com/blog/social-engineering-attacks

PhishingTackle.com. (2021, January 6). Phishing: What is it and how does it affect me in 2021?

Phishing Tackle. https://www.phishingtackle.com/phishing/

Rungta, K. (2021, May 22). DoS (Denial of Service) Attack Tutorial: Ping of Death, DDOS. 

Guru 99. https://www.guru99.com/ultimate-guide-to-dos-attacks.html

What is Network Security? (2021, May 6). Forcepoint. https://www.forcepoint.com/cyberedu/network-security

Vahid, F., & Lysecky, S. (2017). Computing technology for all. Retrieved from 

zybooks.zyante.com/

Computers in the Workplace



 I have chosen to discuss network infrastructure within the military. Military networks have been going through multiple changes over the years to keep up with the ever-changing information environment for warfighting.


                Computers play a vital role in military networks and daily operations. While running a Communications Operations Center, you will have several computers running different applications for certain warfighting functions. You will most likely see an application for fires, chat, and command and control of the operational area. Furthermore, the military uses computers daily for checking email, sending reports, and accountability of people and equipment.


                Employees must be computer literate in the military. I believe that gone are the days where you say you don’t need a computer to fight a war. These days everything is virtualized to include video feeds, targeting, surveillance, and common operation pictures. If you cannot have a basic understanding of computer operation, your value in the military will be severely reduced. We currently use various applications, software, hardware, and peripherals daily.


                The leadership of DOD has believed for some time that global communications technology, epitomized by the Internet and the World Wide Web, will fundamentally transform the conduct of war in the 21st century just as airpower transformed it between World Wars I and II (Committee on Network Science, 2005). Over the next ten years, I see the military becoming even more advanced. We are currently competing with some of our near-peer aggressors to maintain momentum in the cyber warfare battlespace. There will be an advancement in networks, applications, weapons, and aircraft that will tie them into some type of military network. The Marine Corps alone had stood up several units to assist with this to include Marine Corps Cybersecurity Command and the 1st Network Battalion. The Cyberspace domain is so important that the Secretary of Defense recognized the significance of the cyberspace domain to national security and directed the establishment of U.S. Cyber Command (USCYBERCOM) as a sub-unified command under U.S. Strategic Command (USSTRATCOM) (Marine Corps Cybersecurity Command, 2018).

                As in any industry, as times change, so will the technology. To remain relevant In any industry, we have to maintain our awareness of the most current computer technology to make us as efficient as possible.


Vahid, F., & Lysecky, S. (2017). Computing technology for all. Retrieved from zybooks.zyante.com/


Committee on Network Science for Future Army Applications; Board on Army Science and Technology; Division on Engineering and Physical Sciences; National Research Council. (2005, May 1). Read “Network Science” at NAP.edu. The Network Academies Press. https://www.nap.edu/read/11516/chapter/5

Smith, B. (2018, November 12). Technology and the US military. Microsoft On the Issues. https://blogs.microsoft.com/on-the-issues/2018/10/26/technology-and-the-us-military/ (Links to an external site.)

U.S. Marine Corps Forces Cyberspace Command. (2018, February 5). About Us. https://www.marforcyber.marines.mil/About/

Traveling Through a Network



 A computer communicates via the Internet by sending a packet containing information like an address for a destination computer, the data size, and the data itself (email message, web page, piece of video, etc.) ( Vahid & Lysecky 2017). Typically, the packet will travel through your ISP via a router or switch, depending on the destination address of the information. Looking in-depth at my ping test, it seems at the beginning; all traffic follows the same path. I am assuming that the last IP, which is 65.99.53.35, is most likely the last Ip before it goes outside the ISP network. If you look at the types, they are pretty similar worldwide no matter what destination you are trying to hit. I would say the main reason for this is the availability of fiber almost worldwide. I am currently stationed in Japan, and we have one gb of speed.

In my current job, we use tracert and ping tests quite often. Once we have configured the network and assume all commands are correct, we start pinging things within our known network. A real-life example was recently when we could not ping our call manager or our server stacks, yet we could get outside the network. We had established adjacency with the network providing services. We could ping external websites and certain things inside the network but not everything. We realized by doing a tracert and going through configurations is that we had an incorrect IP address assigned to an encryption device. Without having these tools, it would have been difficult to understand why we were having issues within our network.

There a few reasons why your ping test and tracert would fail when running the test. Some of the issues you could encounter are the ISP is down, a DNS is down, or an offline website. When you run the test, and it times out, something between the host and destination is unreachable. Depending on your access to the network, that is where you can begin to troubleshoot connectivity issues.

 

Vahid, F., & Lysecky, S. (2017). Computing technology for all. Retrieved from zybooks.zyante.com/

 

ping tracrt google.PNGping tracrt google-1.PNG    ALIXPRESSPING.png  

A Day in the Life

 I consider myself an experienced user in most Microsoft Office Applications. I have had to use them throughout most of my life and career daily. I typically use Microsoft Powerpoint when I want to present a brief or some type of classroom instruction. I also think that you can utilize all applications of Microsoft together when necessary. An example that I can use is that I was building a program for a retirement ceremony, and I need to use a feature from each application. Once I completed the project, I then converted it to a PDF file and sent it off to print. Having a thorough knowledge of how all the applications can work together will benefit you on all future projects. Each application has both advantages and disadvantages. Microsoft word is limited in what it can do when it comes to processing data. For instance, if I wanted to create a budget, I do not wish to use Microsoft Word, rather Microsoft Excel would be the preferred choice. However, if I wanted to present a word picture of my budget or present the information to a crowd, I could use Microsoft Powerpoint. For documenting my day, I think Microsoft Word was the best application for actual documentation. However, If I wanted to evaluate my day and see where I could improve with time management, Microsoft Excel would be the best application. I think another scenario that Microsoft Word is good for is taking notes or organization of thoughts. I have used Word many times to takes notes in either a meeting or class in bullet format. I also think that Word is an excellent application for writing essays and grammar checking. You can synchronize your Grammarly account with Word, which allows you to check it immediately on your computer while preparing your classwork. Lastly, Word is an excellent tool for both resume-building and collegiate level papers.


Structured Programs

Development of Structured Programs A data structure is a technique of storing and organizing information so that it may be employed effect...