======== Syllabus ======== Lectures on Tuesday are from 4 pm to 7 pm; lectures on Friday are from 2 pm to 5 pm. The calendar is subject to change. Anything posted in the future is certainly tentative. Also, anything posted in the recent past may not be correct if I haven’t updated it yet. +----------------------+---------------------------------------------------+ | Tue April 21, 2020 | - CircuitVerse: 8-bit Full Adder. | | (__Session 1__) | - Numerals and numbers, positional system for | | | unsigned integers. | +----------------------+---------------------------------------------------+ | Fri April 24, 2020 | - CircuitVerse: Integrated 8-bit Adder/Subtractor.| | (__Session 2__) | - CircuitVerse: Multiplexer. | | | - Carry flag, zero flag | +----------------------+---------------------------------------------------+ | Tue April 28, 2020 | - CircuitVerse: ALU (Arithmetic logical Unit) | | (__Session 3__) | - Registers and register banks | | | - Encoding instructions in a bit pattern. | +----------------------+---------------------------------------------------+ | Tue May 1, 2020 | *Holiday* | +----------------------+---------------------------------------------------+ | Tue May 5, 2020 | - Signed integer, two's complement. | | (__Session 4__) | - Overflow flag, sign flag. | | | - CircuitVerse: Status register with zero flag, | | | carry flag, overflow flag and sign flag | +----------------------+---------------------------------------------------+ | Fri May 8, 2020 | - Using the ULM virtual machine | | (__Session 5__) | | +----------------------+---------------------------------------------------+ | Tue May 12, 2020 | - More formal description of the ULM | | (__Session 5__) | - Sequential execution of a program. | +----------------------+---------------------------------------------------+ | Fri May 15, 2020 | - First steps with the ULM assembler | | (__Session 6__) | - Using assembly instructions as an equivalent | | | but more expressive notation for machine | | | instruction. | +----------------------+---------------------------------------------------+ | Tue May 18, 2020 | - Lexical analysis, syntactic analysis and | | (__Session 7__) | code generation. | | | - Example: ulmcalc-step1, ulmcalc-step2 | +----------------------+---------------------------------------------------+ | Fri May 22, 2020 | - Symbol tables, semantic error detected during | | (__Session 7__) | code generation. | | | - Example: ulmcalc-step3 | +----------------------+---------------------------------------------------+ | Tue May 26, 2020 | - Roadmap for the next sessions (and the bigger | | (__Session 8__) | goal behind that) | | | - Learning by doing: Project for computing the | | | factorial of an unsigned integer | | | - Assignment: factorial returned by exit code | | | - Assignment: read an unsigned integer | +----------------------+---------------------------------------------------+ | Fri May 29, 2020 | - Assignment: print an unsigned integer | | (Rest of | | | __Session 8__) | | +----------------------+---------------------------------------------------+ Notes: - Session 5 was covered on Fri May 8, 2020 (the part about using the ULM virtual machines) and Tue May 12, 2020 (the part with formal description of the ULM). As these topics are so closely related I did not want to split this session formally into two sessions. - Session 8 contains materials for two lectures. And most of it would be in-class programming assignments. Again, because I think it belongs together I keep it in one session. :links: Session (\d) -> doc:session0$1/page01