i206: distributed computing applications & infrastructure fall 2010
Post on 20-Dec-2015
215 views
TRANSCRIPT
i206: Distributed Computing Applications & Infrastructure
http://courses.ischool.berkeley.edu/i206/f10/ 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>
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