Thursday, January 25, 2024

Newbie to Newbie: Algorithmic Design and Data Structure Techniques

 

Are some algorithms and data structure designs better than others?

Newbie to Newbie, I would like to offer this: the "better" algorithm or data structure depends on the specific problem you're solving and the constraints you're working within. It's essential to analyze the requirements of your task, consider factors like time and space complexity, and choose the algorithm or data structure that best fits your needs. There is no one-size-fits-all answer, and experienced developers often make these decisions based on their understanding of algorithmic complexity and the problem at hand. These elements should be considered when deciding on your approach to any problem.

 

Algorithmic Design:

An algorithm is a step-by-step procedure or instructions for solving a specific problem. Algorithmic design involves developing a well-thought-out plan for solving a problem efficiently. Here's how to apply algorithmic design techniques:

 

1.      Understand the Problem: Before diving into code, ensure you fully understand the problem you're trying to solve. Break it down into smaller, manageable tasks.

 

2.      Pseudocode: Start by writing a high-level description of your algorithm using plain language. This helps you plan your logic before writing actual code.

 

3.      Choose the Right Algorithm: Different problems may require different algorithms. Some common algorithmic paradigms include searching, sorting, recursion, and dynamic programming. Choose the one that suits your problem.

 

4.      Optimization: Look for opportunities to optimize your algorithm. Sometimes, a more efficient algorithm can drastically improve the program's performance.

 

5.      Testing and Refinement: Test your algorithm with different inputs and refine it as needed. Ensure it works correctly under various scenarios.

 

Data Structures:

1.      Data structures are data collections organized in a specific way to perform operations efficiently. They are essential for storing and manipulating data in programs. Here's how to apply data structure techniques:

 

2.      Select the Appropriate Data Structure: Choose the proper data structure for your problem. Data structures include arrays, linked lists, stacks, queues, trees, and hash tables. The choice depends on the operations you need to perform.

 

3.      Memory Efficiency: Consider the memory requirements of your program. Some data structures are more memory-efficient than others. For example, arrays use contiguous memory, while linked lists use non-contiguous memory.

 

4.      Time Complexity: Analyze the time complexity of operations in your chosen data structure. Some structures are faster for certain operations, like searching or inserting elements.

 

5.      Trade-offs: Understand the trade-offs between different data structures. For example, hash tables offer fast lookups but may consume more memory than arrays.

 

6.      Use Standard Libraries: Use built-in data structures provided by your programming language's standard libraries whenever possible. These are typically well-tested and optimized.

 

Better Algorithms and Data Structures:

Some algorithms and data structure designs are better than others for specific tasks. The choice depends on the problem's characteristics and the requirements of your program. Here's why one design might be preferred over another:

 

1.      Efficiency: The primary criterion is often efficiency. A well-chosen algorithm and data structure can significantly improve a program's speed and resource usage.

 

2.      Scalability: Consider how your program will perform as the input data size grows. Some designs are more scalable and handle larger datasets more gracefully.

 

3.      Memory Usage: Depending on the available memory and the size of the data you're dealing with, you may prefer data structures that are more memory efficient.

 

4.      Ease of Use: Sometimes, a simpler algorithm or data structure is preferred if it meets the program's requirements, as it can make the code easier to understand and maintain.

 

5.      Specific Requirements: Certain algorithms and data structures are tailored to solve specific problems. For instance, you can use Dijkstra's algorithm to find the shortest path in a graph.

 

In summary, algorithmic design and data structure techniques are crucial for developing structured programs. They help you solve problems efficiently, manage data effectively, and decide which algorithms and data structures to use based on your program's requirements. Always aim for simplicity, efficiency, and scalability when designing algorithms and choosing project data structures.

 

 

Resources:

January 23, 2024. Wikipedia. Data structure. https://en.wikipedia.org/wiki/Data_structure

Data Structures Tutorial (n.d.) Geeks for Geeks. https://www.geeksforgeeks.org/data-structures/

Thursday, December 14, 2023

JAVA (Newbie)

 

JAVA

 

Today begins my formal introduction to Java. Java is a widely used, high-level programming language developed by Sun Microsystems in the mid-1990s. It is known for its simplicity, portability, and robustness, making it one of the most popular languages for building various applications, including desktop, web, and mobile applications.

 One of the key features of Java is its "write once, run anywhere" principle. This means that Java programs can run on any device or platform that has a Java Virtual Machine (JVM) installed, regardless of the underlying hardware and operating system. This makes Java a highly versatile language for cross-platform development.

 Java is an object-oriented language, which means that it is based on the concept of objects that interact with each other to perform tasks. It provides a rich set of libraries and frameworks that simplify the development process and allow developers to build complex applications easily.

 Java also has a strong emphasis on security, with built-in features for memory management and exception handling. It has a large and active community of developers who contribute to the language's growth and development through open-source projects and libraries.

 Whether you are a beginner or an experienced programmer, Java offers a wide range of resources and tools to help you get started and succeed in your programming journey.

 

 Resources:

Getting started with java:

https://docs.oracle.com/javase/tutorial/getStarted/index.html

 

Installing the Java (JDK) step-by-step

https://www.youtube.com/watch?v=r59xYe3Vyks&list=PLS1QulWo1RIbfTjQvTdj8Y6yyq4R7g-Al

 

  

 

References

 

Programming Knowledge, (2014). Java Tutorial for Beginners 1 - Introduction and Installing the Java (JDK) Step-by-Step Tutorial.

https://www.youtube.com/watch?v=r59xYe3Vyks&list=PLS1QulWo1RIbfTjQvTdj8Y6yyq4R7g-Al

 

Java (programming language). 12/8/2023. Wikipedia. https://en.wikipedia.org/wiki/Java_(programming_language)#Works_cited

  

Lysecky, R., Vahid, F., Lysecky, S., & Givargis, T. (2015). Data structures essentials. zyBooks.

Monday, March 6, 2023

 SOFTWARE DREAMS & NIGHTMARES


Discuss how your selected tech topic connects to the fundamentals of information technology covered in this course.
Information Technology, or IT, is becoming increasingly more complex. The rate at which IT and its remnants accelerate and change probably has much to do with this increasing complexity. Yet still, software remains a vital part of the IT infrastructure. If IT is the hand, then the software is the fingers. I would like to think that this marriage of Information, technology, and software gave birth to the idea of computational thinking to methodically solve existing problems sequentially, spawning the algorithm (Vahid, F., & Lysecky, S. (2019). Computing technology for all).

Explain how your chosen tech topic relates to information technology and computer science concepts, including the history of computers and the means by which computers operate.
The Central Processing Unit executes a programs instructions (Vahid, F., & Lysecky, S. (2019). We learned through course text that while a computer’s hardware does the heavy lifting it is through the instruction that it operates. This instruction is called a program. Software is a set of computer programs and associated documentation and data (Wikipedia, 2023). At its inception the CPU gets its instruction from a program called machine language. Conversely an alternative was created that took machine language and transferred it to a textual  human-understandable representation called Assembly language (Vahid, F., & Lysecky, S. (2019). Through it all hardware and software remain intimately joined through the past, present, and future of IT and computer science.

Evaluate how your chosen tech topic relies on the major hardware components and functions of a modern computer system.
It is not hyperbole to say that hardware and software need each other to function. The fact that they are created in a “co-design” paradigm speaks to the unique position they hold in the life of a computer system (Abdel Hakeem et al., 2022). In my opinion as an extension of Moore’s Law hardware and software had to be created and manufactured in a way to keep pace with technology.

Explain how your chosen tech topic uses programming languages and program execution methods.
As previously stated hardware performs the functions of programs. Software is a set of programs. This instruction or specifications to perform calculations or the processing of data is called an algorithm. It is a completely interconnected system as programming languages consists of algorithms. By now it is clear that we can look at software in two aspects, as programs that drive hardware and as instruction that drive programs. In simpler terms there is software used in programming languages like C++ and Python. Then there is end-user software like Windows and Photoshop.

Analyze the role that application software plays with regard to your chosen tech topic.
My road into computer science and coding is through what I define as the beginning of the true digital revolution, at least when it comes to end-users is the App/Application. We cannot talk about software and software applications without talking about the app and how it has transformed society. The creation of application software is a discipline that requires an immersion of mind body and soul as most of its more well known creators never graduated college. There are newer routes like online courses or coding bootcamps that are becoming popular and creating a more employable option (Whateley, L. 2017). What am I saying here? while there is always a place for theory, this is a science that requires a thinking outside of the box in this ever evolving science.

Describe how your chosen tech topic relates to the basic concepts of database and database management.
As the name implies a data base is the electronic collection of data. Data is gold, there are those who collect it legally and illegally and those who mine it. Database software was created to maintain and secure that data, but also to manipulate that data in a range of ways like data reporting, forecasting, editing, creation, and updating.

Illustrate how the basic concepts of network architecture, management, and security influence your chosen tech topic.
we have provided rudimentary concepts to software in relation to hardware and machine and assembly language. We have talked about software and coding in the creation of Application software and its relation to computer systems and programs. Introducing a network its management and security represents an intensity of risk and reward. The increase in human a material capital requires a different level of scrutiny and protection. In the end it calls on  software and software applications to rise to a level that continues to keep pace with the ever present challenges .




Whateley, L. (2017, March 7). Passion replaces degrees in rush to find top tech talent; Coding bootcamps are creating a new breed of software developer, reports Laura Whateley. Gale Business Insights. https://go.gale.com/ps/i.do?p=GBIB&u=ashford&id=GALE%7CA484334403&v=2.1&it=r

Abdel Hakeem et al., 2022 Vision and research directions of 6G technologies and applications. J. King Saud Univ. – Comput. Inform. Sci., 34 (6) (2022), pp. 2419–2442, 10.1016/J.JKSUCI.2022.03.019 Vision and research directions of 6G technologies and applications. J. King Saud Univ. – Comput. Inform. Sci., 34 (6) (2022), pp. 2419–2442, 10.1016/J.JKSUCI.2022.03.019

Vahid, F., & Lysecky, S. (2019). Computing technology for all.

Wikipedia contributors. (27, February 2023). Software. https://en.wikipedia.org/wiki/Software

DOCUMENTING MY DAY (WORD)

 Each of the tasks for the week two assignment presented different challenges. Some are more involved than others. The creation of formatted text by way of a journal entry using Word was by far the less stressful. I wasted no time documenting my normal routine when ever I spend time with my grandchildren. In contrast to the spreadsheet and database applications, it was less about a narrative and more about procedure. The presentation was more a creative pursuit incorporated with the narrative using word. It was more intensive because it utilized text, images, animations, and audio. It totally encompassed the entirety of chapter five.
PowerPoint was by far the most appropriate in documenting my day because it allowed me to work with my grandchildren in the completion of the assignment. Showing them this software allowed them to see how software can be used to bring ideas to life. In the end it seemed to be an activity of the left brain right brain variety.  Using text to create narrative is simplistic and minimizes time used to convey a point. A spreadsheet and utilization of database data illustrated how one could start to really think about app creation. Last the PowerPoint application illustrated the limitless potential one could utilize to test the limits of his/her imagination.


A DAY IN MY LIFE (EXCEL)


 



A DAY IN MY LIFE POWERPOINT

https://docs.google.com/presentation/d/13Z1LdQyzXD3i3qY5bwjdC9fc2jDJZWdr/edit?usp=sharing&ouid=110391644977548931665&rtpof=true&sd=true 

 

 

A DAY IN MY LIFE

Prepping for a weekend with my grandchildren. 

 

Identify and describe at least 10 tasks that you engaged in during the course of the day.

 I often get my grandchildren (Mahaad, Mahir, and Malayah), ages (7, 9, and 12, respectively) for the weekend. At fifty-five, dealing with three precocious, know-it-all children is no easy task. So, I have to plan things out. My pre-prep before their arrival consists of.

     PREPPING MY APARTMENT

  • Relocating fragile items
  • Relocating important documents

    Creating a grocery list and heading to the Supermarket

     BREAKFAST

  • Cereal for the boys
  • Malayah like to prepare her own breakfast (eggs and bacon) 

    BATHROOM RITUAL

      •    Washing
      •    Floss & Brush
 

   BASEBALL PRACTICE (weather permitting)

     •    This will be my grandson’s second season. Mahaad is moving up from T-Ball. He will be playing with Mahir in AAA, where they use a pitching machine. This will be Malayah’s first year. These are coed leagues, and she’s older and a little intimidated by the advanced play of the boys. She did not have the advantage of starting in T-Ball and progressing through the ranks. So, the practices are really to get her physically and mentally prepared.
    •    Allow them time to run wild with their friends, with me only as a monitor.
    •    Structure is great, but kids need time to be kids. The interaction socializes them and prepares them for life.
   

   LUNCHTIME
    •    This is always a tough time a consensus wins. The politics that go on trying to get Mahaad to represent the consensus vote are comical. Malayah has more bargaining chips, so it mostly plays out in her favor.
    

  BOWLING
    •    Bowling, skating, movies, and generally anything that causes me to spend money is what they love to do. Any activity has to be coupled with pizza, chicken nuggets/strips, fries, and drinks.
    

  MOVIE NIGHT
    •    A streaming App, a good movie, and snacks are how they wind down.
    

   BEDTIME
    •    Showers, then off to bed.

Thursday, March 2, 2023

March 2, 2023

 COMPUTER: SCALE AND SCOPE

This post was about price point comparisons for two laptops from different manufacturers. We were given a scenario of being employed in the IT department of a mid-sized company. We were given a budget with some specifications and asked to make what we considered the best choice.  Class text (Vahid, F., & Lysecky, S. (2019). Computing technology for all. zyBooks) had more than prepared us to objectively look at hardware and software specifications to make an informed decision.


WEB/MOBILE APPS

This post required us to research and document Applications that we use. This was a great discussion because of my familiarity with this App.  It is like allowing a narcissist to wax poetic about himself. When you come upon a good thing, you want to tell people about it without appearing overbearing or pushy. This discussion forum allowed me to share the beauty of the SNKRS App and its ugliness.


RANDOMLY ACCESSING MEMORY & HARD DRIVES

This post was a dive into the nuts and bolts of a computer system. Hard Drives (HDD), Solid State Drives (SDD), and backing up your system. I am willing to wager a few dollars that most computer users never stop to consider what is going on under the hood. Most care nothing about the intangibles that make their lives easier, just that this computer has simplified things for them, and kudos to the ingenuity of intelligent men and women. This discussion forum was a reminder that something as innocuous as hard drives and RAM speed has always been significant in the grand scheme of things.


PING & TRACE ROUTE COMMANDS

This post was about the importance of Ping and Trace Routes. These contingency plans are implemented as a way to diagnose issues within a network. Essentially, they are the breadcrumb trails that allow IT specialists to find their way through what would surely be a maze without these commands. We were asked to document our findings to Ping/Trace Route, a company locally and internationally. What was presented was the first line of defense for IT security specialists policing a network. With cyber criminals forever on the prowl for compromised networks, the Ping and Trace Route commands are the way to stay vigilant. 


NETWORK SECURITY

This post was a continuation of the network and how to protect it. Technology moves at a breakneck speed in both directions. There are those looking to enhance networks like the evolution of 5G. Then there are those looking to exploit networks for monetary gain, like Ransomware.  We were tasked to select two network menaces and shed some light on how they work. I chose social engineering and phishing. These two tools of the cybercriminal remain ever-relevant and ever-evolving. 

Featured Post

Newbie to Newbie: Algorithmic Design and Data Structure Techniques

  Are some algorithms and data structure designs better than others? Newbie to Newbie, I would like to offer this: the "better" ...