School of CSE - Details Needed for New Course
Course Title: Understanding Computer Technology I and II
(a sequence of two courses)
Proposer: Aleksandar Ignjatovic
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.
Likely enrolment (with justification), and impact on enrolments of other
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?
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.
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.
Will be chosen shortly, several sources are reviewed at the moment.
Indicative syllabus / overview of contents (at a level of detail well beyond
that of the handbook entry)
THE FIRST COURSE (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.
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.
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)
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?
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.
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.
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.
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?
What is the likely impact on lab utilization (this relates to assignment and
project work as well as scheduled labs?
Any other resource needs? E.g. special print/disk quota, access to servers, access to special machines, special labs.