16
i206: Distributed Computing Applications & Infrastructure http://courses. ischool . berkeley .edu/i206/f10/ Fall 2010

I206: Distributed Computing Applications & Infrastructure Fall 2010

  • View
    212

  • Download
    0

Embed Size (px)

Citation preview

Page 2: I206: Distributed Computing Applications & Infrastructure  Fall 2010

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>

Page 3: I206: Distributed Computing Applications & Infrastructure  Fall 2010

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.

Page 4: I206: Distributed Computing Applications & Infrastructure  Fall 2010

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

Page 5: I206: Distributed Computing Applications & Infrastructure  Fall 2010

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

Page 6: I206: Distributed Computing Applications & Infrastructure  Fall 2010

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

Page 7: I206: Distributed Computing Applications & Infrastructure  Fall 2010

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

Page 8: I206: Distributed Computing Applications & Infrastructure  Fall 2010

John Chuang 8http://norvig.com/21-days.html

Page 9: I206: Distributed Computing Applications & Infrastructure  Fall 2010

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.

Page 10: I206: Distributed Computing Applications & Infrastructure  Fall 2010

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

Page 11: I206: Distributed Computing Applications & Infrastructure  Fall 2010

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

Page 12: I206: Distributed Computing Applications & Infrastructure  Fall 2010

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

Page 13: I206: Distributed Computing Applications & Infrastructure  Fall 2010

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

Page 14: I206: Distributed Computing Applications & Infrastructure  Fall 2010

John Chuang 14

More Sign-Ups

Course mailing list: - <i206@ischool>

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

Page 15: I206: Distributed Computing Applications & Infrastructure  Fall 2010

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

Page 16: I206: Distributed Computing Applications & Infrastructure  Fall 2010

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