|
Computer Science 333
Advanced Programming Techniques
Robert Dondero
|
Spring 2021
|
Directory
General Information |
Topics |
Assignments |
Project |
Schedule |
Policies
Course Overview
Lecture slides and related files
Version Control Systems
Lecture slides
Supporting reading:
The Python Language
Lecture slides and related files
Supporting reading:
- Dondero Python summary
- Python in a Nutshell (Martelli, Ravenscroft, Holden): Chapters 1, 2, 3, 4, 5, 6, 7, 8, 9
- The Official Python Language Tutorial
- The Official Python Language Reference Manual
- The Official Python Library Reference Manual
Supporting reading (regular expressions):
- The Practice of Programming (Kernighan & Pike): Chapter 9
Database Programming
Lecture slides and related files
Supporting reading:
The COS 333 Project
Lecture slides
Graphical User Interface Programming
Lecture slides and related files
Supporting reading (Python PyQt):
Network Programming
Lecture slides and related files
Supporting reading:
- Python in a Nutshell (Martelli, Ravenscroft, Holden): Chapter 17
Web Programming
Lecture slides and related files
Supporting reading (HTML):
CGI Server-Side Web Programming
Lecture slides and related files
Python WSGI Server-Side Web Programming
Lecture slides and related files
Supporting reading (Python web programming, WSGI programming):
Supporting reading (Python Flask framework):
Java Server-Side Web Programming
Lecture slides and related files
Supporting reading (Java Spark framework):
PHP Server-Side Web Programming
Lecture slides and related files
Supporting reading (PHP):
Programming with Concurrent Processes
Lecture slides and related files
Supporting reading:
- Python in a Nutshell (Martelli, Ravenscroft, Holden): Chapter 14
Programming with Concurrent Threads
Lecture slides and related files
Supporting reading:
- Python in a Nutshell (Martelli, Ravenscroft, Holden): Chapter 14
The JavaScript Language
Lecture slides and related files
Supporting reading (JavaScript):
JavaScript Client-Side Web Programming
Lecture slides and related files
Supporting reading:
Supporting reading (AJAX):
- Learning PHP, MySQL & JavaScript (Nixon): Chapter 17
CSS Client-Side Web Programming
Lecture slides and related files
Supporting reading (CSS):
Supporting reading (Bootstrap)
Security Issues in Web Programming
Lecture slides and related files
Supporting reading (storing usernames and passwords, salting):
- Learning PHP, MySQL & JavaScript (Nixon): Chapter 12
XML and JSON Programming
Lecture slides and related files
Supporting reading:
- Python in a Nutshell (Martelli, Ravenscroft, Holden): Chapter 23
Mobile Programming
Lecture slides and related files
Supporting reading:
Software Engineering
Lecture slides and related files
Supporting reading (overview):
Supporting reading (design):
- The Practice of Programming (Kernighan & Pike): Chapters 3, 4
Supporting reading (debugging):
- The Practice of Programming (Kernighan & Pike): Chapter 5
Supporting reading (testing):
- The Practice of Programming (Kernighan & Pike): Chapter 6
Programming Paradigms
Lecture slides and related files
Supporting reading (available via Canvas in the Files section):
- Dijkstra, Edsger W. "Go To Statement Considered Harmful." Communications of the ACM. Vol. 11, No. 3, March 1968, pp. 147-148.
- Bohm, Corrado, and Jacopini, Guiseppe. "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.
All lecture slides and related files are copyright 2017, 2018, 2019, 2020, 2021 by Robert M. Dondero, Ph.D. Permission to reproduce those lecture slides or handouts for not-for-profit educational purposes is hereby granted. Those lecture slides and related files may not be reproduced for commercial purposes without the express written consent of the author.
This page was written by Robert M. Dondero, Jr.