|
Computer Science 333
Advanced Programming Techniques
Robert Dondero
|
Spring 2011
|
Directory
General Information |
Topics |
Assignments |
Project |
Schedule |
Policies
Introduction
Lecture slides and handouts
Programming Languages
Lecture slides and handouts
Supporting reading (C):
Supporting reading (Java):
Supporting reading (Python):
Supporting reading (regular expressions):
- Kernighan & Pike: Chapter 9
Supporting reading (version control systems):
The COS 333 Project
Lecture slides and handouts
Database Programming
Lecture slides and handouts
Supporting reading:
Graphical User Interface Programming
Lecture slides and handouts
Supporting reading (X Window System):
Supporting reading (Java Swing and AWT):
Supporting reading (Python Tkinter):
Network Programming
Lecture slides and handouts
Supporting reading:
- Horstmann & Cornell (Volume 2): Chapter 3
- Martelli: Chapter 20
Web Programming
Lecture slides and handouts
Supporting reading (HTML):
Web CGI Programming
Lecture slides and handouts
Supporting reading:
Programming the Web Server
Lecture slides and handouts
Supporting reading (PHP):
Supporting reading (JSP):
Web Application Frameworks
Lecture slides and handouts
Supporting reading (Django):
Security Issues in Web Programming
Lecture slides and handouts
Supporting reading (Storing usernames and passwords, salting):
Web Client-Side Programming (Part 1)
Lecture slides and handouts
Supporting reading (Java Applets):
- Horstmann & Cornell (Volume 1): Chapter 10
Supporting reading (JavaScript):
XML Programming
Lecture slides and handouts
Supporting reading:
- Horstmann & Cornell (Volume 2): Chapter 2
- Martelli: Chapter 24
Concurrent Programming
Lecture slides and handouts (concurrent processes)
Lecture slides and handouts (concurrent threads)
Supporting reading:
- Horstmann & Cornell (Volume 1): Chapters 7, 8, 9
- Martelli: Chapter 17
Web Client-Side Programming (Part 2)
Lecture slides and handouts
Supporting reading (AJAX):
Programming Paradigms
Lecture slides and handouts
Supporting reading (available via Blackboard):
- Dijkstra, Edsger W. "Go To Statement Considered Harmful." Communications of the ACM. Vol. 11, No. 3, March 1968, pp. 147-148.
- Bohm, Corrado, and Guiseppe, Jacopini. "Flow Diagrams, Turing Machines and Languages with only Two Formation Rules." Communications of the ACM. Vol. 9, May 1966, pp. 366-371.
- Rubin, Frank. "'Go To Statement Considered Harmful' Considered Harmful." Communications of the ACM. Vol. 30, No. 3, March 1987, pp. 195-196.
- Parnas, David. "On the Criteria to be Used in Decomposing Systems into Modules." Communications of the ACM. Vol. 15, No. 12, December 1972, pp. 1053-1058.
- Liskov, B. and Zilles, S. "Programming with Abstract Data Types." ACM SIGPLAN Conference on Very High Level Languages. April 1974.
- Dahl, Ole-Johan and C.A.R. Hoare. "Hierarchical Program Structures." In Dahl, Dijkstra and Hoare. Structured Programming. Academic Press. New York. 1972, pp. 175-220.
- Stroustrup, Bjarne. "Evolving a Language in and for the Real World: C++ 1991-2006." Retrieved from http://www.research.att.com/~bs/hopl-almost-final.pdf.
Intellectual Property Law for Software
Lecture slides and handouts
Cascading Style Sheets
Lecture slides and handouts (created by Austin Walker)
Software Engineering
Lecture slides and handouts
Supporting reading (design):
- Kernighan & Pike: Chapters 3, 4
Supporting reading (debugging):
- Kernighan & Pike: Chapter 5
Supporting reading (testing):
- Kernighan & Pike: Chapter 6
All lecture slides and handouts are copyright 2011 by Robert M. Dondero, Jr. Permission to reproduce those lecture slides or handouts for not-for-profit educational purposes is hereby granted. Those lecture slides and handouts may not be reproduced for commercial purposes without the express written consent of the author.
This page was written by Robert M. Dondero, Jr.