View
215
Download
1
Embed Size (px)
Citation preview
Course Review
i206 Fall 2010
John Chuang
John Chuang 2
Outline
Test 3 topics Course review Course evaluation
John Chuang 3
Test 3 Topics
Regular Expressions Distributed Systems, IPC, Networking
Security System Performance
John Chuang 4
Finite Automata / Regex
What is the language of this FA? Regular expression: (\+|-)?[0-9]+
+
digit
S
B
A-
digit
digit
John Chuang 5
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?
John Chuang 6
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?
John Chuang 7
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?
John Chuang 8
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
M/M/1 and M/M/1/k Queues ( = 100)
0
0.05
0.1
0.15
0.2
0.25
0 0.2 0.4 0.6 0.8 1
Utilization
( )Response Time s
M/M/1
M/M/1/1
M/M/1/2
M/M/1/10
M/M/1/100
Throughput given Service rate = 100 jobs/sec
0
10
20
30
40
50
60
70
80
90
100
0 0.2 0.4 0.6 0.8 1
Utilization
( / )Throughput jobs sec
M/M/1
M/M/1/1
M/M/1/2
M/M/1/10
M/M/1/100
John Chuang 9
Outline
Test 3 topics Course review Course evaluation
John Chuang 10
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)
John Chuang 11
206Concept Map
Bits & BytesBinary Numbers
Number Systems
Gates
Boolean Logic
Circuits
CPU Machine Instructions
Assembly Instructions
Program Algorithms
Application
Memory
Data compression
Compiler/Interpreter
OperatingSystem
Data Structures
Analysis
I/O
Memory hierarchy
Design
Methodologies/Tools
Process
Truth tableVenn DiagramDeMorgan’s Law
Numbers, text,audio, video, image, …
Decimal, Hexadecimal, Binary
AND, OR, NOT, XOR, NAND, NOR,etc.
Register, CacheMain Memory,Secondary Storage
Context switchProcess vs. ThreadLocks and deadlocks
Op-code, operandsInstruction set arch
Lossless v. lossyInfo entropy & Huffman code Adders, decoders,
Memory latches, ALUs, etc.
DataRepresentation
Data
Data storage
Principles
ALUs, Registers,Program Counter, Instruction Register
Network
Distributed Systems Security
Cryptography
Standards & Protocols
Inter-processCommunication
Searching, sorting,Encryption, etc.
Stacks, queues,maps, trees, graphs, …
Big-O
UML, CRC
TCP/IP, RSA, …
ConfidentialityIntegrityAuthentication…
C/S, P2PCaching
sockets
Formal models
Finite automataregex
John Chuang 12
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
John Chuang 13
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
John Chuang 14http://xkcd.com/747/
John Chuang 15
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*
John Chuang 16
Giving Back to 206
Be a tutor next year! Call for applications in March/April
John Chuang 17
Outline
Test 3 topics Course review Course evaluation
- Official and supplemental