I206: Distributed Computing Applications & Infrastructure Fall 2010

Preview:

Citation preview

John Chuang 2

Welcome to 206!

The teaching team:- John Chuang <chuang@ischool>- Marco Cozzi <mcozzi@ischool>- Emily Wagner <emily@ischool>

To reach all three of us:- <i206instructors@ischool>

John Chuang 3

What is 206?

Technological foundations for computing and communications: computer architecture, operating system, networking, middleware, security.

Programming paradigms: object-oriented design, design and analysis of algorithms, data structures, formal languages.

Distributed system architectures and models, inter-process communications, concurrency, system performance.

John Chuang 4

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 5

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

Scope of typical EECS course

John Chuang 6

Typical CS Topics Not Covered in 206

Database, data management, info retrieval, …

Artificial intelligence: data mining, NLP, robotics, computer vision, …

Computer graphics HCI Languages and Compilers Theory

John Chuang 7

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 8http://norvig.com/21-days.html

John Chuang 9

Learning Opportunities

Lectures, Assignments, Tests Labs

- Reviews; best practices; practical tools & libraries; Q&A

- Planned with a view beyond 206 Office Hours Discussions: in-class and online

We will all learn from one another! There are no ‘stupid questions’ in this course

Yes, it is a 4-unit course.

John Chuang 10

Administrivia

Grading Criteria- Assignments 60% (~8 assignments)- Tests 30% (three tests)- Class participation 10%

Refer to website for important policies:- Academic integrity- Grading policy (including early/late submissions)

- Instructors availability- Classroom technology etiquette

John Chuang 11

Life after 206MIMS Technology Requirement

Computer architecture

Software:- Software design- Algorithms- Data structures

Communications:- Distributed systems- Networking- Security

206 (4 units)

electives

219. Security 240. Information Re

trieval

243. Document Engineering

250. Networks 257. Database Selected 290 and

296A courses* Selected EECS

courses

219. Security 240. Information

Retrieval

243. Document Engineering

250. Networks 257. Database 290 and 296A

courses EECS courses

2nd course

* See Masters Handbook for Complete and Updated List

If you place out of 206, you still need to satisfy the technology requirement by taking 2nd course from list

John Chuang 12

Annual Degrees and Job Openings in Broad S&E Fields

-

20,000

40,000

60,000

80,000

100,000

120,000

140,000

160,000

Engineering Physical Sciences Mathematical/Computer Sciences

Biological/Agricultural Sciences

PhD

Master's

Bachelor's

Projected Job Openings

SOURCES: Tabulated by National Science Foundation/Division of Science Resources Statistics; degree data from Department of Education/National Center for Education Statistics: Integrated Postsecondary Education Data System Completions Survey; and NSF/SRS: Survey of Earned Doctorates; Projected Annual Average Job Openings derived from Department of Commerce (Office of Technology Policy) analysis of Bureau of Labor Statistics 2002-2012 projections

Source: John Sargent, US Department of Commerce

Life after MIMS

John Chuang 13

Career Advice #1

Join the ACM (Association of Computing Machinery)

and one or more SIGs (e.g., SIGCHI, SIGCOMM, SIGecom)

Read the monthly CACM

Attend ACM conferences

John Chuang 14

More Sign-Ups

Course mailing list: - <i206@ischool>

Also: - <noise@ischool>- <fun@ischool>- xkcd.com/rss.xml

John Chuang 15

About Me

Full Professor at School of Information; affiliate appointment in EECS

B.S. and M.S. in electrical engineering from USC and Stanford

Micro-processor design at Silicon Graphics Ph.D. in engineering and public policy from CMU Research in economics-informed design of networked

systems:- 100x100: clean-slate design of internet architecture- p2pecon: incentive-centered design of peer-to-peer systems- economics of information security and privacy- ICTD: information, communication technologies and

development Hobby: boxbabble -- ingredient-based search app

John Chuang 16

Reading Assignment

Read: Brookshear Chapter 0, 1.1-1.5 Norvig, Teach Yourself Programming in Ten Years

Optional: Brookshear 1.6-1.9

Python tune-up: - Go back and complete your place-in exam; clear up any doubts before first programming assignment

- Ask for help from instructors- Free drop-in tutor service available throughout the semester in Soda/Cory Hall (M-F)- http://hkn.berkeley.edu/student/tutoring.shtml

Recommended