Courses taught by Alan J Rosenthal
"Number of times/sections taught" includes repetitions and simultaneous
sections.
I was awarded a CSSU teaching award "for excellence in undergraduate teaching"
for the academic year 200506.
(CSSU is the Computer Science Students' Union at the University of Toronto.)
In the Department of Computer Science,
University of Toronto:
 CSC 209/B09: Software Tools and Systems Programming
 See http://www.teach.cs.toronto.edu/~ajr/209/
Number of times/sections taught: 12 at St George (CSC 209), 4 at UTM (CSC 209), 6 at UTSC (CSC B09)
When taught: 2000 to now/recent
 Official description (some of which was written by me):

Software techniques in a Unixstyle environment, using scripting
languages and a machineoriented programming language
(typically C). What goes on in the operating system when programs are
executed. Core topics: creating and using software
tools, pipes and filters, file processing, shell programming,
processes, system calls, signals, basic network programming.
 CSC 258/B58: Computer Organization
 See http://www.teach.cs.toronto.edu/~ajr/258/
Number of times/sections taught: 10 at St George (CSC 258) and 3 at UTSC (CSC B58)
When taught: 1997 to 2014
 Official description:

Computer structures, machine languages, instruction execution,
addressing techniques, and digital representation of data.
Computer system organization, memory storage devices, and
microprogramming. Block diagram circuit realizations of memory,
control and arithmetic functions. There are a number of laboratory
periods in which students conduct experiments with digital
logic circuits.
 CSC 270: Fundamental Data Structures and Techniques
 See http://www.teach.cs.toronto.edu/~ajr/270/
Number of times taught: 2
When taught: 2001 and 2002 (course no longer exists as such)
 Official description:

Standard programming methods, with an introduction to C and C++. Use
of classes to represent abstract data types. Graph representation and
graph algorithms. Simulation: data structures and program organization
for eventdriven models. Representation of floatingpoint numbers;
introduction to numerical methods. Optimization using dynamic
programming. Programming assignments stress both the proper use of
abstract data types (lists, stacks, trees, heaps) and approaches to
writing larger, more complex programs.
 CSC 236: Introduction to the Theory of Computation
 See http://www.teach.cs.toronto.edu/~ajr/236/
Number of times taught: 1 (also the previous version of this course, CSC 238, three times previously as a sessional)
When taught: 2004
 Official description:

The application of logic and proof techniques to Computer Science.
Mathematical induction; correctness proofs for iterative and
recursive algorithms; recurrence equations and their solutions
(including the "Master Theorem"); introduction to automata and
formal languages.
 CSC 104: The Why and How of Computing
 See http://www.teach.cs.toronto.edu/~ajr/104/
Number of times taught: 7
When taught: 2005 to 2012
 Official description (cowritten by me):

An introduction to computing for noncomputer scientists. History of
computing machinery; representation of data and their interaction
with operations; hardware, software, operating systems; problem
solving and algorithms; social issues in computing; a gentle
introduction to programming. This course is an introduction to
becoming actively engaged with computing, not a tutorial on using
particular computer applications.
 CSC 238: Discrete Mathematics for Computer Science

Number of times taught: 3
When taught: 1993 to 1995 (course no longer exists as such)
 Official description:

A rigorous treatment of certain aspects of discrete mathematics, with
applications to Computer Science. Topics include mathematical
induction, program correctness, recurrences, divideandconquer
algorithms, finite state machines, and an introduction to the
propositional and predicate calculus.
 CSC 180: Introduction to Computer Programming (in the Engineering Science programme)
 See http://www.teach.cs.toronto.edu/~ajr/180/
Number of times/sections taught: 4
When taught: 2000 and 2001
 Official description:

A practical introduction to structured programming using the C
programming language with the UNIX operating system. The
course will include
introductions to numerical computing and data structures and their
use. Example applications will include sorting, searching,
rootfinding, and numerical integration.
 SCI 199: Firstyear seminar
 See http://www.teach.cs.toronto.edu/~ajr/199/
Number of times taught: 3
When taught: 2003 to 2005
 Calendar introduction (general for all firstyear seminar
courses at this university; not by me):

FirstYear Seminars (199 courses) are open only to newly admitted
students. They are fullcredit or halfcredit courses that focus on
discussion of issues, questions, and controversies surrounding a
particular discipline (or several disciplines) in a smallgroup
setting that encourages the development of critical thinking, writing
skills, oral presentation, and research methods.
My blurb
Administrative responsibilities in my Lecturer position (fulltime faculty
member, 20002006) have included teachingsoftware development, undergraduate
liaison, computer system administration (part of my DGP system administration
work was counted as part of the administrative service aspect of my faculty
job), and academic offence investigation.