Introduction to Computer Science: The Basics (Part One)
Explore the fundamentals of computer science part one
The Start
A computer is a device that is capable of storing and manipulating information through various processes. It can perform complex calculations, organize and store vast amounts of data. Computer science is a field that focuses on studying computers and their applications in solving problems for us. All the hardware that you see in a computer and the software work together to make a computer run. This includes the study of computing systems, programming principles, data analysis, networking, the internet, and how computers impact our lives.
Computers are better at storing and sharing vast amounts of information and solving calculations quickly than we humans are. Computer scientists will use the computer’s abilities to help create new technologies that will improve our lives. They do so by programming computers to complete a task faster and more efficiently.
Examples of computer science:
Using C++ and C# to program a game
Developing mobile applications
Writing programs to calculate math problems a lot faster
Concepts
Some main concept areas of computer science:
Computing systems: Computing systems are the machines that process information and run programs. These include devices such as smartphones, laptops, and desktop computers. Additionally, many electronic appliances and gadgets, such as dishwashers, televisions, and smartwatches, are equipped with embedded computers that enable their functionality and automation. These devices rely on programs and algorithms to carry out specific tasks.
Algorithms and programs: Algorithms and programming involve writing out programs (code) that will tell the computer what to perform. An algorithm is a set of instructions or steps written in human language that guides an individual in completing a specific task. A program is a set of instructions translated into code so a computer can understand.
Data analysis: Data analysis is collecting, storing, organizing, and studying what the data means. Computers are great at these sorts of things, so they’re perfect for analyzing data.
Internet and networks: The Internet is a worldwide network that links millions of computers. A network is a group of connected devices that share information.
Impacts: This is the study of how computers impact our lives. Just cause we can always build new innovative technologies doesn’t mean that we should.
Computers
People back in the day used devices like an abacus to help calculate math problems. This all changed during the 1940s or so when the first electronic digital computers were invented. It was called the Colossus and was built in England. But after a while, Americans made a faster computer called ENIAC (Electronic Numerical Integrator and Computer). These computers were massive and they took up the entire room. They were mainly used by governments, large businesses, and researchers.
Nowadays computers are portable and tiny. Smartphones are considered computers since they can perform calculations, run programs, and store information.
Parts of a Computer
Computers are made up of hardware and software.
Hardware: This is the physical part of a computer such as a screen, mouse, and keyboard. If you can see the parts, it is hardware. These can be separated into different categories:
Input: These are parts used to send information to a computer such as a microphone, keyboard, mouse, and webcam.
Output: These are parts the computer used to send information to you such as monitor, printer, and speakers.
Storage: These are parts used to store information such as hard drives, SSD, and flash drives.
Processing: These are parts of the computers used to run programs which include the central processing unit (CPU) and the graphics processing unit (GPU). A CPU is the brain of the computer. It receives inputs and executes commands. It is made up of the control unit, main memory, and arithmetic logic unit. A GPU is more focused on graphics which are images of different kinds. The GPU delivers images to the computer’s screen.
Software: This is the set of programs that tells a computer what to do. There are different kinds of software for different purposes. An application is a program that allows a user to perform a certain task. Not all programs are applications, but all applications are programs since some applications are for computers and not for us using them. Software is stored on storage devices such as solid-state drives, hard drives, and flash drives. Like hardware, these can be separated into different categories:
Application: These are programs that allow users to complete a task.
System Software: These are programs that allow hardware devices to work together and properly with other programs. Operating systems like MacOS or Windows are examples of system software. Applications can’t work without system software.
Hardware and software by itself are pretty useless on their own. They are only useful when they’re put together.
Interacting with Computers
Human-Computer Interaction
This is the study of how users work with computers. The whole purpose is to find improvements and make it easy for users to use. Here are some concepts:
The user interface (UI) includes all the components of a computer system that allow users to interact and operate the computer. It’s basically the graphical, textual, and interactive elements that allow us to communicate with the system and perform various tasks.
A graphical user interface (GUI) is a type of UI that uses symbols and icons. This just makes it easy to use.
A command-line interface (CLI) uses only text to operate a computer. This is difficult to use as users need to type a specific command for it to work. Most people don’t need to know the specific commands.
Troubleshooting
Troubleshooting is taking a step-by-step approach to solving errors within software or debugging programs.
Debugging is finding and fixing ‘bugs,’ or errors within a program. Bugs may be caused by syntax errors and/or spelling mistakes.
Storing Information
Computers are powerful tools that process and manipulate information, enabling us to efficiently utilize and interact with data. For example:
Map apps use information from satellites to help navigate the world around us
Self-driving cars gather data and information to make predictions and decisions. LIDAR uses light to measure the distance to a target. Radar uses radio frequency to detect the distance from a target.
Data
Data is a collection of unorganized numbers, words, and figures that don’t have any meaning. Data can take many different forms depending on the information.
Input data is organized information put into a computer
Output data is the information the computer gives out after it has been processed
Information is data that have been organized to have meaning. Basically, there is now context.
In order for computers to process data, it needs to be formatted in a way that the computer can understand. This involves encoding the information, which converts different forms of data such as images, videos, or text into a specific code that can be understood and processed by the computer. Encoding allows the computer to interpret and manipulate the data.
Decoding is the process of converting encoded information or code into an understandable form of communication. An example of decoding is when Morse code operators receive messages in the form of dots and dashes and decode them back into English. Decoding allows us to retrieve and interpret information that has been encoded for storage.
Data encoding schemes are methods used to represent various types of information in a format that computers can understand. These schemes allow us to convert data into a standardized form that consists of sequences of the binary digits 1 and 0, which computers can process.
Any code that uses 1s and 0s is considered binary code. Encoding schemes were created so computers can understand, create, and interpret data.
Colors
Different kinds of data such as colors are encoded in different ways. The most common ways are RGB and Hexadecimal.
RGB (Red, Green, Blue) is a color notation system commonly used to represent colors. It employs three numbers separated by commas, with each number ranging from 0 to 255. These three values correspond to the intensity of red, green, and blue. By adjusting the intensity of each color, a wide range of colors can be achieved. When these shades of red, green, and blue are combined in varying proportions, they blend together to produce different colors. There are millions of ways to combine three numbers, so there are millions of colors that can be represented.
The hexadecimal color notation uses six characters to represent the same million of colors as RGB. It’s different from RGB because it uses numbers and letters. It’s basically a combination of 0-9 and letters A-F. For example, #A020F0 would make a purple color by using the letters A and F as well as the numbers 0 and 2. Each two sets of characters (A0, 20, and F0) represents a different color.
Collecting Information
There are different ways to collect information such as:
Interviewing people
Giving people surveys
Making observations
Computers help us by making all these methods more efficient. It can collect and analyze data a lot faster than a human can.
Interviews
Interviews gather information by talking to people and asking them questions. They are a great way to get detailed information and it’s a great way to deeply understand the person you’re interviewing with. It works great when you need to collect data from a small group of people. The bad thing about interviews is the response isn’t easily computable. This means we can’t use an algorithm to find a pattern in the data.
Surveys
Surveys are a list of questions that can be completed through websites, emails, or on paper. It’s a great way to gather information in a large group of people. Surveys are more time-efficient because we can just hand them out and people can complete them on their own. The bad thing is people may not complete all of it and it’s difficult to gather detailed information. Some survey questions may include:
Open-ended questions
Multiple-choice questions
Scale questions
Observations
Observations are looking at an event and collecting data. One example is gathering points, rebounds, and fouls at a basketball game since it requires a person to observe it.
Graphs
Graphs are a great way to visualize data. Computers use different kinds of charts and graphs to represent different types of information. It’s a great way to analyze, communicate, and draw conclusions about the information. Here are different kinds of graphs and charts:
Line graphs: used to show changes over time
Bar graphs: used to compare different values in a category
Pie charts: used to show the percentage of parts of a whole
Testing
Testing is important as many things can go wrong in a program.
Defensive programming involves developing software in a way that ensures it remains functional, even when encountering unexpected situations or errors. For example, if you write a program that requires a user to input their email address, you can try to produce an error by entering letters that do not represent an email address. By expecting potential issues and implementing safeguards, programmers can prevent their programs from crashing or producing incorrect results.
Use cases
Use cases are representations of interactions between users and a system or software application. They outline the specific actions or tasks that users can perform while using the program. Use cases help identify and understand the functionality of a system to make sure it aligns with user needs and business objectives.
Test cases
Test cases are individual tests designed to validate specific functionalities or behaviors of a software program. They provide detailed conditions and inputs to assess the expected outputs and behavior of the program under different scenarios. Test cases are typically focused on testing one particular aspect or condition at a time to make sure it works in all situations.
Documenting
Documentation is a vital aspect of software development that provides information about the code. It serves as a reference guide for developers of the program. There are two primary types of documentation commonly used: comments and README files.
Comments
All programming languages have a way to add comments to a code. They are written by programmers about the program’s code and are explanations about what the code does, or reminders to add or change the code. Sometimes when you write large programs you might forget what the code does, so commenting helps you remember what the code does.
README
README files give information about a program which may include how to install it, how to use it, or give our credits and references. Usually, they are written in a plain text file and there is one README file per program.
[End of Part One]
Really comprehensive post, Ivan. Saved!