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
|
|
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
|
|
|
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
|
|
|
|
|
9/24
|
W
|
Software design [slides]
|
|
|
|
9/24
|
W
|
Lab: UML and System Modeling
[ slides];
Q&A on A2
|
|
|
Week 6
|
|
9/29
|
M
|
|
A3 |
A2
|
|
10/1
|
W
|
Introduction to data structures [readings] |
|
|
|
10/1
|
W
|
Lab: Q&A on A3
|
|
|
Week 7
|
|
10/6
|
M
|
|
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
|
|
|
|
Week 11
|
|
11/3
|
M
|
Test 2; Inter-process
communication
|
A7 |
|
|
11/5
|
W
|
|
|
|
|
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
|
|
|
|
|
11/26
|
W
|
Computer security |
|
|
|
11/26
|
W
|
Lab: TBD
|
|
|
Week 15
|
|
12/1
|
M
|
|
|
|
|
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/]
|