Syllabus

Detailed Syllabus

1. Introduction, Motivation and Top level Demystification (2 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.

Topics: Some examples such as Email, Walk through a house, electronic bank transaction, CD/MP3, module registration, Linc, expert system, sum of 1 to 10, 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.

2. Algorithms (3 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 about some basics on complexity of solving a problem.

Topics: Notion of an algorithm. Some simple algorithms and basic idea about complexity of an algorithm.

3. Hardware (3 lectures)

Goal: Physical realization of a computer. To give some simple steps to illustrate how a physical computer may be constructed. To understand that the computers are essentially devices computing logical functions. To illustrate approach of building complex systems by incrementally realizing and putting together well defined simpler parts.

Topics: 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.

4. Virtual Machine (2 lectures)

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). Motivation includes human user friendliness and physical resource sharing in a mode transparent to its multiple users.

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.

5. Networks/Internet/WWW (1 lecture)

Goal: To present and highlight the idea and advantages of linking together multiple machines that are physically separated to form ``communities'' of machines with unique identites. Advantages inclide extended capabilities in terms of resource sharing, communication, web etc.

Topics: network, communication links, internet, addressing, protocols, routing algorithms, WWW, network services, resource sharing, client-server, ftp, telnet, email, newsgroups, bbs, ecommerce, web-mail.

6. Modeling, Simulation and Software Applications (2 lectures)

Goal: To present the idea of using computers as a platform for representing and simulating physical entities or abstract concepts in virtual environments. To appreciate the convenience and power that simulation and other software applications can bring about.

Topics: Simulation and applications as computer programmes. Principles behind modeling and simulation using computers.

7. Abstraction, Specification and Problem Decomposition (2 lectures)

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.

8. Artificial Intelligence (2 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.

9. Theory (2 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.

Topics: Turing Machine, Church Turing Thesis, Unsolvability Efficiency/Complexity of solving problems.

10. Crytography, Security and E-commerce (1 lecture)

Goal: The notion and need for communication security and how to achieve it. Powerful theoretical ways to reason about and quantify degree of security, without need for actual experimentation and simulations.

Topics: What does security mean. Some basic cryptography algorithms. Interactive Proofs, Zero-Knowledge proofs, Applications in Ecommerce.

11. Past and Future Trends (2 lecture)

Goal: To understand on how various scientific advances have influenced the cost, performance, size and availbility 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: Quantum devices --- transistors and lasers, as the foundation of silicon-based computers. Physical, and hence technical limits of such devices. Principles behind Biocomputing and Quantum computing as fundamentally different computing paradigms, and their feasibility. Predictions on future computer usage, capabilties, and their technical bases.

12. Computers and Society (2 lectures)

Goal: To emphasize the wide impact of computers on society and how it has changed our lives in a significant way. To be aware that potential social/legal/ethical issues exist and may arise due to information technology.

Topics: Examples to illustrate how computers have impacted on society and changed our lives in a significant way. Range of issues that can exist as a result of technology, which may or may not have right solution. Example issues.

13. Revision (2 lectures)