School
of CSE - Details Needed for New Course
Course
Title:
Understanding Computer Technology I and II
(a
sequence of two courses)
Proposer: Aleksandar Ignjatovic
Rationale
Why
is the new course being proposed? What are the academic objectives? Which
programs/stage(s)
does it serve? What proportion of students do you expect to
come
from which program? (It is legitimate not to have a full answer to that,
but
if you do have one, we'd like to know). Why can the same objectives not be
achieved
with existing courses? How does the proposed course relate to other
courses?
What overlap is there? If there is any overlap, why is this
justified/not
a problem?
Business
people, lawyers, investment bankers and similar professionals who will work in
information technology industry will increasingly need to be familiar with the
details of computer technology. Today, an assessment of the economic viability
of a product or assessment of the risk of an investment can be made only by
business professionals who have good understanding of the basics of the
technology. On the other hand, students in non engineering fields are not
prepared to take engineering courses that are often also too much skill
oriented to be a good choice for non technical professionals. Thus, there is a need for a general
education course which would combine “humanities” teaching style, appealing to
sufficiently wide audience and yet providing a good exposition of the main
technical aspects of computer technology, most notably hardware, software,
computer networks and robotics, put in their historic, philosophic and social
prospective. Such course must meet high standards from the perspective of all
of these disciplines. Most notably, it must provide truly practically useful
understanding of the underlying
technology. This courses aim to satisfy these requirements. Due to wide scope
mentioned above, it was felt that the necessary depth cannot be accomplished
with a single course.
Stakeholders
and Consultation
Who
are the potential stakeholders, who was consulted about the proposal (inside
the
School as well as outside), what was the result of that consultation?
Several
people (Paul Compton, Bill Wilson, Claude Sammut, Sri Parameswaran to name a
few) were consulted and their suggestions. Refinements of the content structure
will be obtained shortly in consultation with the faculty from several other
departments.
Enrolment
Impacts
Likely
enrolment (with justification), and impact on enrolments of other
courses.
Given
the present day significance of the material for non engineering professionals,
it is reasonable to expect enrolment above 100 per course. With proper
advertising enrolments could exceed 200 per course.
Justification
of Prerequisites (or lack thereof)
Given
the intended audience no prerequisites are assumed. The course must be equally
accessible to Business majors, lawyers and similar wide range of professionals.
Any
Courses this is Replacing, and Why?
None
Delivery
and Assessment
Anything
noteworthy about delivery mode, assessment (with justification).
Delivery
by classroom lectures with computer demonstrations. Assessment by an essay and
a final. This is the standard format for such general education courses.
Handbook
Entry
In this course we
in reasonable depth explain computing technology to those whose favourite past
time is not sitting in front of a computer. We will be informal but reasonably
precise and informative, explaining both the software and the hardware aspects
of computers. We will make technical details more interesting and informative
by putting them in their historic, philosophic sociological and economic
framework. The course is aimed primarily to business, law and other non
technical majors who will need good background in highly technical aspects of
computer technology.
Textbooks/References
Will
be chosen shortly, several sources are reviewed at the moment.
Syllabus
Indicative
syllabus / overview of contents (at a level of detail well beyond
that
of the handbook entry)
THE FIRST COURSE (I)
Unit I
Who invented computers?
The first nerds to walk on the face of
Earth: Cro-Magnon's bone computer and the
tally sticks from 20.000 years
ago until the present day.
Babylonian
computing revolution: count of sheep and carrots recorded using the same
numbers, discovery of positional number system and the first computer: the
abacus. Performing complex operations like multiplication on an abacus: the
first algorithms.
Greek
discovery of mathematical deduction: from obvious truths to complicated
theorems. Can everything else be done in this way? How is it possible for machines to think: Aristotle's formulation of logic as inferences
by "mechanical" rules. Symbols and meaning. Diagrammatic reasoning:
from Aristotle's trees representing relationships, through Venn diagrams and
Carnaugh maps to Boolean logic and digital circuit design.
How to
make a calculator: 1500 AD, Leonardo da Vinci's first mechanical calculator
(until 1967 credit used to be given to Pascal). 1600 AD, the slide rule based
on Napier's logarithms. Pascal's machine: first commercial calculator (50
pieces).
First "programmable embedded systems": controlling silk looms by patterns of holes in a string of cards. Babbage's Difference Engine from 1822 constructed from original drawings in 1990's: three tons of hardware calculating to 31 digits of accuracy. It was conceived to use punched cards, sequential control and loops and branching - methods used on modern machines. Ada Lovelace, the daughter of the poet Lord Byron, writes the first program for Babbage's machine, thus becoming first programmer.
From machines that
calculate and weave to "thinking machines": implementing formal logical reasoning rather than just
calculations and control of mechanical motions of a loom. Leibniz turns logic it into a
mathematical discipline: Calculemus! ("Let's calculate!") Can
all human reasoning be turned into mathematical demonstration and can any truth
be obtained with the certainty of 2+2=4?
Alan Turing: There are "universal
computers" but also problems that computers will never be able to solve! Shannon: from switches and electronic
circuits implementing formalization of logical operations: the cornerstone of
digital electronic design. First computer architectures: either hard wired
for a particular task like COLOSSUS
and its predecessors used to break the code of Nazi’s "Enigma"
encryption machine.
Mauchly and Eckert conceive the concept
of stored program computing, subsequently described by the brilliant
mathematician Johann Von Neumann.
For that reason the architecture of modern computers is usually (and very
unfairly) called the "Von Neumann machine". Basic elements of a stored-program
computer as presented by Von Neumann: (i) a random access memory containing
both data and instructions; (ii) a calculating unit for arithmetic and logical
operations; (iii) A control unit for interpreting an instruction retrieved from
the memory and controlling the sequence of operations on the basis of the
outcomes of the previously executed operations. Present day architectures as
refinement of the Von Neumann model.
Unit II
What is inside your computer
Binary system and
numerical operations. 0 and 1 as
falsity as truth: basic Boolean operations and the corresponding gates: AND,
OR, NOT. Implementing Boolean functions
using basic gates, NAND and NOR gates.
Flip - Flops, registers and counters.
Memory circuits, RAM, ROM. Von
Neumann Machine. Universality: nothing to rewire for a different task -
instructions (the program) are loaded and stored, just like data. Organizational model: CPU, Central Memory,
Keyboard and Display, Hard Disc, The Bus.
The CPU. Tasks and components of a CPU: registers, arithmetic and logic
unit (ALU), instruction fetch and execution unit, bus interface unit.
Unit III
Evolution of computer hardware: from switches, relays, tubes and transistors to integrated circuits
IBM automatic sequence controlled
calculator, also
called Mark I (1939-44): 5 tons of switches, relays and
other mechanical components. Logic implemented using switches and relays. COLOSSUS: 1800 vacuum tubes against the Nazi’s
codes.
ENIAC - the "electronic numerical
integrator and computer" - the first true general-purpose electronic
computer constructed between 1943 and 1946 but it had to be rewired manually
for each task. EDVAC - the "electronic discrete variable automatic computer”, the
first "Von Neumann machine" that stored program in the memory. First
universal machine that did not have to be rewired for new tasks. Contained
approximately 4,000 vacuum tubes and 10,000 crystal diodes - first solid state
semiconductors.
Solid-state revolution: invention of a point-contact germanium transistor in December of 1947. In 1950, the bipolar junction transistor invented - the basis for analog and digital circuits until 1962. Metal-oxide semiconductor field-effect transistors (MOS FET) invented 1962. Cheaper, smaller and uses less power; it can also be used as a resistor or as a capacitor. Kilby at Texas Instruments makes the first integrated circuit, by managing to put many electric components on a single piece of silicon. The world's first microprocessor (4004): approximately 2,300 transistors executing 60,000 operations per second. 8080 and 6800 from Motorola in 1974 start the new age of truly multipurpose massively manufactured microprocessors. April 1975: Bill Gates and Paul Allen found Microsoft starting the age of intense software development.
SECOND COURSE
(II)
Unit V
Robotics
What is a robot?
Meet robotic dogs that win world championships in robot soccer.
Fantasy meeting reality: will we ever have robots from science fiction movies?
Such robots must
be able to: perceive their environment through sensors; must be able to build a
representation of their world so that they can plan and learn; they must have
suitable actuators to perform actions.
Computer senses: basic principles of
computer vision and hearing; basic recognition of objects and signals. Industrial robots: who made your car and who
can fix the Hubble telescope?
Unit VI
Controlling the Hardware: what makes
your computer "smart".
Machine language,
Assembly Language, High Level (Problem Oriented) Languages. Compilers.
Operating Systems. Unix and hierarchical organisation of files in directories.
Graphic User Interface.
Data structures
with examples: queues, stacks, trees. Algorithms: solving problems effectively
by an explicit procedure. Time
complexity of algorithms: can a problem be solved in a reasonable amount of
time? Examples of algorithms: sorting, recursion and towers of Hanoi,
divide-and-conquer.
Hard problems: is
it easier to solve an equation than to verify if something is a solution of an
equation: P versus NP.
Unit VI
Internet and computer networks
Internet: network
of networks without a central control (so far).
From your LAN or
from your phone modem, DSL or cable to the POP of your ISP. Local ISP connected
to larger ISP. Large
ISPs have high speed fiber-optic
"backbone" networks. Networks of all different companies are
interconnected at NAPs forming a single unified network that has no central
control, but can balance the load on individual traffic lines maintaining its
integrity.
IP addresses, packets, wrappers, packet switching networks. Clients, servers, ports and protocols. Domain Names and DNS. Static and dynamic pages. Search engines. Maintaining security: names and passwords, encryption, firewalls. Privacy, cookies, spyware, viruses and trojans.
Unit VII
Economic and Social Implications of Computer Technology
Impact on the
Economy The advent of Intel, Microsoft
and Cisco.
The age of
start-ups and the burst of the big bubble. Outsourcing jobs - globalization and
the end of national economies. Availability of information versus protection of
privacy.
Impact on the
Society
Necessity of
computer skills and understanding of the basics of computer technology for
businesses not directly related to Information Technology.
Managing
efficiently large quantities of data: a necessity of modern life.
Impact on daily
life
Embedded systems in
cars, mobile phones, ATM machines: can you use your VCR?
E-mail, web pages,
digital music, videos, online book shops and grocers.
Conclusion:
What Will The Future Bring: final discussion of the future technologies and
trends and their impact on the society.
Effect
on School Resources:
Who
is proposed to teach the proposed new course, and what impact would this
have
on their planned/current allocation?
Several
faculty expressed interest to teach such courses. Different units can be taught
by different people, thus adding minimal additional load. Minimal investment
for maximal social and a reasonable financial impact.
What
sort of tutorial component is proposed, if any?
None
What
is the likely impact on lab utilization (this relates to assignment and
project
work as well as scheduled labs?
None
Any
other resource needs? E.g. special print/disk quota, access to servers, access
to special machines, special labs.
None