Presentation is loading. Please wait.

Presentation is loading. Please wait.

Course Review i206 Fall 2010 John Chuang. 2 Outline  Test 3 topics  Course review  Course evaluation.

Similar presentations


Presentation on theme: "Course Review i206 Fall 2010 John Chuang. 2 Outline  Test 3 topics  Course review  Course evaluation."— Presentation transcript:

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


Download ppt "Course Review i206 Fall 2010 John Chuang. 2 Outline  Test 3 topics  Course review  Course evaluation."

Similar presentations


Ads by Google