Computer Science and the IT Revolution
Syllabus
Detailed Syllabus
1. Introduction, Motivation and Top level Demystification (3 lectures)
Goal: To illustrate pervasiveness of computers and how it has changed our lives in a significant way. Introduce the type of CS components (as black boxes) that go into some technologies. Discuss what is needed to have ITEM -- "IT-Enabled Mindset".
Topics: Some examples such as Email, Walk through a house, electronic bank transaction, CD/MP3, module registration, Linc, expert system, sum of 1 to 100, etc would be considered to illustrate the pervasiveness of computers and to introduce the various CS components (as black boxes) that are needed to make the above work. Search Engines. Examples of advantages of having an IT-enabled mindset.
2. Hardware (2 lectures)
Goal: Physical realization of a computer and its different from the architecture of the human brain. To give some simple steps to illustrate how a physical computer may be constructed. To understand that computers are essentially devices computing logical functions. To illustrate the approach of building complex systems by incrementally realizing and putting together well defined simpler parts.
Topics: Neuron-axon structure of the brain, binary numbers, boolean logic, logic gates, transistors, combinatorial/sequential circuits, memory, CPU, ALU, Von Neumann Architecture, peripherals. The above topics will be explained using simple examples with the aim to give an idea to the students about how the physical computer can be built and their scientific basis. In general in this and all topics below the idea would be to give only a brief overview so as to "demystify" the technology and address the advantages and impact of the technology.
3. Abstraction, Specification and Problem Decomposition (1 lecture)
Goal: To appreciate difficulties involved with developing and understanding large scale complex systems. To present principled methods and modes of thought that computer scientists and engineers have adopted for making large problems more tractable.
Topics: Notions of abstraction, decomposition, interfaces, reuse. Abstraction, specification and decomposition as powerful modes of thought and problem solving approaches for dealing with large complex systems. Examples of the above in developing and understanding algorithms. Code libraries as collections of well specified abstract routines to support re-use.
4. Algorithms (7 lectures)
Goal: To introduce the notion of algorithms as a means for telling a physical device, how to solve a problem in a step by step fashion. To study some basics on complexity of solving a problem.
Topics: Notion of an algorithm. Some simple algorithms and basic ideas about complexity of an algorithm.
5. Virtual Machines and Networks (1 lecture)
Goal: To appreciate the idea of creating and presenting more versatile interfaces for computing machines, and to understand how these vastly different interfaces can be implemented merely through appropriate software programmes (OS/System Software/High-level Languages). To present and highlight the idea and advantages of linking together multiple machines that are physically separated to form ``communities'' of machines with unique identities.
Topics: Notion of language translators as programmes, to present an apparently new and more human-friendly machine that understands higher-level commands. Notion of using programmes on a single physical machine to emulate multiple machines existing simultaneously and independently.
6. Artificial Intelligence (7 lectures)
Goal: To address the question (and broader issues) of whether computers are basically dumb machines following instructions (programs), or whether programs can exhibit ``autonomous'' behaviour, and hence ``intelligence''. The quest to qualify the notion of machine intelligence and ways of achieving or at least emulating it.
Topics: Philosophical issue. Can machines think? or do they just follow programs? Can we think or are we just following DNA? Historical Perspective on how machine trying to do human like activities were built. Perception, recognition, reasoning, knowledge representation, learning, expert system, game playing.
7. Computer limitations and future trends (3 lectures)
Goal: To provide a mathematical model to reason about the capabilities of computers, what computers can or cannot do, and how efficiently they can do? To highlight and appreciate the intellectual beauty that one can reason about the capabilities of computers and arrive at powerful conclusions without experimentation. To understand how various scientific advances have influenced the cost, performance, size and availability of computers, and the extent to which the current trend might continue. To understand how computers have been and might be employed as a result of its increasing pervasiveness. To examine some predictions, and to evaluate their technical soundness and/or feasibility based on current knowledge.
Topics: Godel’s incompleteness theorem, Turing Machine, Church Turing Thesis, Unsolvability Efficiency/Complexity of solving problems. Neuromorphic computers. Quantum devices.
8. Revision (2 lectures)
Rationale
Rationale and Module Objectives
We live in a world where technological advances and technology related decisions constantly impact society in many different ways. A well rounded tertiary education must therefore adequately prepare students to understand technology and its implications on society. Being able to critically assess technological claims helps one make better judgements that could significantly affect our world.
This module looks at central ideas and major technological advances in the field of computer science, and how these developments have shaped modern society through the IT revolution. Although the specific subject matter deals with computer science and information technology, the module objectives are more general in nature. We aim to develop in students:
- A balanced perspective of science, technology and their impact on modern society.
- An appreciation of the applied sciences and engineering fields, their approach towards human knowledge, the mindsets, goals and endeavours of people working in these fields.
- Essential skills for approaching and understanding new technology to critically assess potential benefits and risks.
Upon completing this module, students can expect to:
- Gain basic science and technology literacy skills.
When presented with new technology, be able to (i) appropriately question and understand its scientific basis; (ii) sensibly assess its capabilities and its broader implications. - Appreciate the intellectual element behind innovative technical ideas, creative ways of identifying and formulating technical problems, brilliant ways of approaching and solving technical problems.
- Appreciate innovative ways of employing technology, and the powerful changes that these ideas can bring forth.
- Be aware that technology can have far-reaching effects on society, some of which may not even be apparent at first glance. Realize that one must carefully anticipate consequences and consider alternatives when making important technology related decisions.
Philosophy
Teaching Philosophy and Approach
This module will examine some significant ideas in the evolution of computer science. The ideas will be selected in a representative fashion to include:
- Creative engineering solutions that overcome or circumvent physical constraints to realize physical systems.
- Technical or conceptual ideas that enhance or introduce new functionality into the state of art.
- Powerful conceptual frameworks that lead to better ways of characterizing, interacting with and/or reasoning about technology.
- Innovative ways of employing technology that revolutionalize thinking, work and social trends, by making feasible activities that were physically impossible or too costly to pursue in the past.
Each key idea we examine will be approached in three steps:
- De-mystification. What is the key idea about? What are the main scientific, technical or conceptual principles behind the idea? How can we explain the key idea in terms of the main underlying principles and their functionality.
- The intellectual contribution. In what way is the idea significant? In what way is the idea a technical or a conceptual breakthrough. Is the idea a significant and timely departure from existing technical trends and entrenched practices, leading to new possibilities and new perspectives?
- Broader Implications. How does the new development impact existing practices, values and society as a whole. Are these changes desirable? What other measures could have been taken, or alternatives that could have been considered in light of these consequences.
Our goal is not to present a comprehensive coverage of technical areas in computer science. The topical studies partly exemplify how one can systematically approach technology to understand its capabilities. We use diverse examples to impress upon students that technological contributions can be significant in many different ways. The examples also show that success measures in technology are often pragmatic but sometimes different from those of the basic sciences.
Similarly,we do not intend to discuss all possible avenues where technology can impact society. Our goal is to impress students that technological advances can have diverse and far-reaching effects on society, so one should be cautious and thorough when making important technology related decisions. We shall use a few carefully chosen case studies touching on disparate issues to convey these messages. Furthermore, we will discuss at least one example where the social consequences can be significant, but the connections to technology may not be immediately obvious.
Module Structure
Module Structure
The common subject matter will be about conceptual and technological enhancements built around the computer.
We begin with a few motivating examples of modern computer technology to demonstrate its complexity and pervasiveness. We will then explain these complex systems in terms of their simpler components to present an overview of some important technical issues in modern computer science.
The main module component consists of several inter-related but self-containing topics, each presenting and evaluating a significant development in the evolution of computer science. We will approach each topic following the three steps sketched in Teaching Philosophy and Approach.
There will be some lectures toward the end of the module to discuss the following issues in a cohesive fashion:
-
- Modes of Thought and Approaches toward Knowledge.
We will examine the Abstraction, Decomposition and Specification framework as a powerful problem definition and problem solving approach, common to many science and engineering disciplines. - Intellectual Quests.
Are human beings sophisticated computers? Can we build computers to sense and reason like human beings? We will look at advances in machine perception, cognition and artificial intelligence to shed light on these philisophical questions about computers and humanity. - Future Trends.
Where are we today in computing technology ? We shall compare modern processors (Merced, G4) with early processors, calculators and human number crunching abilities.
What are some possible next leaps in the evolution of computer technology, and in what ways will they be significant developments? (eg. Quantum computing and bio-computing.)
What interesting or revolutionary applications of computer technology are we likely to see in the near future ? (eg. Electronic commerce, credit, records, cashless economies. Virtual worlds for immersive teleconferencing, training, entertainment.) - Technology and Society.
One lecture to show the pervasiveness of computers and information technology on modern society.
One lecture to cover a range of issues that arise because of computer technology, and how technology has changed entrenched notions, practices and institutions. (eg. Privacy, software piracy and intellectual rights. Acceptance of technology, as in issues with electronic signatures?)
One or two case-study lectures on how certain advances in computer science and IT has brought about significant social changes. Careful examination of causes, effects, possible alternatives.
Our goal is to impress upon students that technical design choices, technological advances, and technology related decisions can have significant, widespread and even unforseen consequences on society. Hence, such issues must be approached with great care.
- Modes of Thought and Approaches toward Knowledge.
Readings
Readings
1. Basic Reading Material
-
-
-
- An Invitation to Computer Science. G.M. Schneider, J.L. Gersting and S. Baase. PWS Publishing (ITP). ISBN: 0-534-95115-5.
- Computer Science, an Overview. J. Brookshear. Addison Wesley. ISBN: 0-8053-4632-5.
- Computer Science, A Modern Introduction. Les Goldschlager and A. Lister. Prentice Hall. ISBN: 0-13-165945-6.
- Introduction to Computing. Peter Greenfield. McGraw Hill. ISBN: 0-07-707419-X.
- Management & Information Systems for the Information Age. S. Haag, M. Cummings, and D. J. McCubbrey. McGraw Hill. ISBN: 0-07-231535-0.
- Computers in Your Future. M. W. Meyer, R. L. Baber & B. Pfaffenberger, Que (Macmillan/Prentice-Hall), 1999, ISBN: 1-58076-085-6.
-
-
2. Surveys and Excerpts from Field
-
-
-
- A History of Modern Computing. P. Ceruzzi. MIT Press. ISBN: 0-262-03255-4.
- Great Ideas in Computer Science. Alan W Biermann. MIT Press. ISBN: 0-262-02302-4.
- The Analytical Engine, An Introduction to Computer Science using Toolbook. R. Decker and S Hirshfield. Wadsworth Publishing Company. ISBN: 0-534-14046-7.
-
-
3. Specialized Topics
-
-
-
- Computer Literacy. I. Bernstein and P.Havig. Sage Publications. ISBN: 0-7619-1138-3.
- Digital Capitalism, Networking the Global Market System. Dan Schiller. MIT Press. ISBN: 0-262-19417-1.
- Exploring The Digital Domain: An introduction to computing with multimedia and networking. Ken Abernethy and Tom Allen. PWS Publishing Company. ISBN 053423148-9.
- HAL's Legacy: 2001's Computer as Dream and Reality. Edited by David G. Stork. MIT Press. ISBN: 0-262-69211-2.
- Inventing the Internet. Janet Abbate. MIT Press. ISBN: 0-262-01172-7.
- Technology and Privacy: The New Landscape. Philip Agre and Marc Rotenberg. MIT Press. ISBN: 0-262-01162-X.
- Turing Obmnibus: 61 Excursions in Computer Science. A. K Dewdney. Computer Science Press. ISBN: 0-7167-8154-9.
-
-
Lecture Schedule
Lecture Outline
Lecture 1: Introduction, Motivation and Top level Demystification
Lecture 2: Introduction, Motivation and Top level Demystification
Lecture 3: Introduction, Motivation and Top level Demystification
Lecture 4: Hardware
Lecture 5: Hardware
Lecture 6: Abstraction, Specification and Problem Decomposition
Lecture 7: Algorithmns - Examples
Lecture 8: Algorithms
Lecture 9: Algorithms
Lecture 10: Algorithms
Lecture 11: Algorithms
Lecture 12: Algorithms
Lecture 13: Algorithms
Lecture 14: Algorithms
Lecture 15: Virtual Machines and Networks
Lecture 16: Artificial Intelligence
Lecture 17: Artificial Intelligence
Lecture 18: Artificial Intelligence
Lecture 19: Artificial Intelligence
Lecture 20: Artificial Intelligence
Lecture 21: Artificial Intelligence
Lecture 22: Artificial Intelligence
Lecture 23: Computer limitations and future trends
Lecture 24: Computer limitations and future trends
Lecture 25: Revision
Lecture 26: Revision
Assessment
Project 25%
