Home

Announcements


Schedule


Assignments

 
   


IS206 Distributed Computing Applications and Infrastructure

Fall 2008


Tentative Schedule and Readings

Week
Date
Day
Topic
Assign
Due
Week 1

8/27
W
Course introduction and logistics [slides]



8/27
W
Lab: 206 place-out exam (noon-1pm)



8/28
Th
206 place-in exam (due Friday August 29, 3:30pm)


Week 2

9/1
M
Labor Day -- no class



9/3
W
Computer architecture: data representation [readings] [slides]


9/3
W
Lab: Eclipse, and javadocs; open Q&A on Java


Week 3

9/8
M
Boolean logic, CPU operation [readings][slides]
A1


9/10
W
CPU operation; Machine language


9/10
W
Lab: Best practices for the place-in exam (files); Q&A on A1


Week 4

9/15
M
Memory hierarchy; Operating system [readings][slides]

A1

9/17
W
Operating system; Review for Test 1 A2


9/17
W
Lab: open Q&A on A2, Test 1


Week 5

9/22
M
Test 1; Software design [readings][slides]



9/24
W
Software design [slides]



9/24
W
Lab: UML and System Modeling [slides]; Q&A on A2


Week 6

9/29
M
Analysis of algorithms [readings][slides]
A3 A2

10/1
W
Introduction to data structures [readings]


10/1
W
Lab: Q&A on A3


Week 7

10/6
M
Stacks and queues [slides]
A4 A3

10/8
W
Hash tables [slides]


10/8
W
Lab: Java Collections; Q&A on A4


Week 8

10/13
M
Trees [readings][slides] A5 A4

10/15
W
Heaps and graphs [slides]


10/15
W
Lab: Q&A on A5


Week 9

10/20
M
Regular expressions [readings][slides] A6  A5

10/22
W
Graph routing; Test 2 Review [slides]


10/22
W
Lab: Regular Expressions; Q&A on A6


Week 10

10/27
M
Introduction to distributed systems [slides]



10/29
W
Inter-process communication [readings][slides]
A6

10/29
W
Lab: Debugging in Eclipse [tutorial]


Week 11

11/3
M
Test 2; Inter-process communication
A7

11/5
W
Network architecture [slides]



11/5
W
Lab: Java Networking - Client/Server; Q&A on A7


11/7
F
Assignment 7 Part 1 due

A7.1
Week 12

11/10
M
Network architecture



11/12
W
Networking standards and protocols: L2 [readings] [slides]


11/12
W
Lab: TBD


Week 13

11/17
M
Networking standards and protocols: L3 and L4

A7

11/19
W
Networking standards and protocols: L4 and L7
A8

11/19
W
Lab: TBD


Week 14

11/24
M
Computer security [readings][slides]



11/26
W
Computer security


11/26
W
Lab: TBD


Week 15

12/1
M
System performance [readings][slides]



12/3
W
System performance; Course review and evaluation [slides]
A8

12/3
W
Lab: TBD



12/5
F
A8 extra credit problem due at noon


Week 16

12/8
M
Test 3



12/10
W
No Class



Reading Assignments (to be completed before date of lecture):

1. Data Representation and Storage

Read: Brookshear Chapter 0, Chapter 1.1-1.5
Optional: Brookshear Chapter 1.6-1.9

2. CPU Operation, Boolean Logic

Read: Brookshear Chapter 2.1-2.5, Appendix C
Optional: Brookshear Chapter 2.6

3. Operating System

Read: Brookshear Chapter 3.1-3.5

Read:
http://en.wikipedia.org/wiki/Operating_system
http://en.wikipedia.org/wiki/Process_(computing)
http://en.wikipedia.org/wiki/Thread_(computer_science)

Optional:
http://en.wikipedia.org/wiki/Semaphore_(programming)
http://en.wikipedia.org/wiki/Deadlock
http://en.wikipedia.org/wiki/Dining_philosophers_problem
http://en.wikipedia.org/wiki/Virtual_memory

4. Software Design and Software Engineering

Read: Brookshear Chapter 5.1-5.5, 6.1
Review: Brookshear Chapter 6.2-6.3, 6.5

Read: Brookshear Chapter 7
Read: http://en.wikipedia.org/wiki/Unified_Modeling_Language

Optional::
http://en.wikipedia.org/wiki/Software_engineering
http://en.wikipedia.org/wiki/Class-Responsibility-Collaboration_card

5. Analysis of Algorithms

Read:

Brookshear Chapter 5.6
http://en.wikipedia.org/wiki/Analysis_of_algorithms
http://en.wikipedia.org/wiki/Big_O_notation

6. Data Structures

Read: Brookshear Chapter 8.1-8.4

Read:
http://en.wikipedia.org/wiki/Data_structure
http://en.wikipedia.org/wiki/Abstract_data_type
http://en.wikipedia.org/wiki/Array
http://en.wikipedia.org/wiki/Linked_list
http://en.wikipedia.org/wiki/Stack_(data_structure)
http://en.wikipedia.org/wiki/Queue (data_structure)
http://en.wikipedia.org/wiki/Hash_table

Java Collections Framework: http://java.sun.com/j2se/1.5.0/docs/guide/collections/


7. More Data Structures

Read:
http://en.wikipedia.org/wiki/Tree (data_structure)
http://en.wikipedia.org/wiki/Binary_search_tree
http://en.wikipedia.org/wiki/Heap (data_structure)
http://en.wikipedia.org/wiki/Graph_(data_structure)


8. Regular Expressions

Read: http://en.wikipedia.org/wiki/Regular_expression

Java tutorial on regular expressions: http://java.sun.com/docs/books/tutorial/essential/regex/


9. Networking

Read:

Brookshear Chapter 4.1-4.3

Sierra and Bates, Chapter 15, pp. 471-488 (Optional: read rest of chapter on multi-threading)

Java tutorial on network sockets: http://java.sun.com/docs/books/tutorial/networking/sockets/

10. Internetworking Protocols

Read: Brookshear Chapter 4.4

Read:

http://en.wikipedia.org/wiki/Internet_protocol_suite
http://en.wikipedia.org/wiki/Internet_Protocol
http://en.wikipedia.org/wiki/Transmission_Control_Protocol

Skim:

http://en.wikipedia.org/wiki/User_Datagram_Protocol
http://en.wikipedia.org/wiki/Ethernet
http://en.wikipedia.org/wiki/IEEE_802.11
http://en.wikipedia.org/wiki/Domain_name_system
http://en.wikipedia.org/wiki/HTTP

Feel free to explore other protocols of interest to you.

11. Security

Read:

Brookshear Chapter 4.5, 11.6

http://en.wikipedia.org/wiki/Computer_security
http://en.wikipedia.org/wiki/Cryptography
http://en.wikipedia.org/wiki/Symmetric_key_algorithm
http://en.wikipedia.org/wiki/Public-key_cryptography
http://en.wikipedia.org/wiki/Cryptographic_hash_function
http://en.wikipedia.org/wiki/Digital_signature

Optional: learn about the following specific standards:

http://en.wikipedia.org/wiki/Advanced_Encryption_Standard
http://en.wikipedia.org/wiki/RSA
http://en.wikipedia.org/wiki/SHA-1

Optional: short overview article on economics of information security

Anderson and Moore, The Economics of Information Security, Science 27 October 2006: Vol. 314. no. 5799, pp. 610 - 613
http://www.sciencemag.org/cgi/content/full/314/5799/610

12. System Performance

Read:

http://en.wikipedia.org/wiki/Queueing_theory

Skim:

Chapters 1 and 3 of Quantitative System Performance: Computer System Analysis Using Queueing Network Models, by Edward D. Lazowska, John Zahorjan, G. Scott Graham, Kenneth C. Sevcik [http://www.cs.washington.edu/homes/lazowska/qsp/]