Introduction to Software

Objectives

  • Students will gain an understanding of what software is and how it relates to hardware.
  • Students will become familiar with important computing concepts such as abstraction, computer languages, coding, and binary.
  • Students will know the 3 major operating systems used on  computers all over the world.

In this lesson, we will be diving into the second main facet of computing: software. Last week you learned about the major physical components that go into a computer, pieces and parts that we can hold in our hand and that are usually made of metal, glass, or plastic . However, now it is time to get a little abstract. Only a little, I promise. The concepts we will be studying in this lesson are not tangible. We cannot hold 1’s or 0’s in our hand. Information that is represented by numbers (a.k.a. data) flows in and out of our computer, but at the end of the day it is all just a bunch of electrons whizzing around inside these machines we call computers.

Software is a general term people use for a variety of different programs, from operating systems that basically run your entire computer, to old-school game applications like Minisweeper. These are all types of software. But first, what is software? Let’s take a look at a the following mini-lesson written by our very own tech director, Thomas Gelder.

“Ware” is my Mind?

If you’ve spent anytime awake in the past 20 years, you’ve probably heard the word ‘ware’ tacked onto a lot of different words: Hardware, software, firmware, shareware, etc. What does it mean? Can you define it? It seems to be one of those words that everyone uses but no one can define. This post will hopefully shed some light on this. We’re going to define the term and then discuss the various contexts in which it may be applied.

What Does “Ware” Mean?

To figure this out, I started with some Google-Fu. I queried the term, “what does the ware as in software mean?”. The first result was this from Dictionary.com. The definitions were recursive and not very useful. Next I found this post on Stack Exchange – English Language and Usage.
I like this colloquial definition. ‘ware’ means a thing of this type.

Hardware

This is something you can pick up and hold in your hand. Computers compute with a central processing unit (CPU), files are stored in a hard disk or a solid state drive, heat is dissipated by use of fans and heatsinks. All these things exist in the physical world and can be touched, held, smelled, and tasted. Examples of hardware include: –

  • CPU
  • GPU
  • RAM
  • Hard Disk
  • Solid State Drive
  • Heatsink
  • Optical Drive
  • Wireless Card
  • Motherboard

(You should recognize most of these terms from last lesson)

Software

An application is software. An operating system is software. A subversion control system is software. Software combines logic (programs) with data—either from a database or supplied as input by the user—to perform a task. We call it ‘soft’ because you can’t really hold Microsoft Word in your hand. It all runs inside the hardware.

But how does it work?

At this point you may be asking yourself, how does a computer understand software? And how does it relate to hardware?

Remember, in computing humans are the ones telling the computer what to do. So a key thing to note is that at it’s core, any piece of software is just a set of instructions which humans have created that the computer’s CPU can “read”. But wait! Computers don’t speak human, right? Luckily humans are smarter than computers and have created specific languages in order to write the programs that computers can actually understand. Before we get too deep down this rabbit hole, you should know that there is a whole system of layers in computing that break down the translation from human programming languages to instructions that the computer can actually, well, compute.

Phew! I told you we were gonna get abstract. Let’s sit back watch this video to get a better understanding.

Let’s Discuss: Basic Concepts Needed to Understand Software

After watching this video, we need to get some basics down.
What is programming?
The process of giving the computer a set of commands to achieve using code.
What is coding?
The process of writing out these commands in a specific human-made programming language.
What are programming languages? 
They are just like any other language you would use to communicate! Only you are communicating with a computer and it is all syntax based.
What kind of programming languages are there?
PLENTY. Some have been specifically designed to operate certain programs, while some are used widely around the world as a standard. HTML for web design, for example.

If you ever need to refresh these ideas, this article does a fine job of breaking down these basics.

Operating Systems: The Ultimate Software 
To wrap up this lesson, you should know about the most important type of software for your computer: operating systems. This software is what your computer needs to run all other types of software such as MS Word, iCal, or any other type of application you hold. They usually come on your computer, but some are downloadable. The three main ones you should know, and probably already do, are the following:

  • OS X – for Macs
  • Windows- for PC’s
  • Linux- for anything and everything

Which one is the best one? Well, that’s a debatable topic. And it’s time for all of us to answer the ultimate question…..are you a MAC or a PC? (shout out to any Linux people out there)


 

Homework Assignment

(read entire lesson before starting)

Part A:

We will be diving into Raspberry Pi full force now that we have a general understanding of hardware and software. Your assignment: Research and report on a Raspberry Pi project you find online.

  • Step 2. Write Up: I expect a typed write up, no longer than one page, that explains the following :
    • Who created the project?
    • How does the project use Raspberry Pi?
    • What does it do?
    • What makes it innovative or interesting?
    • How can it be used as a possible tool for social justice/change/innovation?

Part B :

It is time to start your first lesson in Python! You all should have signed up for an account on CodeAcademy last class, if you didn’t have one already. Your task is to complete the first lesson in the Python Course, titled, “Python Syntax”. Complete this lesson AND the “Tip Calculator” assignment. When you are done, both should be checked off, as seen below:

Python___Codecademy

  • Submission: In order to get credit for this assignment, please send me the link to your CodeAcademy profile in your submission e-mail. This way I can track your progress. This can be done by clicking on “View My Profile” in the upper right hand corner and then just copying and pasting the link in the adress bar. Your link should look like this:
    • “https://www.codecademy.com/name_of_your_account”