Foundations of Computing

Course Materials

Course Outline

The Foundations of Computing provides students with an historical perspective on information technology, introducing the ideas and developments that have been significant in shaping modern technological society, describing and defining computing and computer technology, and looking at the impact of this technology on the contemporary world. The aim is to gain an informed critical perspective from which to assess both the positive and negative aspects of current and future applications of information technology.

The course content provides a general introduction to computing and computer technology by first tracing the historical development of modern technological society and then looking in more detail at information technology and its impact on the modern world. Here we will examine the principles behind modern computer architectures and languages, concentrating on the broader significance of computing in the intellectual, social and economic development of the modern world. Topics covered include:

  • Historical roots of technological society
  • The nature of scientific investigation
  • History of computing
  • Theoretical and technical basis of computing
  • The impact of information technology on the individual and society
  • Computation and intelligence

Topic One: A University Education

Lecture Outline:

This introductory lecture asks “What is a university education?” It is intended to challenge the expectation that getting an IT degree is all about acquiring technical expertise in order to get a better job.  We look at both Neil Postman’s critique of modern education in Technopoly and Robert Pirsig’s notion of the university as a Church of Reason in his book Zen and the Art of Motorcycle Maintenance (see the attached readings). And, of course, the lecture also provides an overview of the rest of the course.

Topic Two: Early Mathematical Foundations

Lecture Objective:

To gain an understanding of the idea of a number, a state, a number system and a mathematical proof procedure, and to gain an overview of the foundational contributions of Greek civilisation in the development of the modern world.

Overview of Topics:

  • The Idea of a State
  • The Origins of Number
  • Egyptian and Babylonian Number Systems
  • The Greeks
  • Mathematical Proof
  • The Classical Legacy

The lecture is based on Chapter 1 of The Foundations of Computing and the Information Technology Age.

Topic Three: The Birth of the Modern Era

Lecture Objective:

To gain a basic understanding of the evolution of science, computation and mathematics from the fall of Rome in 476 CE to the scientific revolution of the 17th and 18th centuries.

Overview of Topics:

  • The Hindu-Arabic Number System
  • The Renaissance
  • The Science of Aristotle
  • The Scientific Revolution
  • Pre-Mechanised Computation
  • Mathematical Breakthroughs

The lecture is based on Chapter 2 of The Foundations of Computing and the Information Technology Age.

Topic Four: The Mechanical Age

Lecture Objective:

To gain an overview of the development of mechanical computation from the scientific revolution through the work of Charles Babbage to the 19th century development of mechanical desktop calculators.

Overview of Topics:

  • The Industrial Revolution of Steam, Iron and Coal
  • Early Calculators: Schickard, Pascal and Leibniz
  • The Babbage Engines
  • Practical Machines
  • Electricity
  • Dangerous ideas

The lecture is based on Chapter 3 of The Foundations of Computing and the Information Technology Age.

Topic Five: The Universal Machine

Lecture Objective:

To gain an overview of the historical development of the electronic
stored program computer in the first half of the 20th
century.

Overview of Topics:

  • The Revolutions in 20th Century Science and Mathematics
  • Early Punched Card Machines
  • Electro-Mechanical Computing: Zuse, Stibitz and Aiken
  • The First Electronic Machines: ABC and ENIAC
  • Colossus and the War-Time Codebreakers
  • The Post-War Stored Program Machines

The lecture is based on Chapter 4 of The Foundations of Computing and the Information Technology Age.

Topic Six: Computation in Theory

Lecture Objective:

To gain a general theoretical understanding of the concept of
a formal language and the ideas of computability and computation from a consideration of the operation of a Universal Turing
Machine.

Overview of Topics:

  • The Evolution of Abstraction in Maths and Logic
  • The Concepts of Computability and the Effective Method
  • The Turing Machine
  • A Turing Machine Program
  • The Universal Turing Machine
  • But What is Computation Really?

Note: There is enough material here to split the topic over two weeks, comprising Part One of the lecture overheads (The Idea of a Turing Machine) and Part Two (The Idea of a Universal Machine).

The lecture is based on Chapter 5 of The Foundations of Computing and the Information Technology Age.

Topic Seven: The Von Neumann Architecture

Lecture Objective:

To gain a practical understanding of how a program executes within the von Neumann architecture.

Overview of Topics:

  • The von Neumann Architecture
  • The Fetch-Execute Cycle
  • Instruction Set Architectures
  • Basic Program Instructions
  • Executing a Simple Program
  • The Evolution of the von Neumann Architecture

The lecture is based on Chapter 6 of The Foundations of Computing and the Information Technology Age.

Topic Eight: Computing with Circuits and Switches

Lecture Objective:

To gain a practical understanding of how an electronic computer
performs basic calculations.

Overview of Topics:

  • Boolean Logic
  • Circuits and Relays
  • Storage Circuits
  • Circuit Notation

Supplementary Topics:

  • Boolean Arithmetic
  • Boolean Selection
  • The Arithmetic and Logic Unit

Note: The supplementary lecture and tutorial material are needed for the second assignment and require the scheduling of another two-hour lecture and one-hour tutorial.

The lecture is based on Chapter 6 of The Foundations of Computing and the Information Technology Age (see the Lecture Chapter for Topic Seven).

Topic Nine: Information Technology in Theory

Lecture Objective:

To gain a general theoretical understanding of the concept of
information technology and its role in social organisation and
control.

Overview of Topics:

  • Taking a Critical Stance
  • Defining Technology
  • The Connection between Science and Technology
  • Information Technology
  • Networks and Hierarchies
  • What is Information Technology?

The lecture is based on Chapter 7 of The Foundations of Computing and the Information Technology Age.

Topic Ten: The Origins of the Information Tecxhnology Age

Lecture Objective:

To gain a general understanding of historical background to the information technology revolution.

Overview of Topics:

  • Pax Britannica
  • The Rise of the Corporation
  • The World Wars
  • The Post-War World Order

The lecture is based on Chapter 8 of The Foundations of Computing and the Information Technology Age.

Topic Eleven: The Information Technology Revolution

Lecture Objective:

To gain a general historical understanding of the causes and e ffects of the information technology revolution.

Overview of Topics:

  • The Origins of the Information Technology Revolution
  • The Global Financial Order
  • The Global Business Order
  • Technology and Disorder

The lecture is based on Chapter 8 of The Foundations of Computing and the Information Technology Age (see the Lecture Chapter for Topic Ten).

Topic Twelve: The Scientific Turn of Mind

Lecture Objective:

To gain an understanding of how science has fundamentally shaped our understanding of the world and the place of humanity within it.

Overview of Topics:

  • The Scientifi c Method
  • Science, Biology and the Brain
  • The Computational Theory of Mind
  • The Mind/Brain Problem
  • Science and Society

The lecture is based on Chapter 9 of The Foundations of Computing and the Information Technology Age.

Course Assessment Materials

In-Class Minitests

Turing Machine Assignment

Logic Calculator Assignment

Final Exam