of Adelphi University

Garden City, NY 11530

- Weekly Schedule
- Contact Information
- Personal Background
- Teaching
- Research
- Student Advising
- Other Adelphi activities
- Real Life

... I'm on leave from Adelphi, working at Google Maps. Contact me there at sbloch@google.com.

I can be reached by telephone at 516-877-4483, or (preferably) by email, sbloch@adelphi.edu. (See GPG key and Adobe Digital ID key). FAXes can be sent to me ("Attn: Dr. Bloch") at 516-877-4499.

My textbook, *Picturing
Programs: an Introduction to Computer Programming*, is available
in print from College Publications (at Kings College, London), and is
also available for download from
the textbook web site
(donation requested).
It's suitable for a high-school-level first programming course, or a
"programming for non-majors" course at the college level, or
(with some supplementary material) for a CS1 course at the college
level.

Since 2001 I've run a series of one-week summer workshops for high school, college, and University faculty on an effective approach to the teaching of introductory computer programming called Program By Design. See what past participants have said about the workshops and the approach. These workshops have been funded by two grants from the National Science Foundation and two from Google's CS4HS Program.

- Fall, 2014
- On leave, working at Google.
- Spring, 2014
- CSC-MTH 156 "Discrete Structures", CSC-MTH 344 "Algorithms and Complexity", and CMIS 480 "Senior Seminar in Information Systems"
- Fall, 2013
- CSC 333 "Computer Graphics", CSC 343 "Data Structures", and CSC 371 "Computer Architecture".
- Spring, 2013
- CSC 160 "Computer Programming for Non-majors", CSC 171 "Introduction to Computer Programming", and CSC 344 "Algorithms and Complexity"
- Fall, 2012
- CSC 233 "Graphical User Interface Programming", CSC 343 "Data Structures", and CSC 371 "Computer Architecture".
- Spring, 2012
- CSC 160 "Computer Programming for Non-Majors", CSC 170 "Introduction to Computers and Their Applications", and CSC 272 "Principles of Programming Languages".
- Fall, 2011
- CSC 160 "Computer Programming for Non-Majors", CSC 270 "Principles of Programming Languages", CSC 271 "Unix and C++", and CSC 333 "Computer Graphics".
- Spring, 2011
- CSC 160 "Computer Programming for Non-Majors", CSC 272 "Principles of Programming Languages", and CSC 344 "Algorithms and Complexity"
- Fall, 2010
- CSC 270 "Survey of Programming Languages", CSC 233 "Graphical User Interface Programming", and release time to serve as Capstone Coordinator.
- Spring, 2010
- CSC 160 "Computer Programming for Non-Majors", CSC 272 "Principles of Programming Languages", CSC 344 "Algorithms and Complexity", CSC 480 "Senior Project"
- Fall, 2009
- CSC 270 "Survey of Programming Languages", MTH 355 "Symbolic Logic" , and release time to write a book.
- Spring, 2009
- CSC 171 "Introduction to Computer Programming", CSC 233 "Graphical User Interface Programming", and CSC/MTH 344 "Algorithms and Complexity".
- Fall, 2008
- CSC 160 "Computer Programming for Non-Majors", CSC 270 "Survey of Programming Languages", and CSC 271 "Software I: Unix".
- Spring, 2008
- CSC 160 "Computer Programming for Non-Majors", CSC 272 "Principles of Programming Languages", CSC 344 "Algorithms and Complexity", and MTP 621 "Introduction to Mathematical Logic".
- Fall, 2007
- CSC 270 "Survey of Programming Languages", CSC 271 "Software I: Unix and C", and CSC 170 "Introduction to Computers and Their Applications".
- Spring, 2007
- CSC 160 "Computer Programming for Non-Majors", CSC 233 "Graphical User Interface Programming", and CSC 344 "Algorithms and Complexity".
- Fall, 2006
- CSC 172 "Algorithms and Data Structures" (lecture and lab), and CSC 270 "Survey of Programming Languages".
- Spring, 2006
- CSC 171 "Introduction to Computer Programming" (lecture and lab sections), and CSC 344 "Algorithms and Complexity".
- Fall, 2005
- CSC 270 "Survey of Programming Languages", CSC 271 "Software I: Unix", and CSC 333 "Computer Graphics and Image Processing".
- Summer, 2005
- CSC 160 "Computer Programming for Non-majors".
- Spring, 2005
- CSC 160 "Computer Programming for Non-Majors", CSC 233 "Graphical User Interface Programming", and CSC 344 "Algorithms and Complexity".
- Fall, 2004
**on sabbatical**- Summer, 2004
- Computer Programming for Non-Majors (aka A First Course in Computer Programming).
- Spring, 2004
- Introduction to Computers and their Applications, Introduction to Computer Programming, and Algorithms and Complexity.
- Fall, 2003
- A First Course in Computer Programming, Survey of Programming Languages, and Symbolic Logic.
- Spring, 2003
- A First Course in Computer Programming, Introduction to Computers and their Applications, and Algorithms and Complexity.
- Fall, 2002
- two sections of A First Course in Computer Programming and one of Introduction to Computer Programming
- Spring, 2002
- A First Course in Computer Programming, Introduction to Algorithms and Data Structures, and Algorithms and Complexity.
- Fall, 2001
- two sections of A First Course in Computer Programming, one of Introduction to Algorithms and Data Structures, and one of Symbolic Logic.
- Spring, 2001
- Introduction to Algorithms and Data Structures (2 sections, MWF 10:00-10:50 and MW 2:25-3:40) and Algorithms and Complexity (1 section, MWF 12:00-12:50).
- Fall, 2000
- Introduction to Computer Programming (2 sections), Introduction to Algorithms and Data Structures (1 section), and Survey of Programming Languages (1 section).
- Spring, 2000
- Introduction to Algorithms and Data Structures (2 sections) and Algorithms and Complexity.
- Fall, 1999
- Introduction to Computer Programming (3 sections) and Computer Graphics. I was previously scheduled to teach Survey of Programming Languages and a Freshman Seminar on Computers and Telecommunications in Society, but those courses were reassigned.
- Spring, 1999
- Introduction to Algorithms and Data Structures and Systems I.
- Fall, 1998
- Introduction to Computer Programming (3 sections) and Computer Organization and Assembler Language, and supervised an independent study and an Honors thesis.
- Spring, 1998
- Software II, Systems II, Operating Systems, and directed a couple of graduate students in Design and Analysis of Algorithms.
- Fall, 1997
- Computer Graphics, Software I, Systems I, and Symbolic Logic.
- Summer I, 1997
- Programming in Java.
- Spring, 1997
- Algorithms and Complexity, Software II, and Systems II.
- Fall, 1996
- Survey of Programming Languages, Software I, and Systems I.
- Summer, 1996
- the MTP course in Mathematical Logic.
- Spring, 1996
- Software II, Systems II, Senior Project II, and the Honors Seminar.
- Fall, 1995
- Software I, Systems I, and Computer Graphics.

Most of my academic research work concerns itself with computational complexity theory, mathematical logic, or computer science pedagogy. A bibliography is available in various formats.

I have an
Erdös
number of 3, through two paths:

Stephen Bloch -> Jonathan Buss -> Jeff Shallit -> Paul Erdös

Stephen Bloch -> Judy Goldsmith -> Ken Kunen -> Paul Erdös

My academic lineage (from student to doctoral advisor) runs as follows
(according to the Mathematics Genealogy
Project):

Stephen Bloch -> Sam Buss -> Simon Kuchen -> Alonzo Church ->
Oswald Veblen -> E.H. Moore -> H.A. Newton -> Michael Chasles -> Simeon
Poisson -> Joseph Lagrange and Pierre-Simon Laplace.

From Lagrange, it runs to Leonhard Euler -> Johann Bernoulli ->
Jacob Bernoulli and Nikolaus Eglinger.

Before that, the trail branches a lot, but some other names along the
way are Jean Le Rond d'Alembert, Gottfried Wilhelm Leibniz, Nicolaus
Copernicus, and Johannes Müller Regiomontanus.

The two preeminent professional societies for computer scientists are the Association for Computing Machinery and the somewhat more academically-focused Computing Research Association. Within the ACM, the Special Interest Group on Algorithms and Computation Theory, or ACM SIGACT, concentrates on my area of theoretical computer science.

One of the main professional societies for mathematicians is the American Mathematical Society. Within my mathematical specialty of mathematical logic, the main professional society is the Association for Symbolic Logic.

I spend a significant amount of my time advising students on course
selection, graduate schools, and careers.

For course selection, computer science students are of course welcome
to talk to me in my office hours or by appointment, but you can get a lot
of the information you need from
the CS Program
requirements and the department's
schedules
for upcoming semesters.

Students considering graduate school in computer science should look at the CRA's information resources page, which includes a complete list of Ph.D.-granting computer science programs in North America and a database of information about those departments, so you can decide which would meet your needs.

The Math/CS Department has a job board, maintained by AfterCollege Job Resource, where you can post your resume and look at job postings that employers have brought to our attention. Here's a list of career centers and job recruiters, for the benefit of students looking for jobs. The Association for Computing Machinery also provides a list of (largely, but not entirely, academic) job ads, as well as career counseling and resume-posting services for members (I think; I haven't tried it). For those considering academic jobs, I can also point you to the Computing Research Association and the Chronicle for Higher Education Job Page.

I serve as Faculty Advisor to the Adelphi Computer Club, one of whose current projects is a Web server for Adelphi student organizations. The Club is also planning to become an official Student Chapter of the ACM some day. I'm also Faculty Advisor and Coach for the Adelphi team in the ACM Intercollegiate Computer Programming Contest. We've participated in the Greater New York Regional Contest each year since 1994 (maybe earlier, but I wasn't here then).

I'm a member of the College of Arts and Sciences Academic Affairs Committee, also known as ASAAC , and co-Chair of the University Assessment Committee.

Since computer science does not exist in a vacuum, I've started taking quite an interest in its social implications, in particular issues of privacy and civil liberties. The leading professional organization dedicated to these issues is ACM SIGCAS, the ACM Special Interest Group on Computers And Society.

An enormous list of related reading is at Herman Tavani's Bibliography of Computing, Ethics, and Social Responsibility, and a series of reports on integrating ethical and social issues into computer science education is at the ImpactCS Page.

In the run-up to the 2004 elections, I did some amateur research on Presidents and budget deficits; here are my latest findings.

We started a low-carb diet in April 2003. We both quickly lost a bunch of weight and several clothing sizes, and have kept them off for a year or more; I also saw my blood cholesterol improve (after a brief spike). But I really like baking and eating bread, so I came up with a high-protein, high-fiber, low-carb bread recipe; use it in good health.

Many of my hobbies at the moment involve re-creating various aspects of everyday life in the Middle Ages and Renaissance, particularly music, cooking, dance, and tent design. I serve as Webmaster for the Crown Province of Østgarðr, the greater New York City area chapter of the Society for Creative Anachronism. I'm also a member of the 14th-century living history troupe La Belle Compagnie and the tourneying company The Company of St. Michael (where my wife and I provide shawm music to accompany tourneys and pageants).

You are visitor number 50862 to this page since July 12, 2000. (There were thousands before that, but the counter file got trashed. :-( )

Last modified: Tuesday, 22-Feb-2011 09:25:32 EST Stephen Bloch / sbloch@adelphi.edu

A PGP key is available by finger.