Introduction to Computer Science and Programming

Course created by Rachel Wil Sha Singh


📌 What is the point of computer programs?

Humans have needed to do math for thousands of years, whether it's been keeping track of inventory on early Cuneiform tablets in Babylon, using geometry to figure out how to build structures that won't fall apart, or using calculus and advanced math to figure out how to send a rocket to space.

Computers have only existed in recent times, being used in government and big business since the 1960s, and only really been accessible in average peoples' homes since the 1970s at the earliest. These days, we do much more with our computers than just performing computations, but math is the core reason computers were created to begin with.

Before electronic computers were created, governments and businesses used Human Computers to do math. If you've ever taken an Excel course, you have probably done calculations in a spreadsheet. Before computers, people had to maintain spreadsheets on paper and do the computations by hand. Electronic pocket calculators weren't available until the 1970s, and books of tables of numbers were published for more advanced computations that people could use to look up results.

If you've seen the Hidden Figures movie, it shows how at NASA they needed human computers to run complex equations to help figure out how to launch spaceships.

These computations were done manually, whether it was for government, business, or in academic settings.

📌 Machines to help calculate

Electronics as we know it didn't really kick off until the mid-1900s, but what about purely mechanical computers?

There were also attempts to create mechanical machines that help with calculations, such as Charles Babbage's Analytical Engine, which he published a proposal about in 1837. Babbage's Analytical Engine was built to be a general-purpose machine so that it could do different types of operations, and included the ability to have conditional branching (if THIS then do ____, if THAT then do ____.), loops (while x < 100, do ___.) and had basic integrated memory to store values.

However, this Analytical Engine was theoretical and never fully built by Babbage, just designed. Even so, the first programs for the machine were written by creating punch cards. Ada Lovelace was a friend of Charles Babbage and worked with him on the Analytical Machine, and is widely regarded as the first computer programmer.

Many early electronic computers shared this punchcard method of inputting programs. On the punchcards, various positions on the card represented different things, and when a hole was punched in that given location, it would indicate that item were in use, such as specific numbers.

📌 Electronic computers

Eventually mainframe computers started being used by government, big businesses, and universities. These computers took up lots of space, and sometimes entire rooms. Code for these computers would consist of basic math operations (addition and subtraction... maybe multiplication and division, but it wasn't guaranteed?) and logic operations (if X then do ___).

An institution might have a single computer or a finite amount of computers, as they were very expensive and very large. It was common to share access to these computers. Sometimes you might leave your program (on a stack of punchcards) with the computer and have to come back hours later to get the output once your program got its turn to process... Hope you didn't have any syntax errors in your code!

Monitors, or computer screens, weren't always common with computers, either. Without a monitor, results would usually be printed out in some way.

📌 Personal computers

Personal Computers began popping up around the late 1970s, and were largely a hobbyist community, but they were the first way for common people to get computers in their homes.

These computers were able to be programmed in languages like BASIC, and many early video games were created at home by young programmers.

As these computers became more affordable, all sizes of businesses also began adopting personal computers to help speed up work. Rudimentary spreadsheet software existed, businesses could hire a programmer to write specialized record keeping software for their business, and even tax software marketed to the home user who wanted to simplify their tax returns.

From Rachel Wil Sha Singh

📌 Modern computers

These days we use electronics and software in everything. Basic software is in the motion-sensor lights in a room, cars have software to control the vehicle, our televisions have software and an operating system, game consoles, and of course we have our phones and computers. Software is used across pretty much any field in the world, from airplane software to music creation software to websites and apps to connect with each other, or even just help organize our daily lives. Whatever you can think of, there is probably software related to it.

📌 Questions and reflections

  • What kind of software are you interested in?
  • What are some of your other interests, and how might that be tied in with software or technology?
  • What kind of things would you like to make?

📌 Additional resources

Additional resources from around the web!