course review i206 fall 2010 john chuang. 2 outline test 3 topics course review course evaluation

17
Course Review i206 Fall 2010 John Chuang

Post on 21-Dec-2015

217 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Course Review i206 Fall 2010 John Chuang. 2 Outline  Test 3 topics  Course review  Course evaluation

Course Review

i206 Fall 2010

John Chuang

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

John Chuang 2

Outline

Test 3 topics Course review Course evaluation

Page 3: Course Review i206 Fall 2010 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

Page 4: Course Review i206 Fall 2010 John Chuang. 2 Outline  Test 3 topics  Course review  Course evaluation

John Chuang 4

Finite Automata / Regex

What is the language of this FA? Regular expression: (\+|-)?[0-9]+

+

digit

S

B

A-

digit

digit

Page 5: Course Review i206 Fall 2010 John Chuang. 2 Outline  Test 3 topics  Course review  Course evaluation

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?

Page 6: Course Review i206 Fall 2010 John Chuang. 2 Outline  Test 3 topics  Course review  Course evaluation

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?

Page 7: Course Review i206 Fall 2010 John Chuang. 2 Outline  Test 3 topics  Course review  Course evaluation

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?

Page 8: Course Review i206 Fall 2010 John Chuang. 2 Outline  Test 3 topics  Course review  Course evaluation

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

Page 9: Course Review i206 Fall 2010 John Chuang. 2 Outline  Test 3 topics  Course review  Course evaluation

John Chuang 9

Outline

Test 3 topics Course review Course evaluation

Page 10: Course Review i206 Fall 2010 John Chuang. 2 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)

Page 11: Course Review i206 Fall 2010 John Chuang. 2 Outline  Test 3 topics  Course review  Course evaluation

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

Page 12: Course Review i206 Fall 2010 John Chuang. 2 Outline  Test 3 topics  Course review  Course evaluation

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

Page 13: Course Review i206 Fall 2010 John Chuang. 2 Outline  Test 3 topics  Course review  Course evaluation

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

Page 14: Course Review i206 Fall 2010 John Chuang. 2 Outline  Test 3 topics  Course review  Course evaluation

John Chuang 14http://xkcd.com/747/

Page 15: Course Review i206 Fall 2010 John Chuang. 2 Outline  Test 3 topics  Course review  Course evaluation

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*

Page 16: Course Review i206 Fall 2010 John Chuang. 2 Outline  Test 3 topics  Course review  Course evaluation

John Chuang 16

Giving Back to 206

Be a tutor next year! Call for applications in March/April

Page 17: Course Review i206 Fall 2010 John Chuang. 2 Outline  Test 3 topics  Course review  Course evaluation

John Chuang 17

Outline

Test 3 topics Course review Course evaluation

- Official and supplemental