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.