Newsletter

Post #7 - How Coding Is Related To The Fundamentals Of Information Technology


 

 

Understanding the basics of coding and logical problem-solving is crucial in today's technologically driven world. This comprehensive guide will discuss the fundamentals, linking them to the core principles of information technology as outlined in "Computing Technology for All" by Vahid and Lysecky (Vahid & Lysecky, 2019). We will explore how these topics intertwine with computer science, the history of computers, and the operational mechanisms of computer systems.


Coding and Computer Science

 


 

 

Coding is an essential aspect of computer science, which studies computers, computational systems, and information technology.

 

 

 The history of computers dates back to the 19th century, with the development of machines that could perform simple calculations.  

 


An example of a simple calculation in 2023 would be this Hello Universe program using the Python programming language (Python, 2023). The words in "quotes" are printed out in the console after the run button is selected. While the example above is simple, it shows a basic computer program that runs a command entered by the programmer and a simple output to the user/viewer.

Code Background

print("Hello Universe")
Computers have physically become much smaller than the photo above showing an engineer, and continue to get smaller with nano technology (Bites, 2016).  

 


Reliance on Hardware


 

 


The effectiveness of coding and logical problem-solving is heavily reliant on the hardware components of a computer system (Vahid & Lysecky, 2019). Modern computers comprise central processing units (CPUs), memory, storage, and input/output devices. The CPU executes code while remembering and storing the data and instructions required for processing. Efficient coding ensures optimal use of these hardware resources, enhancing the computer's performance. 



A visual example of how efficient coding ensures optimal use of hardware resources could be:



Consider a software application that performs data analysis on large datasets. Inefficient coding might involve writing a function (Think of a small factory) that reads the entire dataset into memory (RAM) before processing. If the dataset is massive, this could lead to high memory usage, causing the system to slow down or even crash due to insufficient memory.


In contrast, efficient coding would involve writing a function that streams the data, processing it in chunks that fit comfortably in memory. This approach minimizes memory usage, allowing the CPU to process data in a steady flow without waiting for large pieces of data to load or causing memory overflow. By doing so, the application can run faster, use less memory, and work effectively even on hardware with limited resources.

Here, efficient coding has ensured that the memory is used optimally, the CPU's processing power is not wasted on unnecessary data management tasks, and the application remains responsive and stable, thereby enhancing the overall performance of the computer system.


Programming Languages and Execution

 


 

Various programming languages are used in coding, each with syntax and execution methods. High-level languages like Python and Java are user-friendly and closer to human speech, while low-level languages like Assembly provide more control over hardware. Understanding these languages' execution methods is crucial for effective coding and problem-solving.


Application Software

 

 In conventional stateful communication protocols, two applications operating on distinct computers initiate a connection and maintain its use for an extended duration, generally until one of the applications concludes (Anderson et. al, 2016).

 

There are three key points to remember: 

 

  • Stateful protocols involve long-lasting connections between applications on different computers, remaining active for the duration of the interaction.
  • These protocols require establishing a connection, which is continuously used until the session ends, often upon the termination of one of the applications.
  • The sustained connection persists throughout the application's communication process, as described by Anderson et al. (2016).

 

 


 Application software translates user inputs into machine-readable code, facilitating the execution of tasks. Coding and logical problem-solving are integral to developing effective application software, ensuring it performs its intended functions accurately and efficiently.

 

Database and Management 

 

Databases are structured data collections, and database management systems (DBMS) are software applications that interact with databases. Coding is crucial in creating and managing databases, ensuring data integrity, security, and accessibility. Logical problem-solving skills help in optimizing database queries, enhancing performance, and providing effective data management.


Network Architecture and Security

Network architecture refers to the design of a computer network, including its components and their interactions. Security is paramount in protecting data during transmission and storage. Coding and logical problem-solving are essential in developing secure network protocols, detecting vulnerabilities, and mitigating security threats.
 
A study of thousands of changes (commits) to security code by Wang & Nagappan (2021) mentioned: 
 
"Our research suggests that while a minority of the workforce, often referred to as "heroes," contributes to the majority of advancements in software development projects, this phenomenon does not commonly apply to the field of software security." (p. 6).
 
I found this study interesting for understanding how vital teams can be when handling security programming in the different stages of software development. 
 
The fundamentals of coding and logical problem-solving are intricately connected to the principles of information technology and computer science. They play a vital role in the operation of computer systems, the development of application software, and the management of databases and networks. This guide has aimed to bridge these concepts, providing a comprehensive understanding of their interrelations and their significance in the digital age.


Blog Maintenance and Improvement Plan

 

 To ensure the continued relevance and usefulness of this blog, a maintenance and improvement plan is in place. Regular updates will be made to keep the content current, incorporating the latest advancements in coding and information technology. User feedback will be sought and implemented to enhance the blog's usability and effectiveness. This plan ensures that the blog remains a valuable educational resource throughout one's academic journey.



This comprehensive guide has explored the fundamentals of coding and logical problem-solving, linking them to the core principles of information technology and computer science. The discussion has provided a thorough understanding of these concepts, their interrelations, and their significance in the digital age, ensuring that the blog is an effective educational tool now and in the future.



Reference 

 

Andersson, E. A., Greenspun, P., & Grumet, A. (2006). Software engineering for Internet applications. [electronic resource]. MIT Press.

 

Welcome to Python.org. (2023, October 27). Python.org.  

                https://www.python.org/


Risk Bites. (2016, July 18). What is nanotechnology? [Video]. YouTube. https://www.youtube.com/watch?v=DAOFpgocfrg


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

          https://www.zybooks.com/catalog

 

Wang, S., & Nagappan, N. (2021). Characterizing and Understanding Software Developer Networks in Security Development. 2021 IEEE 32nd International Symposium on Software Reliability Engineering (ISSRE), Software Reliability Engineering (ISSRE), 2021 IEEE 32nd International Symposium on, ISSRE, 534–545. https://doi.org/10.1109/ISSRE52982.2021.00061


Comments