Download presentation
Presentation is loading. Please wait.
1
Course Review i206 Fall 2010 John Chuang
2
2 Outline Test 3 topics Course review Course evaluation
3
John Chuang3 Test 3 Topics Regular Expressions Distributed Systems, IPC, Networking Security System Performance
4
John Chuang4 Finite Automata / Regex What is the language of this FA? Regular expression: (\+|-)?[0-9]+ + digit S B A -
5
John Chuang5 Distributed Systems What is a distributed system? What are the requirements of a distributed system? What are different DS models? How are they different? What is IPC? How is it accomplished? What is the difference between stream and datagram socket? How do sockets work?
6
John Chuang6 Networking Architecture: -Why layers? What are the layers? What does each layer do? What are example technologies or protocols at each layer? Why only a single protocol at the network layer? Protocols: -IP: Why do we need addresses? What do routers do? What is packet forwarding & routing? Why is IP a best-effort service? -TCP: What is a transport layer address? Why do we need it? What is reliability? How is it accomplished (SEQ, ACK, timeout, retransmission, etc.)? How is UDP similar to or different from TCP? Which protocol appropriate for what applications? -HTTP, RTP, DNS: What are they used for?
7
John Chuang7 Security Security properties: CIA and AAA what & why? Security primitives: encryption (symmetric and asymmetric), digital signatures, cryptographic hash how do they work? Which primitives are used to accomplish which security properties? How are they used? Public key certificate: why do we need it? How do we construct it using the primitives? How do we use it? What are DoS/DDoS attacks?
8
John Chuang8 System Performance Performance metrics Availability = MTTF / (MTTF + MTTR) Little’s Law: N = R*X M/M/1 queue: ,, ,N,X,R Finite capacity k Scalability: m servers System design implications
9
John Chuang9 Outline Test 3 topics Course review Course evaluation
10
John Chuang10 What We Covered Computer architecture: Boolean logic, CPU operation, memory hierarchy, operating system, information theory Algorithms: representation, analysis, complexity Software design: object-oriented design, modeling Data structures: list, dictionary, tree, graph, … Formal language and regular expressions Networking: architectures and protocols Security: cryptography System performance/scalability: metrics, queuing theory Note: underlined topics represent scope of typical CS course(s)
11
John Chuang11 206 Concept Map Bits & Bytes Binary Numbers Number Systems Gates Boolean Logic Circuits CPU Machine Instructions Assembly Instructions Program Algorithms Application Memory Data compression Compiler/ Interpreter Operating System Data Structures Analysis I/O Memory hierarchy Design Methodologies/ Tools Process Truth table Venn Diagram DeMorgan’s Law Numbers, text, audio, video, image, … Decimal, Hexadecimal, Binary AND, OR, NOT, XOR, NAND, NOR, etc. Register, Cache Main Memory, Secondary Storage Context switch Process vs. Thread Locks and deadlocks Op-code, operands Instruction set arch Lossless v. lossy Info entropy & Huffman code Adders, decoders, Memory latches, ALUs, etc. Data Representation Data storage Principles ALUs, Registers, Program Counter, Instruction Register Network Distributed Systems Security Cryptography Standards & Protocols Inter-process Communication Searching, sorting, Encryption, etc. Stacks, queues, maps, trees, graphs, … Big-O UML, CRC TCP/IP, RSA, … Confidentiality Integrity Authentication … C/S, P2P Caching sockets Formal models Finite automata regex
12
John Chuang12 Assignments A1: computer architecture A2: OO design and OO programming A3: algorithm analysis A4: data structures design and implementation A5: regular expressions A6: network programming; pair programming A7: networking, security, performance Note: underlined topics represent programming assignments
13
John Chuang13 Why 206? Technologies change, but first principles don’t -Starting from 1st principles, understand technical underpinnings, design tradeoffs, metrics for performance evaluation Jargon -be effective and confident communicator with both developers and customers/users using precise technical terminology Hands-on: opening the black-box -This is not a programming course; not training you to become a programmer -Rather, use programming as vehicle for learning concepts, tools, and software development process and methods -become more patient with, rather than be intimidated by, programmers
14
John Chuang14 http://xkcd.com/747/
15
John Chuang15 Some Follow-on Courses Networking: 250, EE122 Security: 219 Database: 257 Web architecture: 290 Software engineering: CS169 AI: CS188 (intro to AI), INFO256 (applied NLP), CS294 (practical machine learning) Learn another programming language: CS9*
16
John Chuang16 Giving Back to 206 Be a tutor next year! Call for applications in March/April
17
John Chuang17 Outline Test 3 topics Course review Course evaluation -Official and supplemental
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.