Topics

Course Overview #

Lecture slides and related files


Version Control Systems #

Lecture slides

Supporting reading:


The Python Language #

Lecture slides and related files

Supporting reading:

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):

  • 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.