Tentative Schedule
and Readings
Week
|
Date
|
Day
|
Topic
|
Assign
|
Due
|
Week
1
|
|
8/29
|
T
|
Introduction and logistics [ slides]
Computer architecture: introduction [ slides]
|
|
|
|
8/30
|
W
|
Lab: 206 place-out exam (noon-1:30pm)
|
|
|
|
8/31
|
R
|
Computer architecture: data representation
[ readings][ slides]
206 place-in exam assigned (due Friday Sep 1, 6pm)
|
A1
|
|
Week
2
|
|
9/5
|
T
|
|
|
|
|
9/6
|
W
|
Lab: ISchool computing
environment & file service; (Guest lecturer: Kevin Heard)(Location:
210 South Hall)
|
|
|
|
9/7
|
R
|
Computer architecture: CPU
operation, machine language
|
A2
|
A1.1
|
Week
3
|
|
9/12
|
T
|
Operating system (Guest lecturer: Dr.
Sonja Buchegger) [ readings][ slides]
|
|
|
|
9/13
|
W
|
Lab: Using
Eclipse (Data:
Country.zip); open Q&A on A1 and A2
|
|
|
|
9/14
|
R
|
Operating system (Guest lecturer: Dr.
Sonja Buchegger)[ slides]
|
|
A1.2
|
Week
4
|
|
9/19
|
T
|
|
|
A2
|
|
9/20
|
W
|
Lab: Debugging
and Programming Practices; open Q&A on A3
|
|
|
|
9/21
|
R
|
Software design
|
A3
|
|
Week
5
|
|
9/26
|
T
|
|
|
|
|
9/27
|
W
|
Lab: UML and System
Modeling; open Q&A on A3
|
|
|
|
9/28
|
R
|
Analysis of algorithms; Data structures [ slides]
|
|
|
Week
6
|
|
10/3
|
T
|
|
A4
|
A3.1
A3.2
|
|
10/4
|
W
|
Lab: Java
Collections; open Q&A on A4
|
|
|
|
10/5
|
R
|
Data structures - hash table
|
|
|
Week
7
|
|
10/10
|
T
|
|
|
A4.1
|
|
10/11
|
W
|
Java API;
open Q&A on A4
|
|
|
|
10/12
|
R
|
Data structures - heap, distributed hash
table [ slides]
|
|
|
Week
8
|
|
10/17
|
T
|
Mid-Semester Review
[slides]
|
|
A4.2
|
|
10/18
|
W
|
Lab: open Q&A
|
|
|
|
10/19
|
R
|
Exam 1
|
|
|
Week
9
|
|
10/24
|
T
|
Regular expressions
[readings][slides]
|
A5
|
|
|
10/25
|
W
|
Lab: Regular
Expressions; open Q&A on A5
|
|
|
|
10/26
|
R
|
Networking: distributed
systems [readings][slides] |
|
|
Week
10
|
|
10/31
|
T
|
Networking: inter-process communication
[ slides]
|
A6
|
A5
|
|
11/1
|
W
|
Lab:
Java Networking - Client/Server; open Q&A on A6
|
|
|
|
11/2
|
R
|
Networking: network architecture [ slides]
|
|
|
Week
11
|
|
11/7
|
T
|
Networking: network architecture
|
|
A6.1
|
|
11/8
|
W
|
Lab: CVS;
open Q&A on A6
|
|
|
|
11/9
|
R
|
|
|
|
Week
12
|
|
11/14
|
T
|
Networking: standards and protocols
|
|
A6.2
|
|
11/15
|
W
|
Lab: open Q&A on A6
|
|
|
|
11/16
|
R
|
|
A7
|
|
Week
13
|
|
11/21
|
T
|
Computer security
|
|
|
|
11/22
|
W
|
No Lab
|
|
|
|
11/23
|
R
|
Thanksgiving -- No Class
|
|
|
Week
14
|
|
11/28
|
T
|
|
|
A7
|
|
11/29
|
W
|
Lab: Networks, Threaded Client/Server
|
|
|
|
11/30
|
R
|
System performance
|
|
|
Week
15
|
|
12/5
|
T
|
Course review and evaluation
|
|
A7b
|
|
12/6
|
W
|
Lab: open Q&A
|
|
|
|
12/7
|
R
|
Exam 2
|
|
|
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/List_(computing)
http://en.wikipedia.org/wiki/Array
http://en.wikipedia.org/wiki/Linked_list
http://en.wikipedia.org/wiki/Stack_(computing)
http://en.wikipedia.org/wiki/Queue
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)
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/]
|