Sunday, August 28, 2022

CPT 307 Week 5 Newbie to Newbie

Applying algorithmic design and data structure techniques creating structured programs

 

https://www.prepbytes.com/summer-programs/master-data-structures-and-algorithms

           The information industry wants structured applications that efficiently handle the enormous amount of required data. For example, companies like Amazon and Facebook have large amounts of information that must be easily accessed and stored. Proper design of data structures combined with the best algorithms creates a fast retrieval from searching and sorting these massive data structures. According to Shaffer (2013), There is a benefit and costs attributed to each algorithm and data structure created. Having the fastest search and sort Big O time may result in having taken up too much space (Zeigler, J. (2004).

Learning about the different data structures helps understand that some are best in some situations, not others. The same holds true for algorithms. Algorithmic thinking is breaking a problem down into input – problem – output. The key is matching a data structure and algorithms to the needs of the application at hand and making efficient use of the systems resources (section 1). Problems of the past that could not be solved are now ready to be solved. New processing power and precise design of these systems combined with data structures and algorithms are needed to meet the demands today and in the future.

Some basic examples of data structures include stack, array, queue, stack, tree, linked lists, hash tables, trees, heaps, graphs, etc. An excellent website to review some of these data structures is by Mallawaarachchi (2020) https://towardsdatascience.com/8-common-data-structures-every-programmer-must-know-171acf6a1a42.

https://towardsdatascience.com/seven-7-essential-data-structures-for-a-coding-interview-and-associated-common-questions-72ceb644290


https://coderscat.com/how-to-learn-data-structures-and-algorithms/

Some basic sort algorithms are merge, quick, bucket, heap, counting, etc. Some sorts are faster than others on small data but could take years to sort millions of data items. Search algorithms like linear search, search one by one, and binary search uses divide and conquer is faster but requires the list to be sorted. Some other search algorithms are Depth/Breadth First search, hashing, Dynamic programming, String matching and Parsing, Exponentiation by squaring or Binary exponentiation, and many others (Ozturk.27, 2016). Ozturk27 gives an example of Binary exponentiation:

“Say you want to calculate 232. Normally we’d iterate 32 times and find the result. What if I told you it can be done in 5 iterations?”

“Exponentiation by squaring or Binary exponentiation is a general method for fast computation of large positive integer powers of a number in O(log2N). Not only this, but the method is also used for computation of powers of polynomials and square matrices. (p5)”

Some algorithms and data structure designs are better than others. For example, Brute-force or exhaustive search can take little time if done on a small power of 2 or 3, but as the powers get larger, the method could take years in the worst case (Complexity (n.d). Another example would be the google search engine algorithm, which is unique in ranking web pages to allow search by relevancy. Analyzing the program, and quantifying resources, will determine which data structure and algorithm can be used for each situation (Lysecky, Vahid, Lysecky, & Givargis, (2015). A good course that explains Algorithms and Data Structures is by McGavren (2021), located at the following link: https://www.youtube.com/watch?v=8hly31xKli0.

As a new programmer learning as many techniques as possible in developing structured programs will assist in the journey to apply algorithmic design and data structure techniques in developing structured programs. Each situation requires analysis to find the needs to meet the expectations of a successful program. Utilizing testing methods for a specific range of different data structures and algorithms is necessary for effective results. Breaking problems down into simpler subproblems can lead to quickly solving the complex issues later (Ozturk.27, 2016). Programming will require understanding data structure and algorithms to design a better future for all.

 

https://universalfreecourse.com/data-structures-and-algorithms-in-python-free-download

 


 

References

Complexity analysis (Links to an external site.). (n.d.). Retrieved from http://www.cs.utexas.edu/users/djimenez/utsa/cs1723/lecture2.html

Lysecky, R., Vahid, F., Lysecky, S., & Givargis, T. (2015). Data structures essentials. Retrieved from https://zybooks.zyante.com/#/zybook/DataStructuresEssentialsR25/chapter/1/section/3

McGavren J. (18 March 2021) Algorithms and Data Structures Tutorial - Full Course for Beginners. Retrieved from https://www.youtube.com/watch?v=8hly31xKli0

Mallawaarachchi V. (27 February 2020) 8 Common Data Structures every Programmer must know. Retrieved from https://towardsdatascience.com/8-common-data-structures-every-programmer-must-know-171acf6a1a42

Ozturk.27 (21 November 2016) 7 algorithms and data structures every programmer must know. Retrieved from https://u.osu.edu/cstutorials/2016/11/21/7-algorithms-and-data-structures-every-programmer-must-know/

Shaffer C. (March 2013) Data Structures and Algorithm Analysis. Retrieved from

            https://people.cs.vt.edu/~shaffer/Book/JAVA3elatest.pdf

Zeigler, J. (2004). Time, complexity, space complexity, and the O-notation (Links to an external site.). Retrieved from http://www.leda-tutorial.org/en/official/ch02s02s03.html 

Tuesday, August 2, 2022

CPT 307 Object - Oriented Programing (OOP's) Java installation

 

https://www.oracle.com/java/technologies/downloads/#jdk18-windows

Beginning with Java installation

Hello fellow Java enthusiasts,

Getting started with Java can seem daunting to the new programmer. I am going to share some resources I used that helped me start on the journey of coding with Java.

            The journey begins with Oracle (2015) explaining Object-Oriented programming concepts at http://docs.oracle.com/javase/tutorial/java/concepts/index.html. They explain objects, class, inheritance, interfaces, and packages in detail. Objects have state and behavior. For example, a car have state (name, color, make, speed) and behavior (Steering, gas pedal, applying brakes). Software objects are similar to real objects. Classes are like thousands of cars of the same make and model with the same blueprints of objects like cars. Inheritance is different kinds of objects like trucks, jeeps, caravans, and standard or automatic. In Java, each class is allowed to have one superclass that has the potential to have unlimited subclasses. The interface is the interaction with the outside by methods formed by objects. You interface with a car by buttons for Cruise control and many more. An interface allows a class to interact with the outside world. A package is like the different folders on your computer of various types. This is how thousands of other classes are organized for ease of use. Now that we know about OOP concepts let's move toward finding and installing Java.

Installing Java

Installing Java involves going to https://www.oracle.com/java/technologies/downloads/

and choosing between Linux, macOS, or Windows downloads. Once downloaded, the website includes instructions for installation, which will help if any complications arise. For example, I installed the download on Windows 10, and for some reason, it did not install to the correct path, and the instructions helped explain how to click on the download again and repair the path link.

Using Notepad++  to create a “Hello World” Java program to run in Power Shell or Command line. (No IDE editor needed).

The tutorial at https://docs.oracle.com/javase/tutorial/getStarted/cupojava/win32.html

explains in great detail how to complete a simple “Hello World” program in Java using Notepad++ downloaded at https://notepad-plus-plus.org/downloads/v8.4.4/

and PowerShell or command terminal to compile and create a .class file and run the .java program. The commands used to compile a class “javac HelloWorldApp.java” and execute “java -cp . HelloWorldApp” were the commands I used, except I made a HelloMynameApp.java and HelloMynameApp.class files which made the program more personal.

Example of java file and class file.


IDE installation

Downloading an IDE like Virtual Studio Code at https://code.visualstudio.com/download, Eclipse at https://www.eclipse.org/ or other platforms is an easy way to create and execute in the editor that automatically compiles the Java file and runs on a terminal in the editor. Instructions are on the websites and explain the many features available. Eclipse has a cheat sheet included when you open the application to create the Hello World Application. Virtual Studio Code can implement multiple programming languages and is an IDE platform I utilize.

Open Eclipse IDE to begin the tutorial for Hello world.


                                                               Hello World Application

There are numerous ways to make your first Java program, and Hello World is the best place to start. Oracle gives you the exact code at: https://docs.oracle.com/javase/tutorial/getStarted/cupojava/win32.html that you can copy and paste directly into your choice of editor. Best of luck creating your first program in Java!

 

 

References

Oracle. (2015). Lesson: Object-oriented programming concepts (Links to an external site.). Retrieved from http://docs.oracle.com/javase/tutorial/java/concepts/index.html

Tutorials Point (Links to an external site.). (https://www.tutorialspoint.com/java/)

Eclipse https://www.eclipse.org/

VSC https://code.visualstudio.com/download

Notepad++ https://notepad-plus-plus.org/downloads/v8.4.4/


Monday, August 1, 2022

CPT 304 Operating Systems Theory & Design Week 5 Final Project.


Feature & structures of contemporary operating systems.

Describe features of contemporary operating systems and their structures

An operating system is one of the essential programs loaded as the computer booted. Beginning computers like the Z1 1936 – 1938 ran from punch card input without an operating system. Communication between the user and a system requires an operating system (Great Learning Team, 2022). Operating systems like MS-DOS use a command line operating system. Modern Operating systems like Windows, Linux, Mac OS, Android, and iOS use a graphic user interface (GUI). Other types of operating systems are Batch, Distributed, Multitasking, Network, Real-OS, and Mobile OS (Great Learning Team, 2022). The user interface, system interface, and input/output devices communicate with the operating system through hardware and software. The Kernel is the main component of an operating system and manages system resources and other vital services. The shell is the outer part of an operating system that manages the relations between the user and the operating system. It asks the user for input, interprets it for the operating system, and manages output from the system (Great Learning Team, 2022). The main functions of an operating system are process management, memory management, I/O device management, Storage and file management, Protection and security, Error detection, and application scheduling (Silberschatz, Galvin, & Gagne, 2014). The operating system provides a place to run programs, controls memory management and CPU scheduling, manage files, networks, security, user interaction, and system services. It gives programmers easy access to design new operating systems and applications (Silberschatz, Galvin, & Gagne, 2014). Operating systems are great for user I/O and help make the processing and exchange of information fast and efficient.

Discuss how operating systems enable processes to share and exchange information.

Process Execution Synchronization & Threads.


The operating system manages processes by creating new processes, scheduling processes, terminating processes, waiting on instruction or interrupting processes, and deadlock. The traffic controller assigns the processor a task and stops it when it is not needed or needs to be delayed by another process. When multithreading is utilized, multiple processes can share resources, and inter¬-process communication allows sharing memory and message passing to control buffering of processes for fast and efficient use of multiple threads. The operating system can avoid a deadlock or endless waiting state by giving notice of all needed resources before the process is executed. Process swapping helps keep waiting processes from waiting for too long. Proper parallel programming utilizes the multicores and threads unless the process is waiting on a series process like printing to a printer. However, critical problems can arise when multiple processes share the same resources and can not execute processes simultaneously. Solutions are mutual exclusion, progress requirement, and bound waiting (Silberschatz, Galvin, & Gagne, 2014). Computers have improved speed and efficiency over the years, and memory requirements have increased. Using virtual memory technics is one way to solve memory issues.

Explain how main memory and virtual memory can solve memory management issues.

Memory Management.

Dynamic Storage Memory Allocation.

Some programs may use more main memory than is necessary to run. Physical memory can be overloaded because of extra programming for security, error predicting, and other instructions that are not needed at the time. Virtual memory management can be utilized to shrink the amount of memory a program uses. If a program requires the extra programming, it can always request to have the instruction moved up the memory hierarchy and added as needed. Many memory allocation schemes can allow the best use of memory resources for future retrieving and storing of instructions and data. Virtual memory uses software and hardware to support physical memory shortages by using disk storage as a temporary storage location from random access memory (RAM). Virtual memory uses logical addresses in a memory map, segmentation paging that the user sees, but the user does not know the physical address (Silberschatz, Galvin, & Gagne, 2014). Memory management is a necessary feature of the operating system to store data and files properly.

Explain how files, mass storage, and I/O are handled in a modern computer system.

Storage Management.

Efficient file management is determined by the size of storage available, hardware speed, and software algorithms created for best file management. Files are usually stored in folders or directories. Directory logical structures determine if files can be retrieved by only one user or accessed and shared by multiple users. The file system determines who gets specific resources. It gives and takes away resources depending on what-when-why it is needed (Silberschatz, Galvin, & Gagne, 2014). The operating system is stored in permanent storage where it can be retrieved along with other applications when the computer is turned on.

The operating system looks over the input/output management to oversee the multiple devices. It determines when or if a process can control a device and for how long a period of control. It communicates the allocation and deallocation control of devices efficiently. The kernel module controls a device with software like a device driver (Silberschatz, Galvin, & Gagne, 2014). The operating system controls the devices and allows or disallows user and program access to resources for efficiency, security, and protection.

Outline the mechanisms necessary to control the access of programs or users to the resources defined by a computer system.

Security

Protection

The operating system is tasked with protecting itself and users from other users and unintended self-harm. Algorithms, software, and hardware device protocols are implemented to prevent unauthorized access to systems and information. Users have control measures of dual authentication and token devices. Correctly set firewalls, antivirus, spyware, and access permissions to information or system access can be structured to allow authorized users ease of access and unauthorized users out. Multiple layers of security, access matrixes, and policies are needed to keep unwanted access or malicious acts to confidential files or systems (Silberschatz, Galvin, & Gagne, 2014). Security and preventive protection measures can help keep systems safe and secure from attacks and accidental access while maintaining normal operations.

Recommend how you will use these concepts about operating systems theory in future courses and/or future jobs.

These concepts will help understand future coarse concepts and structures based on operation system theories. Programming future applications and systems will implement efficient safeguards and complete hardware and software utilization. Future career development can ensure a safe environment and protection from unauthorized and system infiltration. Whether working on a single system or a whole network of systems, these concepts will significantly impact everyone’s future.

References

Great Learning Team (2 February 2022) What is Operating System and Types of Operating System.              Retrieved from https://www.mygreatlearning.com/blog/what-is-operating-system/

Silberschatz, A., Galvin, P. B., & Gagne, G. (2014). Operating system concepts essentials (2nd ed.).             Retrieved from https://redshelf.com/



Monday, April 18, 2022

Tech Topic Programing Languages

 


            Programming Languages are multiple puzzle pieces of the fundamentals of information technology. Programming languages are kind of like verbal languages. People communicate thoughts and actions to other people, and people communicate instructions for tasks and actions to computers. There are thousands of programming languages; however, some languages are more common than others, depending on the instructions needed to complete tasks and actions. According to Vahid (2017), without programming languages or instructions, information technology could not communicate to computer hardware components, routers, servers, and other devices that understand machine language (section 9). Humans can learn and understand programming language, and computers can use complier software to convert programming language to machine language to complete tasks over and over again correctly.

          Computer science and information technology, throughout history, have used some type of computer programming language for operation. From the use of punch hole cards fed into a machine to input data or a keyboard entering characters and converted to 0’s and 1’s to represent switches on or off, those machines and electronic devices operate. The instructions written by programmers are stored on storage devices for retrieval when instruction for operation is needed.

          Different programming languages are written for the major hardware components and functions of modern computer systems. Ahmed (2021) explains that programming languages like C, C++, Java, JavaScript, Python, and R are some of the main languages utilized for ease of use, reliability, and best conversion to machine language with the best results (para 3). Many languages are written mainly for humans to understand the language and the speed and accuracy of converting to machine language to complete a task or action in a fast and reliable way. There are many ways you could instruct a person to complete a task, and the same applies to telling a computer to do something. If the person and the computer complete the task precisely as instructed, the time and accuracy are dependent on the programming received. Some languages can convert to machine language fast and use functions to prevent repeating the same set of instructions which slows operation speed. For example, I could instruct you to take a step, take a step, take a step, take a step, take a step, take a step, take a step, take a step, take a step, and take a step or In a programming language; I could create a function called Step. When I instruct the computer to call the function Step 10 times less code is needed, and the speed of operation is faster.

          Modern programming languages and program execution methods are moving toward energy efficiency. Older hardware and systems used programming language focused on operating the hardware or application and not on how much power usage may be required to operate. Mahadevappa (2021) explains how modern devices use applications that drain battery life quickly. Programming languages written to complete tasks without unnecessary power will keep us operating longer and save energy resources. Some operating systems run applications fast but require too much power. Operating systems programmed with efficiency will be equal to or better in speed with less use of resources (para II). Programming language technics will use memory components, hardware, and software to maximize the performance needed for now and the future.

          Application software is developed to meet the needs and wants of consumers. Staniloiu (2021) explains consumers are demanding that applications have more security-focused and memory-safe programming languages rather than performance-based. Program libraries are needed to prevent memory leaks and refresh applications to prevent bugs or errors in operation (para I). Zhang (2021) studied significant programming languages to determine which worked best with bug resolution; some languages like Java took less time to resolve errors than others like Ruby (Para 9). Applications that are quick to fix and with protection-focused programming will ensure a safe and enjoyable environment.

          Database programming languages like SQL, C, C++, and others relate to the basic concepts of database and database management in different ways. Databases contain priceless amounts of information that must be protected and accessed by clients quickly and safely. Nitu (2021) explains that memory corruption and security holes are major issues and can be reduced by adequately written programing languages that eliminate possible errors or bugs that hackers try to exploit (Para I-V). Programmers are now focusing on efficiency, conciseness, and security.

Figure 1 Staniloiu (2021) shows a method for programmers to ensure information is secure and accessible to authorized users (Para II). Security is vital to provide a safe information technology environment.



          Network architecture, management, and security are changing the methods of programming languages. Bergmans (2021) shows that applications and operating systems programmed with conciseness and consistency are more manageable for programmers to update and control a clean structure and safe embedded platform (para VII). Programming languages are only as good as the programmers that use them. Eliasen (2018) talks about how programming languages are taught starting with the easy ideas first. He shows how students learn Java in his class. “The course is structured like so:

1.    Variables and types

2.    If/else statements

3.    Loops

4.    Arrays

5.    Methods

6.    Objects and classes

This structure is bottom-up(Eliasen, 2018).

He explains that the issue is students have trouble learning when they are learning new tool usage but do not understand why they exist. He shows, “Instead, programming should be taught top-down, like so:

1.    What is an object?

2.    What is state? What is behavior?

3.    How do we represent the state and behavior of an object?

There are two reasons this structure is superior. First of all, it puts the student in the object-oriented mindset from the start. This allows the student to tie every new thing they learn back to the idea of an object instead of being forced to cram a bunch of random things they have learned into an object. Psychology teaches us that we learn best when we are able to connect the ideas we are learning to something we are already familiar with“ (Eliasen, 2018). Understanding the best programming methods for operating systems, applications, and other essential operatives will result in the best output for our future.

 


 

References

Ahmed, Z., Kinjol, F. J., & Ananya, I. J. (2021). Comparative Analysis of Six Programming Languages Based on Readability, Writability, and Reliability. 2021 24th International Conference on Computer and Information Technology (ICCIT), Computer and Information Technology (ICCIT), 2021 24th International Conference On, 1–6. https://doi.org/10.1109/ICCIT54785.2021.9689813

Bergmans, L., Schrijen, X., Ouwehand, E., & Bruntink, M. (2021). Measuring source code conciseness across programming languages using compression. 2021 IEEE 21st International Working Conference on Source Code Analysis and Manipulation (SCAM), Source Code Analysis and Manipulation (SCAM), 2021 IEEE 21st International Working Conference on, SCAM, 47–57. https://doi.org/10.1109/SCAM52516.2021.00015

Eliasen, D. 2018 October 22) Programming Is Taught in Exactly the Wrong Way. Retrieved from https://medium.com/s/story/programming-is-taught-in-exactly-the-wrong-way-7c88181daa96

Limbüchler, T. (2020 December 11) Top in-demand programming languages to learn in 2021Retreived from https://www.wearedevelopers.com/magazine/top-programming-languages-to-learn

Mahadevappa, S., & Figueira, S. (2021). Energy-Efficient Programming Languages for Mobile Applications. 2021 IEEE Global Humanitarian Technology Conference (GHTC), Global Humanitarian Technology Conference (GHTC), 2021 IEEE, 33–38. https://doi.org/10.1109/GHTC53159.2021.9612479

Nitu, R., Staniloiu, E., Done, C., & Rughinis, R. (2021). Security Audit for the D Programming Language. 2021 20th RoEduNet Conference: Networking in Education and Research (RoEduNet), RoEduNet Conference: Networking in Education and Research (RoEduNet), 2021 20th, 1–6. https://doi.org/10.1109/RoEduNet54112.2021.9638292

Staniloiu, E., Nitu, R., Aron, R., & Rughinis, R. (2021). Extending Client-Server API Support for Memory Safe Programming Languages. 2021 20th RoEduNet Conference: Networking in Education and Research (RoEduNet), RoEduNet Conference: Networking in Education and Research (RoEduNet), 2021 20th, 1–5. https://doi.org/10.1109/RoEduNet54112.2021.9638294

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

Zhang, J. M., Li, F., Hao, D., Wang, M., Tang, H., Zhang, L., & Harman, M. (2021). A Study of Bug Resolution Characteristics in Popular Programming Languages. IEEE Transactions on Software Engineering, Software Engineering, IEEE Transactions on, IIEEE Trans. Software Eng47(12), 2684–2697. https://doi.org/10.1109/TSE.2019.2961897

Wednesday, April 13, 2022

Network Security for Individuals & Organizations

             Individuals and organizations are concerned about computer system security (SS). Kotenko (2021) explains that preparing for and preventing cyberattacks is necessary to avoid lost time and money in repairing networks or downtime from slowed or stopped networks. Most of the time is spent creating patches to fix known attacks. He explains that very complex algorithms can help detect known and unknown potential threats. Although not all threats can be stopped, SS is the best way currently to fight the war on cybercrime (P 1-8). Some of the tools used by IT Professionals are abused by criminals using ping commands.

            Internet Control Message Protocol (ICMP) is ordinarily great for finding out where errors exist inside and outside of a network; However, according to Jenashankar (2021), hackers utilize ICMP attacks for selfish and harmful means (P 1-2). Jenashankar (2021) describes the types of ICMP attacks: “ICMP Tunneling, ICMP Router Discovery, Smurf attack, Fraggle Attack, ICMP flood attack, Ping of death attack, Information Gathering, Trace Route, Port Scan, OS fingerprinting, Teardrop.” (P 3). These tools that were used for good are turned into cyber weapons by attacking the system infrastructure in different ways. Jenashankar (2021) explains that a Teardrop utilizes the IP packet sent in separate segments to create a DOS attack. It uses over-lapping IP fragments that prevent the device from putting the pieces back together and can cause the device to crash (P 4). Using blocking technics can prevent some of these attacks but may cause problems with normal operations. Deciding the best SS measures to implement is vital for productivity and protection.

            A network is yet to be created without security holes or vulnerabilities. Operating systems, applications, and programs need to be used as intended. Tools can be used as weapons also, and creating security locks and combinations can help keep the honest user honest. Access to tools is needed, and front and back doors are standard for updates and usability. Togay (2022) explains that one of the best methods for securing and filtering is a strong firewall policy. Creating a firewall with rules that stop harmful packets from damaging or slowing down everyday user experience is needed. The ideal protection allows the authorized users, impervious to attacks, to see everything coming and going before it hits critical systems (P 2). Making sure firewall settings and other security mechanisms are adequately set at home and in the workplace will hopefully keep unwanted perpetrators from their dirty deeds.

            Another critical step to prevent harm is using strong passwords and 2-factor authentication technics. Vahid (2017) explains that many sites use two-step verification to access accounts to keep harmful users having access (Section 8.3.2). Text codes are becoming popular on many online applications and website access.

                            Figure 1 Password and phone unlock features


            Any lock or password can be discovered if the right attacks, tools, or methods are used. I have had people come to me with their computers locked out because they forgot their passwords. Password cracking tools was created for retrieving those lost passwords. I have bought a cheap used $ 15.00 desktop PC from a thrift store that had a hard drive that was loose. I opened the tower of the PC pushed the harddrive back into place, and started up the computer, and the user login came up. I shut down the PC and inserted a downloaded free password cracking software, and within minutes reset the user password to a new password. I deleted all the user’s information, but hackers could use abandoned hardware to recover data. I recommend using the safe removal of information when reselling old information systems. Liu (2019) shows the methods used in password cracking software. Some companies have implemented password rules based on ease of discovery by these brute-force software technics. Many websites force users to use hard unnormal passwords; however, research has shown passwords can be cracked given enough time and access (P 1-18). There are many creative ways to prevent password cracking software, and two-factor authentication is one excellent method. We can reduce the chances for attackers by making our systems challenging. Hackers look for easy vulnerable targets. Security is essential for everyone’s safety in the workplace and at home. Everyone must make an effort to fight against the cyberwars around us.

 

 


 

References

 Ipoxo.com (2022) How does the USB-Key work? Retrieved from https://ipoxo.com/

Jenashankar, A. (2021 August 24) ICMP Attacks – Types & Codes For Log Analysis, Detection & Defense. Retrieved from https://www.socinvestigation.com/icmp-attacks-types-codes-for-log-analysis-detection-defense/

Kotenko, I., Saenko, I., Lauta, O., & Karpov, M. (2021). Situational Control of a Computer Network Security System in Conditions of Cyber Attacks. 2021 14th International Conference on Security of Information and Networks (SIN), Security of Information and Networks (SIN), 2021 14th International Conference On1, 1–8. https://doi.org/10.1109/SIN54109.2021.9699368

Liu, E., Nakanishi, A., Golla, M., Cash, D., & Ur, B. (2019). Reasoning Analytically about Password-Cracking Software. 2019 IEEE Symposium on Security and Privacy (SP), Security and Privacy (SP), 2019 IEEE Symposium On, 380–397. https://doi.org/10.1109/SP.2019.00070

Togay, C., Kasif, A., Catal, C., & Tekinerdogan, B. (2022). A Firewall Policy Anomaly Detection Framework for Reliable Network Security. IEEE Transactions on Reliability71(1), 339–347. https://doi.org/10.1109/TR.2021.3089511

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

Computers in the Workplace

    Computers in the workplace are essential to how efficiently the work is completed. The industry I have chosen for this discussion is healthcare. Having worked for healthcare facilities for the Covid-19 support mission. I found that computer security and HIPAA adherence were at the top of the list of importance. The Center for Disease Control (CDC) states, “The Health Insurance Portability and Accountability Act of 1996 (HIPAA) is a federal law that required the creation of national standards to protect sensitive patient health information from being disclosed without the patient's consent or knowledge.” (P1). Many health care organizations have older software applications connected to databases for all their clients. The government wants security and helps support these organizations to move their extensive database of information to new applications. Hiring a software company to import all clients’ data is costly because hundreds of thousands of documents must be integrated into the new online system. Employees, nurses, and doctors need access to patients’ information and online platforms that pull information from databases and allow multiple users access to move the client from check-in, treatment, and checkout as smooth as possible. Dyzma (2020) lists 13 types of healthcare software needed: “1. Electronic Health Record (EHR) Software which includes: Electronic patient record software (EPR) – used internally by hospitals to store and process their patient information. Electronic medical record software (EMR) – is used to store data like medication types and dosage, past and planned procedures and data on the patient’s recovery course. 2. Medical database software. 3. Medical research software. 4. Medical diagnosis software. 5. Medical imaging software. 6. E-prescribing software. 7. Telemedicine software. 8. Appointment scheduling (booking) software. 9. Medical billing software. 10. Hospital management software. 11. Medical equipment management software. 12. Health tracking apps. 13. Personal Health Record software (medical diaries).” (p1).

    These medical software applications are sometimes combined in one online application and need fast and updated computers. The administration has access to online databases to check insurance coverage and billing options. Doctors and nurses have access to client information databases to have a history of symptoms and treatments. Medical personnel are required to send information to government agencies. Doctors and nurses send Labs and referrals for clients, and when results come back, they enter the results and send messages of results to the client automatically by clicking a button in the patient’s profile. Everything is transmitted over encryption to protect the client’s information.

    Computers are used in all types of medical equipment to show digital results of X-rays, cat scans, ultrasounds, and many other informative and life-saving devices. Programmers design software for each device and work hard to ensure security and updates are provided as necessary. Employees need to understand how to operate computers to navigate quickly through these systems because life is in their hands. As technology has significantly advanced in the medical field, employees must keep up with the new options available. Future healthcare options will involve artificial intelligence (AI) diagnosis by DNA and treatment’s structure specifically for each patient. According to Uniphore (2022), virtual healthcare environments are in great demand and are convenient for patients. AI can spot medical discrepancies in billing and help in diagnosis and treatment (2022). Computers will have a significant impact on many fields in the healthcare industry.
Jacob shows in the illustration at the top of the page how AI can help in the future (2020). If you would like to read his article click on the picture above or this link:https://medium.com/@beyondkeysolutions/7-reasons-ai-and-healthcare-can-work-together-to-lead-to-a-better-future-43d73fab7b9f.

Computers are here to stay and will continue to enhance the quality of life around us.


References

CDC, (2022) Health Insurance Portability and Accountability Act of 1996 (HIPAA) Retrieved from https://www.cdc.gov/phlp/publications/topic/hipaa.html#:~:text=The%20Health%20Insurance%20Portability%20and,the%20patient's%20consent%20or%20knowledge.

Dyzma, M. (2020 May 06) 13 Types of Healthcare Software. Retrieved from https://www.netguru.com/blog/healthcare-software-types

Jacob, S. (2020 May 05) 7 Reasons AI and Healthcare Can Work Together to Lead to a Better Future. Retrieved from https://medium.com/@beyondkeysolutions/7-reasons-ai-and-healthcare-can-work-together-to-lead-to-a-better-future-43d73fab7b9f

Uniphore, (2022) HEALTHCARE SOLUTIONS Demand for virtual healthcare is 7x higher* than before. Retrieved from https://www.uniphore.com/industry/healthcare/?utm_source=google&utm_medium=cpc&utm_campaign=conversational-ai-usa&utm_content=conversational-ai-health&creative=488493070454&keyword=ai%20and%20healthcare&matchtype=b&network=g&device=c&gclid=CjwKCAjwrqqSBhBbEiwAlQeqGsADeNxdQZrdCGwS-6RTXFqcIEVXpidpz89fR7ZuJ9W0ZkVW_SQROBoCW2QQAvD_BwE

Tuesday, April 12, 2022

Traveling Through a Network

            Information is traveling at high speeds on the internet every day. The data is a packet sent to different IP addresses and has information to direct it to the correct computer along with the many checkpoints. Vahid (2017) shows that this information may get directed to different routes because many transmissions are sent from other computers (section 3.1). Using the ping command shows the speed a network takes to send a signal from my computer IP address through routers to the IP address of the destination. Figure 1 shows that 32 bytes of data were sent four times toward google.com, and none were lost in transmission, and the minimum speed was 17ms, maximum 18ms, and average 17ms. When I pinged news.com.au shown in Figure 2, I was surprised that the speed did not change much, and the average was 17 ms with no messages lost. However, when I pinged yahoo.co.jp shown in Figure 3, the average time was 156 ms. Japan is a great distance away, and the traceroute command tracert is shown in Figures 1-3. Yahoo.co.jp had 14 stops along the way there and back compared to 9 to news.com and 8 to google.com.

Figure 1 Ping and Traceroute for Google.com



Figure 2 Ping and Traceroute for news.com.au




Figure 3 Ping and Traceroute for yahoo.co.jp



    The response time from each device along the way is determined by traffic and the speed of the devices. I noticed that news.com.au timed out at specific stops in the route tracing. There are *s’ before the Request timed out. According to Xfinity (2022), “the final *s’ is due to a firewall blocking traceroute packets. This is perfectly normal.” (notes). Xfinity also explains that some websites do not “respond to ICMP or traceroute requests… at the beginning stops.” (2022). There could be a problem with a connection at one system or even the Hops on the way back.

    Ping and traceroute commands are great to use to find out if a printer on a network is responding or if the error is somewhere along the way. When the latency is high, there could be problems with the local network or node level, and traceroute can help troubleshoot such an issue and let users know it is not the website.

    Kaczanowski summarizes, “ping is a (very) fast way to tell if a host is reachable over a network, while traceroute can help you diagnose connectivity problems.” (Para 5). Ping is a great way to quickly verify through ICMP (Internet Control Message Protocol) that a destination can be reached. The default setting for message packets on my windows computer is four. There are also settings to do a continuous ping to see if there is trouble communicating with a particular device; the reply times may be high when a device is not working correctly.
    Round trip time and distance are not like driving on the freeway inside a car, networks are much faster, and the distance to the final destination may be fast or slow depending on the route the network traffic is routed to and from IP addresses. I think it is because of location, routes, and internet speed connection. Google data centers (2022) are more on the east and west sides of the United States and less in the middle. This may be a determining factor based on which node is chosen compared to a closer node. For example, if the packet goes to several places in the United States before moving to another country, that could slow the process down. If a direct route is available, then the packet may be sent just as fast as sent to someplace closer. I have noticed that refreshing a site with an error can sometimes open the website, and the routing path may be one issue that causes delays.
    There are many reasons for high ping times. Routers can be slowed by having too many devices connected, and connection speed can be a significant factor. For example, if an older computer connects through Wi-Fi and has a slower bandwidth device, the ping results may be high. Internet speed may be fast, but with many devices connected to a router, the total bandwidth can overwhelm the router and, in some cases, may crash or freeze. Mohta (2022) explains it “can be because of several issues such as slow or unreliable internet connection, outdated drivers, network congestion, firewall configurations, limited bandwidth, apps, etc.” (Para 2). Packets can be dropped or timed out if the receiving device does not respond. I booted up my old 2004 Dell Inspiron B120 with Zorin OS see Figures 4 and 5 and did a ping and traceroute to google.com on Wi-Fi and ethernet, and it was about the same as my faster laptop, and ethernet was the same.

Figure 4 Ping to google on 2004 laptop Wi-Fi and ethernet comparison.


Figure 5 Traceroute to google.com on 2004 laptop Wi-Fi and ethernet comparison.



    I conclude that the few milliseconds (ms) difference on my older laptop for ping might be because I installed a Wi-Fi card inside it without having an antenna, but I am close to my Wi-Fi signal. The route that information takes is dependent on traffic amount, distance, speed, and proper working equipment to speed a packet to its destination.


References

Google Data Centers (2022) Discover our data center locations. Retrieved from       https://www.google.com/about/datacenters/locations/

Kaczanowski, M. (2021 October 04) How to Use the Traceroute and Ping                  Commands to Troubleshoot Network Connectivity Issues. Retrieved                          from https://www.freecodecamp.org/news/traceroute-and-ping/

Mohta, A. (2022) Fix Ping Spikes in Wi-Fi or Ethernet on Windows 11/10. Retrieved  from https://www.thewindowsclub.com/fix-ping-spikes-in-wifi-or-ethernet-on- windows-11-10

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

Xfinity, (2022) Traceroute Command Overview. Retrieved from                                  https://www.xfinity.com/support/articles/run-traceroute-command?view=app

Website References
https://www.google.com/
https://www.news.com.au/
https://www.yahoo.co.jp/

CPT 307 Week 5 Newbie to Newbie

Applying algorithmic design and data structure techniques creating structured programs   https://www.prepbytes.com/summer-programs/master-...