Thursday, April 16, 2026

My Beginners Understanding of Algorithms and Data Structure Designs

 Hello everyone,

When it comes to writing code, one thing that I have learned so far is that if you are just learning, you will make almost every mistake you can think of and even ones you don’t think of. I think I have spent as much time fixing mistakes as I have writing code in general. One way that can help prevent some of these mistakes is through the use of algorithmic design and data structure techniques. Algorithmic design is an important step in development as it is almost like a blueprint for solving specific problems. One of the reasons that it is so important is that it helps you keep your code efficient and reliable when done properly. When it comes to data structure techniques, they allow for the efficient organization, management, and storage of data. Due to the efficiency of the storage, it allows for the information to be accessed more quickly than a disorganized storage system. It is important to have a combination of these systems to ensure that your programs run efficiently and quickly.

There are many different types of Algorithm categories. They all have their own uses, so there is no one perfect Algorithm for every scenario. The one that I have found the most useful so far is the Merge Sort Algorithm. The Merge Sort Algorithm breaks the information into smaller pieces, then it begins to sort through the data, and finally it merges the broken-down pieces back together into one list. Granted, that is a dulled-down explanation, but it gives the general idea as a starting point to grow on. You would generally use this type of algorithm with a large amount of information, such as a database.

Data Structures are complex in their own way. They can be used to sort and store almost every type of information that you could think of. They all have their own uses in some form. There is no best option for everything. The closest thing to that would be the use of Arrays or Linked Lists in my opinion. Arrays hold memory slots for fixed-size data points. Whereas, Linked Lists utilize nodes linked through the use of pointers. Arrays are best used for when storing similar data types as that is what it is build for. Linked lists, on the other hand, are best used when frequent inputs and deletions from a system are needed, but you do not want to change the entire data set.

Moving forward, I am going to continue experimenting with different uses of the various types of Algorithms and Data Structure Techniques. Learning Java has assisted my understanding of how these cooperate with each other to create a system that is efficient and swift in execution.

Thank you all for reading.

Wednesday, March 18, 2026

Java and Object-Oriented Programming

Hello, everyone,

When it comes to installing Java, the easiest way is to go to the Oracle website and get the download from there. The most efficient way that I found was from this video https://www.youtube.com/watch?v=vt7_6HwCFOU&t=632s. This video provides information on how to install Java and the Integrated Development Environment or IDE for short. You will want to install an IDE so you can see what you are developing and if it is working correctly.

The four major principles of Object-Oriented Programming can seem complicated when you first hear them, but when they are broken down into easier words, it is more simple to digest in my opinion. Take that from a novice in the programming world.

The four major principles of Object-Oriented Programming are Encapsulation, Abstraction, Inheritance, and Polymorphism. Encapsulation combines data and functions into a class and restricts access to protect the data. Abstraction shows only what an object is instead of the process that it has to take to get there. Inheritance allows new code to use parts of the existing code, allowing people to reuse parts. And finally, Polymorphism allows objects of different types to be bundled together, allowing the interface to complete general actions.

Object-Oriented Programming is not very beginner-friendly due to its complex nature. However, if you are able to learn it, it is a great tool for developing and managing complex systems and information.

Sunday, March 15, 2026

Operating Systems Concept Map from a Beginner

     Operating systems are a complex group of different systems that cooperate with each other to make a system that can complete all of the tasks that your computer needs to complete. These systems include the Process Management system, Memory Management system, File System Management, Device Management, and Security and Protection. These systems intertwine and create the operating system that we know today. These systems help to manage hardware. The modern computer operating system is designed to balance performance with efficiency. It is a delicate balance that the system has to keep in place. The Process Management system controls how the processes function and determines how each process is operated. The Memory Management system controls how the memory functions. It controls the Random Access Memory (RAM) as well as the Hard Disk Drives (HDD) and Solid State Drives (SSD).



Processes are controlled by the Process Management system. This system determines the who, what, when, where, and how each process will operate. There are five different steps in a process cycle. These are Terminated, Running, Ready, New, and Waiting. Terminated is then the process has run its course and is finished. Running is when the process is currently in the process of operating. Ready means that the process has been loaded into the RAM. The New state is when the process has just entered the system. The Waiting stage is when the process is waiting for instructions from the Central Processing Unit (CPU) on what stage to proceed to next. These systems will share information and wait their turn through the Process Control Block (PCB). The PCB determines which process gets access to which resource at what time through the CPU.



      Main memory is also the physical component of the memory system. How I envision virtual memory is that you are outsourcing your processing to a separate device, such as a server. Due to this being stored online for you, it is virtual. The way that these systems assist and correct memory management issues is through the use of resource sharing. Main memory and virtual memory share resources to allow for processing to operate without overlap or a reduction in performance. When main memory reaches its limits, virtual memory can step in and assist with processing the information. Virtual memory assists with fragmentation through paging. This prevents the fragments of information from getting overlooked and missed.



            Modern computer systems use the File system combined with the Input/Output system and Mass Storage to operate multiple things in the computer system. Files allow for the read and write of information inside the operating system and mass storage devices such as HDDs and SSDs. The physical storage, such as HDDs and SSDs, communicates with the I/O software, allowing the operating system to control the external devices. These external devices then allow you to see and operate your computer. Which, in turn, allows you to read, write, and even delete files within the File Management system, bringing the system full circle.



            There are multiple ways to control access to files and other systems within the computer operating system. One of the most common in modern computers is through the use of access lists held by the access matrix. The access lists provide defined users with permissions onto specific objects. This allows all users with the appropriate access to access the objects that they are defined as having. The other way is through the use of capability lists. The capability lists give users access to the domain through the use of tokens. These tokens can be a security risk as if they were to be released to individuals who should not have access it would possibly create a data breach.



            In the future, I plan to either work in Information Technology or in developing games. Either path it is good to have a general understanding of how operating systems function. This understanding is the base that many future courses will build upon. Having this understanding allows me to dive deeper into the operating system to diagnose any issues that may arise in the future.

Sunday, November 16, 2025

Programming Languages

The topic of programming languages is a complex one. It has so many facets that it is almost impossible to put it into a single blog post to cover all aspects of it. From the increased power consumption to the multiple languages and types that accompany it. They all come back to the information technology (IT) field. Almost everything in IT is run on a programming language. When beginning to learn about the world of IT, it is important for individuals to have a basic understanding of programming languages to be able to diagnose issues in software. 

            The history of computers is a complex story that leads us to where we are now. According to Desmazieres, A. (2025), “Over the last 50 years, the evolution of programming languages has mirrored the growth and diversification of software development practices, at an astonishing pace.” With the advancement in technology, so too have programming languages advanced. As computers have evolved, the advancement has led to the ability to create new languages to complete new tasks. With that advancement has come drawbacks. These drawbacks are the increase in power consumption as technology and computers have advanced. A research paper created by Camargo-Henriquez, I., et al. (2024) utilized a Virtual Machine, meaning it is software that simulates a physical system to test the power consumption of different programming languages. These tests displayed that C# was the most efficient and Go was the least. This displays that the programming language chosen can determine the power that is consumed by a system running a program.

            Without proper hardware, programming languages can be less efficient and draw more power. This can put a strain on your computer or other device, reducing the lifespan of the device. The modern computer systems are created by the current programming languages. Each company uses its own language to create its operating systems. These systems must be compatible with the programming language of the application as well. For gaming, games must be altered to ensure that they work with the operating system's language so they do not cause the computers to crash or other issues that may arise from incompatible software. The type of hardware will also determine the speed and efficiency of the programming language, thus determining which language would suit the situation. It is up to the individuals creating the programs to determine what language would best work in the situation.

            Programming languages are tools used to create every program that functions on any electronic device. They range in how they are used drastically. Some are best used for things like websites and web applications, while others are best used for the development of things like video games. These languages can be split into 3 different categories: compiled, interpreted, and hybrid languages. (TestOut Corp., 2024) Compiled languages are converted or translated into the code of the machine, which allows for faster speeds. Interpreted languages are translated line by line by an interpreter. This causes speeds to be slower than compiled languages. Hybrid languages are compiled into bytecode and executed through virtual machines, allowing for a balance between the two options. This balance may be seen as the best option; however, that is not the case in every scenario. It is up to the developer or decision maker to determine what the best programming language for the situation would be.

Application software is created using programming languages. These languages can vary. The most popular programming language is Python; however, C# is gaining traction and rising in popularity. (Jansen, P., 2025) Programming languages play a key role in software development. They are used to create the software itself. This must be determined by the individuals who are creating the application. This can be one person or a group of people. Application software can be created by using multiple different types of programming languages.

            When it comes to databases and security, programming languages create those systems. Creating security systems involves an in-depth understanding of programming languages and how devices function. This understanding allows for a greater understanding of how these systems operate and allows individuals to counteract threats. Databases are important because they allow for the storage of large amounts of information in a secure way. Programming languages combine to allow for the development and customization of these systems. It allows individuals to tailor them to fit their needs.


References:

Camargo-Henríquez, I., Martínez-Rojas, A., & Castillo-Sánchez, G. (2024). Energy Optimization in Software: A Comparative Analysis of Programming Languages and Code-Execution Strategies. 2024 9th International Engineering, Sciences and Technology Conference (IESTEC), Engineering, Sciences and Technology Conference (IESTEC), 2024 9th International, 507–511. https://doi.org/10.1109/IESTEC62784.2024.10820312

Desmazieres, A., Cosmo, R. D., & Lorentz, V. (2025). 50 Years of Programming Language Evolution through the Software Heritage looking glass. 2025 IEEE/ACM 22nd International Conference on Mining Software Repositories (MSR), Mining Software Repositories (MSR), 2025 IEEE/ACM 22nd International Conference on, MSR, 372–383. https://doi.org/10.1109/MSR66628.2025.00068

Jansen, P. (2025, November). TIOBE Index. TIOBE. https://www.tiobe.com/tiobe-index

TestOut Corp. (2024). CertMaster Learn Tech+. http://www.testout.com

Thursday, November 13, 2025

Network Security

 As technology has advanced, so has the way that scammers and con artists prey on individuals. These attempts to scam come in various forms, such as HTTPS Phishing, Phishing, and Smishing. These are becoming more clever and harder to distinguish. Phishing can be accomplished in multiple ways. It can be done through email, voice, text message, and through fake websites. These are known as Phishing, Smishing, and HTTPS Phishing. These are attempts to gain private personal information, or PPI for short. Phishing and Smishing have become more prevalent in recent years.

            Phishing, Smishing, and HTTPS Phishing scams can lead to various issues arising in your computer system, as well as in your personal life. According to Ariyadasa, S., et al (2024), “Phishing, a well-known cyberattack that cannot be completely eradicated from the internet, has increased dramatically since the COVID-19 pandemic.” When it comes to your computer, these can be used to gain access to your databases, email, bank logins, and even your physical computer. These attempts are made to gather information in order to gain access to multiple types of systems. When you give information to these scams, they can use the information to gain access to computers, emails, social media accounts, and even your banking apps. These attempts can even lead to viruses in your computer system. These viruses can be used to do just about anything to your computer, depending on the virus.

            The damage caused by phishing and smishing attacks can range from minor to severe. They can steal your information and even trick people into downloading viruses. These are often carried out through fake emails, websites, and text messages. The damage that occurs is only evident after the issue occurs.

            The most effective way to prevent phishing attempts from succeeding is to not provide information or click on links from anyone you do not know. According to Waqas, M., et al (2023), “Self-regulation significantly positively predicted systematic information processing while it was a significant negative predictor of heuristic information processing.” To ensure you don’t fall prey to phishing attempts at your job or home life, verify all personnel and information that you receive requests from. If you verify the information, you will be able to determine, for the most part, whether it is a scam. Some of these phishing attempts are easy to identify because they are so outlandish, and you can tell by looking at the email or its content. Ultimately, it is up to the individual to determine the response in the end. Another way that companies do this is to prevent some of these scammers from gathering more information. Some of these individuals have been flagged by systems to prevent these numbers from appearing as regular calls. Some will be marked as spam, allowing individuals to quickly determine the number that is calling.

 

Computers in the Workplace

 Good evening, everyone,

The industry I will analyze and write about is the sales industry. I have experience with how tech can influence sales. When I worked in the insurance industry, we had multiple systems that were used to organize customer information. This system was used to organize and store all details, including Personally Identifiable Information. There was also a system to automate texts to set up appointments. The role of insurance sales as a remote job has advanced significantly to now utilize computers for making calls and documenting information. It is crucial for employees to know how to use computers, as everything is becoming digital. If you work from home, it becomes your responsibility to troubleshoot and diagnose any issues that arise. If you are experiencing trouble with the software, it is recommended to try troubleshooting your hardware before contacting customer support to expedite the process. Getting assistance from the software's technical support is fine and should be used, as they have more experience; however, you need to ensure that you take proper steps prior to contacting them, in case the issue is with your computer, which could have been fixed before calling them. Advancements in technology will advance the way that sales personnel operate. The invention of the phone further enhanced the capabilities of sales personnel, as did the computer. Next will be the furtherance of AI. When an AI system is designed for a company that can operate independently, it allows personnel to take on more workload because simpler tasks are handled by the AI.

Traveling Through a Network

            The websites that I decided to check my current ping on were Google.com, news.com.au, and japantimes.co.jp. I selected these because they are spread out quite well so I thought it would be interesting to select websites in three distinct areas in different parts of the world.

According to TestOut Corp. (2024), “Most people who use the Internet are comfortable if this time is 50 milliseconds or shorter.” The ping minimum for Google was 36ms, the maximum was 44ms, and the average was 37ms. The minimum ping for news.com.au was 58ms, the maximum was 70ms, and the average was 61ms. The minimum ping for japantimes.co.jp was 12ms, the maximum was 16ms, and the average was 13ms. The Google and Japan Times pings are within the comfortable times as listed in our textbooks. The News.com.au pings were not. They exceeded the comfort levels listed in our textbooks. I do find it interesting that the Ping in Japan is better for me than the ping for Google. I am in Minnesota, so I would think that Google would have a better ping.

            When looking at the trace routes of the three websites, you can see that Google hopped 12 times, Japan Times hopped 9 times, and News.com.au hopped 17 times. These are all different parts of the world. However, it is interesting that the website from Japan had the fewest number of hops. Logically, the further away a place is, the longer it would take for the data to make a round-trip. Both commands used provide a clear picture of the latency and packet loss for the services provided. Using both of them can help determine the problem at hand. These issues can range from network congestion to problems with your local network, all the way to your firewall blocking traffic. One of the issues that could cause an error or a timeout is a firewall blocking the traffic, as it was not designed for that specific purpose. Another possibility is that the network cables may be damaged or poorly connected, resulting in connectivity loss.

My Beginners Understanding of Algorithms and Data Structure Designs

 Hello everyone, When it comes to writing code, one thing that I have learned so far is that if you are just learning, you will make almos...