Home

Announcements


Schedule


Assignments

 
   


IS206 Distributed Computing Applications and Infrastructure

Fall 2007


Tentative Schedule and Readings

Week
Date
Day
Topic
Assign
Due
Week 1

8/28
T
Introduction and logistics [slides]
Computer architecture: introduction [slides]



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



8/30
R
Computer architecture: data representation [readings][slides]
206 place-in exam (due Friday August 31, 2pm)


Week 2

9/4
T
Computer architecture: boolean logic [readings][slides]
A1


9/5
W
Lab: open Q&A on A1



9/6
R
Computer architecture: CPU operation


Week 3

9/11
T
Computer architecture: machine language; memory hierarchy



9/12
W
Lab: Eclipse, and javadocs [Country.zip]



9/13
R
Review for Test 1 [concept map]; Operating system [readings][slides]

A1
Week 4

9/18
T
Test 1 [solutions]; Operating system



9/19
W
Lab: Java API; Debugging and Programming Practices


9/20
R
Software design [readings][slides]
A2
Week 5

9/25
T
Software design; Analysis of algorithms [readings][slides]



9/26
W
Lab: UML and System Modeling



9/27
R
Analysis of algorithms; Data structures [readings][slides]


Week 6

10/2
T
Data structures - stack, queue [readings]
A3 A2

10/3
W
Lab: Java Collections



10/4
R
Data structures - hash table [slides]

Week 7

10/9
T
Regular expressions [readings][slides]
A4 A3

10/10
W
Lab: Regular Expressions


10/11
R
Data structures - tree, binary tree [readings][slides]


Week 8

10/16
T
Data structures - heap, graph



10/17
W
Lab: open Q&A on A4, Test 2 Review



10/18
R
Data structures - graph routing; Test 2 Review [slides]
A4
Week 9

10/23
T
Test 2
 

10/24
W
No Lab



10/25
R
Networking [readings]: distributed systems [slides]; inter-process communication [slides]

Week 10

10/30
T
Networking: inter-process communication; network architecture [slides]
A5

10/31
W
Lab: Java Networking - Client/Server



11/1
R
Networking: network architecture


Week 11

11/6
T
Networking: network architecture



11/7
W
Lab: open Q&A on A5



11/8
R
Networking: standards and protocols [readings][slides]


Week 12

11/13
T
Networking: standards and protocols

A5

11/14
W
Lab: TBD



11/15
R
Computer security [readings][slides]
A6
Week 13

11/20
T
Computer security



11/21
W
No Lab



11/22
R
Thanksgiving -- No Class


Week 14

11/27
T
System performance [readings][slides]



11/28
W
Lab: open Q&A on A6



11/29
R
System performance; Test 3 Review [slides]

A6
Week 15

12/4
T
Course review and evaluation



12/5
W
Lab: open Q&A



12/6
R
Test 3



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/]