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.