ICS3U How Software Interacts with Hardware

ICS3U Learning Goals

In this ICS3U Grade 11 Computer Science lesson you will be learning how to:

  • Understand how programming languages are used to interact with hardware
  • Explain the differences between Compiled and Interpreted languages

Programming Languages

The bridge between hardware and software involves writing a computer program (set of instructions) that the hardware will execute

programming language is a set of instructions that translate a programmers intentions into a language that a machine can understand. Machines generally understand electrical currents being either on or off, so a binary system of 1’s and 0’s are used to communicate the on and off logic.

Here is a video showing the evolution of programming of popular programming languages

high level language is a programming language that enables a programmer to write programs that are more or less closer to human languages and further from machine languages. Programs that are written in a high level language have to be translated before they can run which is considered a small disadvantage. However, they are portable and can run on many different kinds of computers with few modifications. This is a very big advantage.

low level language is sometimes called an assembly language. They mostly deal a lot with specific memory locations, and hardware components that are specific to a certain piece of hardware. They are much harder to write code for. Low level programs can only run on one kind of computer and have to be rewritten to run on another.

Almost all programs are now written in high level languages if possible. Regardless of using a high level language or a low level language, the instructions have to converted to a set of 1’s and 0’s so the machine can understand the logic. There are two ways to translate a program to machine code:

Interpreting

  • Reads a program and translates the program line by line. It reads a line of code then carries out its command before proceeding to the next line of code.

Compiling

  • Reads a program and translates the program all at once before running any of the commands

Watch the following video on Compiled Code vs Interpreted Code

What programming language to learn?

In Grade 11 Computer Science, it really doesn’t matter what language we pick to learn.  Developing Software is NOT the point of the course.  We want to learn fundamental programming and problem solving skills that will allow you in the future to select the “right tool for the right job”

Once you learn the basic skills, then picking up a different language is relatively straight forward.  

Most students will learn one of 3 languages when they first start learning to program.  

  •  Java
  • Python
  • C++ (Or other C variations)

For your ICS3U course I have chosen to teach the course using Python

ICS3U Inquiry Activity - Pros and Cons to Programming Languages

In this activity you are going to do some reading on some pros and cons to the popular programming languages

Read through the following articles and create a pros and cons chart the summarizes the main pros and cons to each of languages

Submit your response to your teacher using the appropriate dropbox

Return to Grade 11 Computer Science Main Page