Presentation is loading. Please wait.

Presentation is loading. Please wait.

Announcements Homework #8 due Monday 6:00pm. – extra credit tasks are described at bottom of assignment page Upcoming office hours: – Tomorrow: Sheng 12-1:30pm,

Similar presentations


Presentation on theme: "Announcements Homework #8 due Monday 6:00pm. – extra credit tasks are described at bottom of assignment page Upcoming office hours: – Tomorrow: Sheng 12-1:30pm,"— Presentation transcript:

1 Announcements Homework #8 due Monday 6:00pm. – extra credit tasks are described at bottom of assignment page Upcoming office hours: – Tomorrow: Sheng 12-1:30pm, Greg 1:30-3pm – Saturday: Greg 2-4pm – Sunday: Chris 2-4pm – Monday: Sheng 12-2pm, Chris 2-4pm Please fill out the course evaluations!

2 Today Preview of CIT 595 Final course grading Final exam stuff

3 CIT 595 “Digital System Organization & Design” Originally very hardware focused Then some OS concepts introduced Then pretty much an OS course Now a systems programming course

4 What you’ll learn in CIT 595 More C (function pointers) C++: “C with objects” Linux systems programming – Interacting with the operating system – Parallelism and synchronization – Inter-process communication – Networking

5 What to expect from CIT 595 A lot of programming No, seriously, a LOT Longer, more challenging programming assignments More application and less theory

6 Grading Guidelines Homeworks: 50% Lab assignments: 10% Midterm exam: 15% Final exam: 25% Current weighted average: 90.3% Projected weighted average: 86.9% 97+A+ 93-97A 90-93A- 87-90B+ 83-87B 80-83B-

7 Final Grading Homework #6 should be graded by this weekend Homeworks #7 and 8 should be graded by the final exam date (Dec 17) Final exams should be graded by Dec 19 Final course grades should be posted on Dec 21

8

9 Final Exam Logistics Monday, Dec. 17, 6-8pm Location: DRL A6 You can use your book, notes, etc. No electronic devices! Review session... when? Sandwiches, sodas, snacks, etc. will be provided from 5-6pm that evening in Levine 307

10 Final Exam Material Patt & Patel chapters 2-14, 16, 18-19 – in other words, pretty much the whole book except for chapters 1, 15, and 17 x86 architecture (Appendix B) Data structures No UNIX stuff from lab! No computer science history! About 25% pre-midterm stuff, 75% stuff from after the midterm

11 Format of the exam Multiple-choice definitions/concepts Short answer and problem solving – Like midterm and questions from book Understanding C and assembly code Modifying C and assembly code Writing C code (around 15-20 lines max) – no writing LC-3 from scratch!

12 Preparing for the exam Documents in Blackboard: – study guide (list of questions from book) – practice questions (and solutions) – solutions to homework assignments Form a study group Ask questions on Piazza

13 Computer Numbers (Chp. 2) Unsigned binary integers – Decimal-to-binary conversion – Hexadecimal numbers – Unsigned binary arithmetic Signed binary integers – Sign/magnitude – Two’s complement – Overflow

14 Computer Numbers (cont.) Floating point representation Logical operations and bit vectors Character representation – ASCII – Unicode

15 Digital Logic (Chp. 3) p-type and n-type transistors NOT, AND, and OR gates Sum-of-products algorithm

16 Combinational Logic Circuits (Chp. 3) Adder (1-bit, 4-bit, n-bit) Decoder: n inputs, 2 n outputs Demultiplexer: 1 input, n select lines, 2 n output Multiplexer: 2 n inputs, n select lines, 1 output

17 Memory (Chp. 3) R-S Latch: depends on “state” Gated D Latch: single bit of memory Register: some number of Gated D Latches that form a single unit of memory

18 von Neumann Architecture (Chp. 4) Memory – address space vs. addressability – MAR and MDR Control Unit – fetch, decode, execute – IR and PC – ALU, registers

19 LC-3 Instruction Set Architecture (Chp. 4) Instruction format – Opcode – Operands Translating from assembly language to machine language Types of instructions & what they do – ALU operations – Data movement operations – Control operations

20 x86 Architecture (Appx. B) How is it different from LC-3? – addressability – address space – number of registers – size of registers – number of operations – size of instructions

21 Assembly Language (Chp. 7) Symbol table Finding and fixing bugs What does this program do? How can this program be improved? Relation with higher-level language (like C) BLKW, FILL, and STRINGZ

22 Traps, Interrupts, Subroutines (Chp. 8-9) How are subroutines called? How does the program know where to go back to? How do traps work? How does the program know where to go back to? How do interrupts work? How is the state saved? What happens when the handler finishes? Traps: GETC, IN, OUT, PUTS, HALT

23 Memory and the Stack (Chp. 10) What is the stack used for? What is the stack pointer? Frame pointer? What values go on the stack when a function is called?

24 C Basics (Chp. 11) Compilation process – Preprocessor – Compiler – Linker Anatomy of a C program Primitive Datatypes

25 Variables and Operators (Chp. 12) Legal variable names Mathematical operators Assignment shortcuts Scope printf and scanf

26 Loops & Conditionals (Chp. 13) Logical operators Comparison operators True & False if, if/else while, do/while, for

27 Functions (Chp. 14) Function declarations/prototypes Input & Output Call-by-reference vs. Call-by-value

28 Arrays & Strings (Chp. 16) Declaring and initializing arrays Indexing arrays Declaring strings Null-terminated strings String functions – strlen, strcmp, strcat, strcpy

29 What gets printed? 1 char values[] = { '5', 73, '3', 0 }; 2int x = values[values[values[3]]- values[2]]; 3 int y = (char)x - '0'; 4 int z = values[y]; 5 if (z & values[z]) z = ++z; 6 printf(“z is: %d\n”, z);

30 1 int one(int a, int b) { 2 int k, t; 3 k = a - b; 4 t = a + b + 1; 5 if (k % 2 == 0) return t; 6 else return 0; 7 } 8 9 int two(int x, int y) { 10 int m; 11 return m + x + y; 12 } 13 14 main() { 15 int result = two(5, one(4, 3)); 16 printf(“result is %d\n”, result); 17 }

31 Pointers (Chp. 16) pointer syntax passing pointers as function parameters pointers vs. arrays vs. strings

32 1 int apple; 2 int *ptr; 3 int **ind; 4 ind = &ptr; 5 *ind = &apple; 6 **ind = 123; 7 ind++; 8 *ptr++; 9 apple++; 10 printf(“%d %d %d”, ind, ptr, apple);

33 Structs (Chp. 19) defining a struct typedef pointers to structs

34 Data Structures Linked List Stack Queue Binary Search Tree Hashtable Concepts (how they work) Implementation in C

35 Final Exam Logistics Monday, Dec. 17, 6-8pm Location: DRL A6 You can use your book, notes, etc. No electronic devices! Sandwiches, sodas, snacks, etc. will be provided from 5-6pm that evening in Levine 307

36 Any questions?

37 The end. (thanks!)


Download ppt "Announcements Homework #8 due Monday 6:00pm. – extra credit tasks are described at bottom of assignment page Upcoming office hours: – Tomorrow: Sheng 12-1:30pm,"

Similar presentations


Ads by Google