IntroCS
Introduction to Computer, Fall 2024

History of Intel CPUs*

1978 8086 16-bit processor, up to 1MB RAM, available in 5,6,8 and 10 MHz, 29K transistors.
1979 8088 chosen for the first IBM PC.
1982 80286 up to 16MB RAM, up to 20 MHz, 134K transistors, virtual memory and protected mode.
1985 80386 32-bit processor, up to 4GB RAM, up to 33 MHz, 275K transistors, instruction pipelining.
1989 80486 1.2M transistors, integrated FPU, 8KB on-chip cache.
1993 Pentium up to 200MHz, two 8K caches.
1995 Pentium Pro RISC chip, more stages in pipeline, on-board L2 cache.
1997 Pentium II MMX instruction, dynamic execution, up to 450MHz.
1999 Pentium III SSE instruction, up to 1+GHz.
2000 Pentium IV Hyper pipeline, Rapid execution engine, Execution trace cache, 3.8+GHz.
2005 Pentium D Dual core.
* adapted from A CPU History.

Course overview

This course is about how computer works. We will closely follow the book, The Elements of Computing Systems, which teachs you how to build a modern computer from first principles. Along the way, you will learn the basic principles about switching devices, combinational logic, sequential logic, computer architecture, machine language, assembly language, virtual machine, compiler, high-level language and operating system.

Meeting time: 2:20pm-5:10pm every Tuesday
Classroom: CSIE Room 101
Instructor: Yung-Yu Chuang
Teaching assistants:
                                 

TA Office hours:
    13:00-14:00 Tuesday, R505
    14:00-15:00 Wednesday, R506

Textbook:
The Elements of Computing Systems,Noam Nisan and Shimon Schocken.

References:
Computer Science: an Interdisciplinary Approach, Robert Sedgewick and Kevin Wayne.
CODE: The Hidden Language of Computer Hardware and Software, Charles Petzold.
Digital Design and Computer Architecture, 2nd Edition, David Harris and Sarah Harris.


Grading: (subject to change!)
  • assignments (50%)
  • class participation (5%)
  • midterm quiz (20%)
  • final project (25%)

Syllabus (topics we might cover):
  • Combinational circuits
  • Sequential circuits
  • TOY architecture
  • TOY programming
  • Assembly language fundamentals
  • Hack architecture
  • virtual machine
  • High-level language, Jack
  • compiler
  • operating system