Demystifying Computer Science: Simplifying Key Concepts for Beginners- Part I
This page aims to make the terms associated with computer science and software engineering more understandable . When I started learning computer science, I encountered a few terms that were used frequently and I found them difficult to understand because I had no familiarity with the subject during my school years. Thus, regardless of domain, this article covers the top ten computer science phrases.
In order to make these concepts easier for you to grasp and remember, I have simplified and re-defined them. This article focuses on making the terms simpler , rather than providing the correct technical definition.
- Software development
Software development is, as the name suggests, the process of developing software. A software program is a set of instructions designed to accomplish specific tasks. These instructions are used by computers to execute various tasks. In simple terms, software is a program that enables a computer to perform tasks.
The process of software development involves several key steps:
- Understanding the Problem: First, we need to understand the problem that the software aims to solve.
- Requirement Gathering: Next, we gather all the necessary information and requirements for the software.
- Designing the Architecture: We then design the architecture or workflow of the software.
- Coding: In this phase, we write the actual code using various technologies to build the software.
- Testing: Once the software is built, it undergoes testing to identify and correct any mistakes or issues and to ensure it functions properly.
- Deployment: After testing, the software is deployed for production use ( enabling users to use it ).
- Feedback Gathering: Finally, we gather feedback from clients and users to understand their experience and make improvements to the software.
For example , imagine you want to create a recipe app that helps people find and save their favorite recipes. The process of software development for this app would involve several key steps:
- Understanding the Problem: First, we identify the problem we want to solve — people need an easy way to find and organize recipes.
- Requirement Gathering: Next, we gather information on what features the app should have, like searching for recipes, saving favorite recipes, and sharing recipes with friends etc.
- Designing the Architecture: We then design the app’s layout and how users will interact with it. This includes creating mock-ups and planning the user interface.
- Coding: In this phase, we write the actual code to build the app using various technologies and programming languages.
- Testing: Once the app is built, it undergoes testing to identify and fix any bugs or issues, ensuring it functions correctly and provides a good user experience.
- Deployment: After testing, the app is launched on Playstore or App Store for users to download and use.
- Feedback Gathering: Finally, we gather feedback from users about their experience with the app. Based on their feedback, we make improvements and add new features.
2. Configure
To configure something , means to set it up with the necessary resources or adjust the settings to make it ready for a specific task or project.
For example, imagine you and your family are planning a road trip. To ensure the trip goes smoothly, you need to make several preparations:
· Check that the vehicle has sufficient petrol.
· Ensure there is a medical toolkit and an extra wheel in case of a puncture.
· Pack your bags and load them into the car.
· Carry important documents like vehicle registration papers, your driving license, and other essential information.
These preparations are not typically available in the car by default, but since you’re going on a trip, you need to ensure everything is in place to make your journey successful. Similarly, in computer science, configuring a system or project involves setting it up with the necessary resources and adjusting settings to ensure it works correctly for its intended purpose.
3. Schema
It is basically a design or blue-print of something. For example, if we were to draw a schema of a car, it would include elements like:
- 4 wheels
- 1 engine
- A steering wheel
- An accelerator
- A clutch
- A hand break
- Doors
In computer science, we create schema for the data that needs to be stored in the database. It defines how the structure of the data will be and what kind of information will be stored.
4. API
API stands for application programming interface , works as a middleman , that fetches some data from the database and returns it to the user. Consider the scenario of ordering food at a restaurant:
- You, as the customer, represent the client.
- The waiter taking your order serves as the API. You communicate your request to the waiter.
- The waiter then communicates your order to the chefs in the kitchen (backend services), instructing them on what dishes to prepare.
- Once the dishes are ready, the waiter retrieves them from the kitchen and delivers them to your table.
Similarly, in computer science, an API fetches data from a system, such as a database, and returns it to the user, acting as an intermediary between the user and the backend services. Just as a waiter facilitates the order and delivery of food, an API facilitates the exchange of data between different components of a system.
5. Debugging
If we break down the term “debugging” into “de” (meaning removal) and “bugging” (meaning bugs or errors), it simply means removing errors from our code.
6. Algorithm
It is a set of sequential steps written in a specific order to solve a problem. These steps are executed by a computer exactly as they are written.
To give an example, think about how to prepare a specific food. To create the dish, we follow a set of precise instructions given in a specified order.
7. Database
It is essentially a place where we store and manage our data , enabling quick insertion , access , modification and retrieval of our data.
Relational and non-relational data are the two primary categories into which data in computer science can be divided.
Relational Data: Structured Query Language, or SQL, is used to organize relational data. Data is kept in tables with rows and columns organized in relational databases. For example , a database of employees, might have columns for each person’s name, age, and job title, and each row would represent a single employee.
Non-Relational Data: NoSQL, another name for non-relational data, has a distinct structure. Data is stored as key-value pairs or other flexible formats instead of tables.
Imagine you have a list of students along with their corresponding ages:
- Key: “John” , Value: 20
- Key: “Emily”, Value: 22
- Key: “Michael”, Value: 19
8. Dry run
A “dry run” in computer science is a process of testing your code with particular inputs to verify if it runs successfully. A dry run, however, is carried out manually, usually with a pen and paper, in contrast to actual execution on a computer. Before executing their code on a computer, programmers can use this approach to understand how their code responds with various inputs and spot any flaws or unexpected results.
9. Bug
A bug is a mistake, fault, or problem that arises in software or code during development. Programs give false results, or even crash as a result of bugs. Finding and resolving bugs is a crucial step in the software development process.
10. Pseudocode
Pseudocode, which is usually written on paper rather than a computer, is a way to express methods or approaches to problem solving using simple language. Unlike actual code, it does not follow any programming language rules. Instead, it focuses on conveying the logic or steps involved in solving a problem or implementing a solution.
In conclusion, thank you for your time and attention to this post . I hope this information has proven valuable. I encourage you to share your thoughts or any lingering questions in the comments section below. Additionally, for those interested in further exploration of computer science concepts, please consider following my blog for future insights and discussions.