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 2005-06. (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 Unix-style environment, using scripting languages and a machine-oriented 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 event-driven models. Representation of floating-point 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 (co-written by me):
An introduction to computing for non-computer 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, divide-and-conquer 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, root-finding, and numerical integration.
SCI 199: First-year 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 first-year seminar courses at this university; not by me):
First-Year Seminars (199 courses) are open only to newly admitted students. They are full-credit or half-credit courses that focus on discussion of issues, questions, and controversies surrounding a particular discipline (or several disciplines) in a small-group setting that encourages the development of critical thinking, writing skills, oral presentation, and research methods.
My blurb
Administrative responsibilities in my Lecturer position (full-time faculty member, 2000-2006) have included teaching-software 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.