Topics
Course Overview #
Lecture slides and related files
Version Control Systems #
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:
- Dondero SQL summary
- Python in a Nutshell (Martelli, Ravenscroft, Holden): Chapter 11
- Learning PHP, MySQL & JavaScript (Nixon): Chapters 8, 9 (Cover MySQL, not SQLite)
- The Official SQLite Home Page
- The Official SQLite Documentation
- A SQL Tutorial
- A SQLite Tutorial
The COS 333 Project #
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):
- Python in a Nutshell (Martelli, Ravenscroft, Holden): Chapters 19, 20
- HOWTO Use Python in the Web
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):
- Dondero PHP summary
- Learning PHP, MySQL & JavaScript (Nixon): Chapters 3, 4, 5, 6, 7, 10, 11, 12
- The Official PHP Tutorial
- Another PHP Tutorial
- The Official PHP Reference Manual
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):
- Dondero JavaScript summary
- JavaScript: The Definitive Guide (Seventh Edition) (Flanagan)
- Mozilla JavaScript Reference Manual
- Oracle JavaScript Reference Manual
JavaScript Client-Side Web Programming #
Lecture slides and related files
Supporting reading:
- Learning PHP, MySQL & JavaScript (Nixon): Chapters 13, 14, 15, 16, 17
- Mozilla Gecko DOM Reference Manual
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):
- Stephens: Chapters 1-14
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.