Search This Blog

Thursday, September 4, 2025

Building Smarter Programs with Algorithms and Data Structures

 


Using Algorithms and Data Structures in Programming

When I first started looking into programming, I thought it was just about writing lines of code to get something to work. But I’ve learned that the way we plan and structure our code makes a big difference. Algorithms and data structures are what help us build programs that are not only correct but also efficient.

Why They Are Important

An algorithm is just a process or set of steps for solving a problem, while a data structure is how we store and organize information. Picking the right combination of these can save time and resources. For example, if I need to look up something in a sorted list, using a binary search is way faster than checking every single item one at a time.

Not all designs are equal. A stack is useful when the last thing added needs to come out first, like with undo actions. A queue is better when things need to be handled in order, like waiting in line. Sorting is another example—bubble sort might be easy to understand, but quick sort is much faster for large amounts of data.

Applying the Concepts

When I’m thinking about building a program, I ask myself a couple of questions: What kind of problem am I solving? Do I need the program to run fast, or is saving memory more important? For example, if I were making a to-do list app, I might use a priority queue so important tasks show up first. If I needed to build a system that constantly adds and removes items, a linked list would make that easier.

Closing Thoughts

As new programmers, it’s easy to just use the first solution that works. But learning about algorithms and data structures helps us make smarter choices. Using the right approach not only makes programs run better but also helps us think like problem solvers.

Wednesday, August 6, 2025

Week 1 in Code: Java, You Had Me at Hello

 



Hey everyone!

This week, I got started with Java development and wanted to share a few things I learned. I successfully installed Java on my computer, ran my first “Hello, World!” program, and started digging into the basics of object-oriented design (OOP).


☕ Installing Java

At first, setting up Java felt a little overwhelming, but these resources helped a lot:

Once everything was installed, I wrote a simple program that prints "Hello, World!" to the console. It might seem small, but it was a cool moment seeing it actually work!


🧠 Learning Object-Oriented Design

After getting Java running, I started learning about how Java uses object-oriented programming. This basically means writing code that’s organized around objects—like real-world things that have data and actions.

Here are the four main ideas I learned:

  • Encapsulation – Keeps details inside an object and only shows what’s needed

  • Abstraction – Simplifies complex systems by hiding the messy stuff

  • Inheritance – Lets one class reuse code from another

  • Polymorphism – Same method name, different behaviors depending on the object

I’m still getting used to thinking this way, but it’s helping me see how real software projects stay organized and flexible.


🔚 Wrapping Up

Overall, it’s been a good first week. I got Java installed, ran a program, and started learning how to structure code the way real developers do. I’ll be posting weekly updates as I keep learning and building—stay tuned!

Thanks for reading!

Friday, March 14, 2025

History and Future of Computers

     The history and the future of computers is an interesting topic that provides a crazy, unbelievable story viewing it in the 21st century. "We could argue that the first computer was the abacus or its descendant, the slide rule, invented by William Oughtred in 1622. However, many consider English mathematician Charles Babbage's analytical engine the first computer resembling today's modern machines." (Harris & Pollette, 2023) Babbage had created a computer with a central processing unit; however, this machine did not look like anything we have today. 

     Today, we are facing faster and faster computers that are seeing the incorporation of AI. In 2025, the RTX 50 series started incorporating AI into their graphics cards, pushing the compatibility of computers and computers. The history and future of computers could arguably be the root cause of technology. Without discovery and invention, the world and topic we call technology would be significantly different, with the possibility of not existing. 

Additionally, without the invention of computers, computer components such as processors, hard drives, graphics cards, motherboards, etc., would look vastly different if they did not exist. Although we know the invention and history of computers play a huge role in what technology we have today, the future of computers also plays a vital role in things such as software and programming languages. The integration of AI into computers impacts program languages and software. AI can write programming code in a matter of seconds through chat gbt. Additionally, AI heavily affects software. "Nearly 77 percent of devices today use AI technology in one form or another. The growth of AI startups accelerated 14-fold since 2000." (Simplilearn, 2025) We know that most windowed computers come with Cortona built-in and Siri or Google built into every smartphone (computer). Lastly, with complexity and futuristic computers, we are seeing more and more innovation in database management and network security. Since computers are becoming more and more capable, they are making it easier to store data through backup drives and cloud services. Additionally, with the capabilities of computers increasing, so will the need for increased network security.


Works Cited: 

https://science.howstuffworks.com/innovation/inventions/who-invented-the-computer.htm#:~:text=The%20first%20computer%20that%20resembled,it%20for%20nearly%2040%20years.

Simplilearn. (2025, February 12). Top artificial intelligence stats you should know about in 2025. Simplilearn.com. https://www.simplilearn.com/artificial-intelligence-stats-article

Monday, March 10, 2025

Back up Plans & Ram

 Part 1: Backup File Plans:

Using the file system, computers organize and store files on a hard drive (HDD or SSD) and other removable drives. "A file is a collection of information stored somewhere on a drive, such as a music, movie, word processing, or application. A user may wish to organize files using folders. A folder is a grouping of files or other folders that helps users organize items." (Section 4.1 - TEC 101: Fundamentals of Information Technology & Literacy | ZyBooks, n.d.)  Backup drives play a critical role in computers, as most people who use a computer will eventually find themselves in a situation where they adjacently deleted a file, the file got corrupted, or the hard drive failed (really common for HDD drives), or even the computer got dammed or stolen. In the case of data loss, the back drive saves the day as it will keep everything from the previous backup. Some people may back up files to an external drive or even use a cloud service provider in conjunction. For my backup plan, I use Windows backup. It is built into my computer and backs up my storage every day. I do not have many important files on my computer, as many applications I use have cloud services.

Part 2: Determine RAM

Ram is similar to hard drives as they are both storage; however, they are very different as they are used for different purposes. Ram is high-speed, allowing the processor to access data as needed quickly. Ram stores memory for a short period of time; it will hold memory. However, when the computer loses power when powering down, it will ultimately lose all data that was being stored.  In contrast, once data is successfully saved on a hard drive, it can still recall the data even after restarting.  

Currently, I am using my 2019 M1 Macbook Air laptop; after looking at my active monitor, I see that I have 8 GB of RAM installed and am currently using 6.99 GB of that 8GB. I am shocked about the usage; however, I am not surprised after looking at how many tabs and applications I have open if I had more RAM available to run programs faster and store files more quickly. However, I do not see an effect on my computer performance currently.


Works Cited:

Section 4.1 - TEC 101: Fundamentals of Information Technology & Literacy | ZyBooks. (n.d.). https://learn.zybooks.com/zybook/TEC101:_Fundamentals_of_Information_Technology_&_Literacy_(TED2507A)/chapter/4/section/1

Network Security

    Technology plays a massive role in today's society, so information and system security are more critical than ever. "It is clear that the rate and cost of data breaches are increasing. Since 2001, the victim count has increased from 6 victims per hour to 97, a 1,517% increase over 20 years" (Imber, 2025). In this paper, we will discuss the importance of information and system security, the different types of attacks or scams that systems might encounter, the symptoms and damage that each branch of attack can inflict, why computer systems are vulnerable to these kinds of threats, and recommendations for protecting a computer system or network.

    The need for a solid and reliable security system, whether for a personal computer at home or a commercial network system, is critical. A security system can help prevent unauthorized access to sensitive information such as Social Security numbers, banking, and credit card details. Unauthorized access to this information can cost people and companies thousands of dollars. "If it were measured as a country, then cybercrime — predicted to inflict damages totaling USD 6 trillion globally in 2021 — would be the world's third-largest economy after the U.S. and China" (Magazine, 2024). In Week 3, we discussed the capabilities of pinging servers to determine how fast packets of information could be sent and if the server was reachable. However, this capability can be used in cybercrime, called the "ping of death." "In this type of assault, the attacker sends malformed or oversized ICMP packets that exceed the maximum IPv4 packet size of 65,535 bytes. This crashes or freezes the target system as it struggles to process the oversized packets" (Rika, 2023). These types of attacks can cause frustration for owners of servers and potentially lead to revenue loss, especially if these servers are involved in business activities.

    Two other examples of attacks are phishing and exploiting security holes/vulnerabilities. Phishing is an attack in which people or programs impersonate an official person or program, such as a Microsoft representative or a popular antivirus software, to deceive individuals into handing over access to personal information such as passwords or essential files. These attacks can lead to stolen access to accounts or, even worse, identity theft. Examples of exploiting security holes/vulnerabilities include using loopholes or vulnerabilities to attack outdated, poorly designed software or weakly configured security on computers or networks. Some of the symptoms of these attacks could include data loss, unusual activity on the network, or the disappearance of documents or files.

    Computer systems will always face threats such as the ping of death, phishing, or exploiting security holes/vulnerabilities, as systems can be accessed from anywhere in the world if they are connected to the internet. Without being connected to the World Wide Web, computers would not be able to be targeted; however, they would also be unable to access the luxuries of software updates, new features, and the ability to access web pages. In order to mitigate the risk of these attacks, people and companies should always keep computers and programs updated, as this prevents the exploitation of known loopholes or weak security points in systems. Additionally, it is crucial to educate system users, such as family members or employees, about the risks of phishing scams and the necessary actions to prevent becoming a victim.



Works Cited:

Imber, D. (2025, January 22). The Latest Cyber Crime Statistics (updated January 2025) | AAG IT Support. AAG IT Services. https://aag-it.com/the-latest-cyber-crime-statistics/

Magazine, C. (2024, November 18). Cybercrime to cost the world $10.5 trillion annually by 2025. Cybercrime Magazine. https://cybersecurityventures.com/hackerpocalypse-cybercrime-report-2016/


Computers in the United States Air Force Workplace



Truth be told, the United States Air Force is heavily reliant upon computers. For example, everyone in the workforce has an employee email account, which they are expected to use for communication. Everything from putting -in leave (vacation days) to signing reports and training is all done through computers. Additionally, in the maintenance career field inside the Air Force, we use computers to follow manuals and engine part breakdowns, which we must use 24/7 when completing any maintenance action. I would not say you need a computer expert in the Air Force. However, you need to know how to update programs, work with a VPN (when you are deployed), and know your way around Microsoft Outlook and Adobe PDF pretty well. If we look at the past, emails inside the Air Force were not a big thing not too long ago, as they started going with the current email-for-life system in 2005.

    Maintenance orders were printed books rather than saved as PDFs on computers less than 10 years ago. If we look at the change in the Air Force over the course of the last 20 years, we can predict that technology will only be more prevalent within the Air Force. AI may be used on gov computers to make communication even more effective. They are currently using AR (augmented reality) for training within the Air Force, so it could not be that far off to see AI being used in some sort.

I look forward to the future of technology; it is unbelievable how advanced technology has been in the last 25 years.

Pings & Trace Routes

 Data is sent over the internet through packets of information, then translated into bits. When these bits are sent, they can travel through different means, such as routers, switches, satellites, and wires. "Packets travel over communication links (the lines in the below animation), which may be wired (like "cable TV" wires), but include fiber optic cables and wireless satellite communications too. Packets travel through several other computers on a path to a destination." (Section 3.1 - TEC 101: Fundamentals of Information Technology & Literacy | ZyBooks, n.d.) If you wanted to see how fast this information could be sent to a specific IP address, you would use ping, as it would show you the round trip time (RTT). If you wanted to see how the packets were being sent, you would use traceroute as it would show you the number of hops or steps it had to take to get there and the IP address. The ping and traceroutes are different for each website. For example, if you looked at the ping and traceroute for a website hosted nearby, it would look much faster on the RTT and hop times compared to a website hosted overseas. These packets would have to travel much further and take more hops to reach that website overseas. In conclusion, you will see longer round trip times if the geographical location is further from you.

Pings and traceroutes commands can be used to troubleshoot website connection issues. The ping can show you if the website is reachable, and the traceroute can show you where it failed along the route. If your ping request or traceroute command times out, it is possible that the device at the IP address that is trying to be reached is not powered on or the firewall or network is blocking the packets from being received.

Attached are my Ping and Traceroute for Google.com:

Screenshot 2025-02-26 at 9.47.32 PM.png  Screenshot 2025-02-26 at 9.44.21 PM.png

 









Works Cited:

Section 3.1 - TEC 101: Fundamentals of Information Technology & Literacy | ZyBooks. (n.d.). https://learn.zybooks.com/zybook/TEC101:_Fundamentals_of_Information_Technology_&_Literacy_(TED2507A)/chapter/3/section/1