Week 1: Introduction; Data Representation
- Read: Brookshear 0.1, 0.3, 0.4, 1.4, 1.5 (Optional: 1.8, 1.9)
- Assignment: Homework #1 (due Thurs before class)
- Jan 22: Course Overview
- Lab 1: Object Oriented Programming 1
- Jan 24: Binary and other Data Representations
Week 2: Boolean Logic, Circuits, How a CPU Works
- Read: Brookshear 1.1, 2.1 – 2.4 (Optional: 2.5)
- Read: Brookshear 6.1-6.5 (for a review of OO for lab)
- Assignment: Homework #2 (due Thurs before class)
- Jan 29: Boolean logic; Logic Gates
- Lab 2: Practice with boolean logic and circuits
- Jan 31: How Computers Work: The CPU, Instruction sets
- Useful Tools:
- Web-based logic gate simulator:
- Desktop-based logic gate simulator (30-Day free trial):
Week 3: Algorithms
- Read: Brookshear 5.1 – 5.4, 5.6, 12.5
- Assignment: Homework #3 (due Thurs before class)
- Feb 5: Algorithms and Pseudocode
- Lab 3: Object Oriented Programming and Boolean Logic
- Feb 7: Analysis of Algorithms
Week 4: Analysis of Algorithms
- Read: Brookshear 5.6, 12.5
- Skim: http://en.wikipedia.org/wiki/Analysis_of_algorithms
- Skim: http://en.wikipedia.org/wiki/Big_O_notation
- Assignment: Homework #4 (due Thurs before class)
- Feb 12: Analysis of Algorithms, continued
- Lab: Review Math, Analysis of Algorithms
- Feb 14: Test Review
Week 5: Data Structures 1
- Read: Brookshear 8.1 – 8.7
- http://en.wikipedia.org/wiki/Stack_(data_structure)
- http://en.wikipedia.org/wiki/Queue (data_structure)
- Feb 19: Test 1; Introduction to Data Structures
- Lab: Test Review
- Feb 21: Stacks and Queues
Week 6: Data Structures 2
- Read: Brookshear 5.5, 5.6
- http://en.wikipedia.org/wiki/Hash_table
- Assignment: Homework #5 (due Thurs before class)
- Feb 26: Go over exam
- Lab: Implement queues, lists, dictionaries
- Feb 28: Hash Tables
Week 7: Data Structures 3
- http://en.wikipedia.org/wiki/Tree (data_structure)
- http://en.wikipedia.org/wiki/Binary_search_tree
- http://en.wikipedia.org/wiki/Heap (data_structure)
- Assignment: Homework #6 (due Thurs before class – extended to 3/14)
- Mar 5: Trees
- Mar 7: Heaps
- Useful animations:
Week 8: Data Structures 4
- http://en.wikipedia.org/wiki/Graph_(data_structure)
- Assignment: Homework #7 (due in 3 parts – 3/21, 4/4 and 4/11)
- Mar 12: Graphs
- Mar 14: Test 2 Review
Week 9: Regular Expressions, Finite State Automata
- http://en.wikipedia.org/wiki/Regular_expression
- Python regular expressions howto
- Python regular expressions reference (for your information)
- Mar 19: Test 2 (Take-home section Due 3/21)
- Mar 21: Regular Expressions, Finite Automata
— Spring Break! —
Week 10: Software Engineering, Agile Programming
- Read: Brookshear 7.1 – 7.9
- http://vimeo.com/36579366
- http://agile.techwell.com/articles/original/dear-customer-truth-about-it-projects
- http://conflatedautomatons.wordpress.com/2013/02/02/industrializing-the-noosphere/
- http://www.computer.org/cms/Computer.org/ComputingNow/homepage/2011/1111/W_SW_AllLateProjectsAretheSame.pdf (optional)
- http://pragprog.com/magazines/2013-02/estimation-is-evil (optional)
- April 2: Review Test 2
- April 4: Continuous Delivery (Guest Lecture: Jez Humble)
Week 11: Advanced Data Structures, Operating Systems
- Read: Brookshear 1.2 – 1.3, 3.1 – 3.4
- http://en.wikipedia.org/wiki/2-3_tree
- http://en.wikipedia.org/wiki/B-tree
- http://en.wikipedia.org/wiki/B+_tree
- Assignment: Homework #8 (due April 18 – extended to April 19)
- Apr 9: Advanced Trees, Data Structures on Disk
- Apr 11: Operating Systems
Week 12: Distributed Systems, Networking
- Read: Brookshear 4.1 – 4.4
- http://en.wikipedia.org/wiki/Internet_protocol_suite
- http://en.wikipedia.org/wiki/Internet_Protocol
- http://en.wikipedia.org/wiki/Transmission_Control_Protocol
- Apr 16: Introduction to Distributed Systems; Inter-process Communications
- Apr 18: Networking Standards and Protocols
Week 13: Databases and Big Data
- Read: Brookshear 9.1 – 9.4
- http://www.wired.com/wiredenterprise/2012/07/nosql-larry-ellison-yacht/
- http://www.wired.com/wiredenterprise/2012/08/google-as-xerox-parc/?utm_source=Contextly&utm_medium=RelatedLinks&utm_campaign=MoreRecently
- http://www.wired.com/wiredenterprise/2012/08/googles-dremel-makes-big-data-look-small/
- http://www.wired.com/wiredenterprise/2012/10/cloudera-impala-hadoop/
- Assignment: Homework #9 (due May 2)
- Apr 23: Databases (Guest Lecture: Ray Larson)
- Apr 25: Hadoop, MapReduce (Guest Lecture: Andrew Wang)
Week 14: Security; Review
- Read: Brookshear 3.5, 4.5, 12.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
- Assignment: Homework #10 (due May 9 – extended to May 10)
- Apr 30: Computer Security, Encryption (Guest Lecture: Doug Tygar)
- May 2: Test 3 Review
Week 15: RRR week
- May 10 (1pm – 3pm): Open Office Hours
Week 16: Final Exam
- May 15 (11:30am – 2:30pm): Test 3