Golden Rules for Teaching

Only available on StudyMode
  • Download(s) : 19
  • Published : January 30, 2012
Open Document
Text Preview
TEN GOLDEN RULES FOR TEACHING COMPUTER SCIENCE

Andrew S. Tanenbaum Dept. of Computer Science Vrije Universiteit Amsterdam, The Netherlands http://www.cs.vu.nl/~ast/

0

GOLDEN RULE #1: THINK LONG TERM

1

CURRENT STUDENTS MAY WORK UNTIL 2040

2000

2020

2040

1a

COMPARISON OF TWO ELDERLY OS BOOKS

Per Brinch Hansen 1. Overview of Oper. Sys.
2. Sequential Processes 3. Concurrent Processes 4. Process Management 5. Store Management 6. Scheduling Algorithms 7. Resource Protection 8. A Case Study: RC4000

William S. Davis
1-4. Introductory Material 5. Single Program Systems 6. Multiprogramming 7. Job Control on the 360 8. The JOB and EXEC cards 9. The DD card 10. Function of an Op. Sys. 11. Principles of the 360 12. IBM 360 Disk Oper. Sys. 13. System 360 MFT ... 1b

COMPARISON OF 2 OLDER ARCHITECTURE BOOKS

John P. Hayes
1. The evolution of computers 2. Design Methodology (register level) 3. Processor Design (instructions, arithmetic) 4. Control Design (sequencing, microcode) 5. Memory Organization (virtual memory, caching) 6. System Organization (I/O, communication)

Ivan Flores
1. Introduction 2. The Channel Controller 3. Interrupts 4. System 360 Interrupts 5. The PDP-8 6. SDS-92, SCC 650 7. IBM 1401 8. Honeywell 200 9. System 360 10. Spectra 70 11. Univac 9000

1c

THE YEAR 2000 PROBLEM

• In the 1970s and 1980s, COBOL programmers used two decimal digits to represent the year • Get it right this time, or the mess in 9999 will be unbelievable (8000 years of old COBOL to fix) 1d

GOLDEN RULE #2: EMPHASIZE PRINCIPLES, NOT FACTS

2

SOME EXAMPLE PRINCIPLES • • • • • • • Iteration vs. recursion Compilation vs. interpretation Caching Use of hints Hashing Locality in space and time Delayed binding

BUT: Illustrate each principle with at least two examples

2a

PRINCIPLES FOR A FEW SELECTED COURSES

Course Some principles Architecture Data paths, memory hierarchies, buses Compilers Grammars, parsing, code generation Networks Layering, protocols, routing Operating systems IPC, memory management, file system Programming langs Paradigms, data types, syntax, semantics

2b

GOLDEN RULE #3 EXPECT PARADIGM SHIFTS

1965

1995
3

EXAMPLES OF PARADIGM SHIFTS

• • • • • • • •

Assembly language to high-level languages Batch systems to timesharing to personal computers Spaghetti programming to structured programming Imperative programming to object-based programming Text-based interfaces to icon-based interfaces Isolated machines to LANs Local computing to the Internet Computers for computing vs. communication 3a

HOW DO YOU DEAL WITH CONSTANT CHANGE? Teach the students to • Be critical

• Learn on their own

• Constantly examine their own assumptions
3b

GOLDEN RULE #4: EXPLAIN HOW THINGS WORK INSIDE

4

EXAMPLE: THE WORLD WIDE WEB To many students, operation of the web is a mystery. Try typing: telnet www.cs.univ.edu

to establish a TCP connection to the server. Then type:

GET filename HTTP/1.0
Presto! A web page appears as an HTML file. No more mystery. 4a

SIMULATORS GIVE STUDENTS INSIGHT

Examples where simulators can be useful • CPU cache behavior as a function of size and strategy • Performance of network protocols when packets get lost • Paging algorithms in a virtual memory system 4b

GOLDEN RULE #5: SHOW STUDENTS HOW TO MASTER COMPLEXITY

5

PREVENT IT IN THE FIRST PLACE

KISS: KEEP IT SIMPLE, STUPID

5a

TOOLS FOR MASTERING COMPLEXITY

• • • •

Abstraction Information hiding (ADTs, modules, objects) Hierarchies and layering Separation of data from their description

5b

INTERFACE DESIGN IS THE KEY ELEMENT

• Interfaces are contracts between implementers and users • They should be designed very carefully to be stable in time • Interfaces should be minimal but complete 5c

ON PERFECTION

Perfection is reached not when there is no longer anything to add, but when there is no longer anything to take...
tracking img