Engr 694-60: Research Method in CS
Lecture Notes, Fall 2017

H. Conrad Cunningham

6 November 2017

I maintain these notes as text in the Pandoc’s dialect of Markdown using embedded LaTeX markup for the mathematical formulas and then translate the notes to HTML, PDF, and other formats as needed.

Advisory: The HTML version of this document requires use of a browser that supports the display of MathML. A good choice as of November 2017 is a recent version of Firefox from Mozilla.

Go to Current Lecture

Lecture Notes

  1. (21 Aug) Examining the syllabus and course organization

  2. (21 Aug) Motivating the need to improve scientific writing

    1. Calvin and Hobbes on Academic Writing. Comic by Bill Waterson. Blog entry by Jame Preller.

    2. Anguished English quotations collected by Richard Lederer (from Anguished English: An Anthology of Accidental Assaults Upon the English Language, Dell, 1989)

  3. (21, 23 Aug, for Assignment #1 reference) Writing six-word essays

    1. Six-word memoirs

    2. SMITH Magazine

    3. The Race Card Project

  4. (23, 28 Aug, TBD) Being a graduate student in computer science

    1. Reading: Chapter 1 “Introduction” and Chapter 2 “Getting Started” in Justin Zobel’s Writing in Computer Science, Third Edition

    2. Ph.D. Students Must Break Away from the Undergraduate Mentality by Jason Hong, Carnegie Mellon University (from BLOG@CACM, Communications of the ACM, vol. 56, no. 7, pp. 10-11, July 2013). We discuss how graduate (in particular, PhD) study is different from undergraduate study

    3. How to Have a Bad Career in Research/Academia, by David Patterson, University of California Berkeley

    4. Notes on the PhD Degree, by Doug Comer, Purdue University

    5. (for reference) You and Your Research, by Richard Hamming (a transcription of a Bell Communications Research Colloquium Seminar on 7 March 1986):
      [PDF] [YouTube]

    6. (for reference) How to Be a Successful PhD Student (in Computer Science (in NLP/ML)), by Mark Dredze (Johns Hopkins) University and Hanna M. Wallach (University of Massachusetts Amherst)

    7. (for reference) Graduate Study in the Computer and Mathematical Sciences: A Survival Manual, by Dianne Prost O’Leary, University of Maryland College Park

    8. (for reference) How to Succeed in Graduate School: A Guide for Students and Advisors, by Marie desJardins, University of Maryland Baltimore County (from Crossroads, issues 1.2, December 1994, and 1.3, January
    9. (for reference) CMU Advice on Research and Writing

    10. (for reference) The Ph.D. Grind: A Ph.D. Student Memoir, by Philip Guo (University of Rochester, based on his experiences as a PhD student at Stanford University).
      [book PDF] [tl;dr Edition]

    11. (for reference) The Hitchhiker Guides to Surviving Computer Science Graduate School, by Ronald T. Azuma (based on his experiences as a PhD student at the University of North Carolina Chapel Hill)

  5. (25 Aug) No class because of meetings

  6. Improving scientific writing

    1. Reading: Chapter 6 “Good Style” and Chapter 7 “Style Specifics” in Justin Zobel’s textbook Writing for Computer Science, Third Edition, for discussion of writing style in computer science. This is background for the next 3 weeks of discussion of scientific writing.

    2. (28, 30 Aug) Actors and Actions
      [Powerpoint] [handout] [worksheet in Word]

    3. (30 Aug, 1 Sep) Learning from previous students’ mistakes.

    4. (1, 6 Sep) Cohesion, Coherence, and Emphasis
      [Powerpoint] [handout] [worksheet in Word]

    5. (6, 8 Sep) Concision and Simplicity
      [Powerpoint] [handout] [worksheet in Word

    6. (8, 11 Sep) Rewriting a paper abstract
      [handout]

    7. (11, 13 Sep) More on Cutting Clutter and Using Strong, Precise Verbs
      [Powerpoint] [handout]

    8. (for reference) Clinical Chemistry Guide to Scientific Writing, American Association for Clinical Chemistry

    9. (for reference) Free Courses or course materials on scientific writing

  7. (for Assignment #2 reference) Interviewing computer scientists

    1. ThoughtCo English Grammar

    2. Purdue University Online Writing Laboratory (OWL)

    3. 30 Tips on How to Interview Like a Journalist, by David Spark at Spark Minute

    4. Free Management Library, Authenticity Consulting:

    5. Interviewing Scientists

    6. Journalism Tutorials, Silver Stringers citizen journalists (a project originally associated with the MIT Media Lab)

  8. Using repetition and parallelism

    1. Reading: “Repetition and Parallelism” section, pages 105-6, in Chapter 7 of Justin Zobel’s textbook Writing for Computer Science, Third Edition

    2. (13 Sep) Parallel Structure, Purdue University Online Writing Laboratory (OWL)

    3. (13 Sep) Self Teaching Unit: Parallel Structure, Towson University, online writing support

    4. (for reference) Parallelism 101: Add Clarity and Balance to Your Speeches, by Andrew Dlugan

    5. (20 Sep) Guide to Grammar and Writing, Capitol Community College Foundation:

  9. (15 Sep, for Assignment #3) Attending Department seminar. Valerie Polgar. “Media Art: Relationship Between Art and Tech”, 3:00 PM, Friday, September 15, 2017

  10. (18 Sep) Refereeing and editing for conferences and journals

    1. Reading: Chapter 3 “Reading and Reviewing” in Justin Zobel’s Writing for Computer Science, Third Edition

    2. Guest presentation on Scientific Peer Review (2017 PDF), (2013 slides), Dr. Yixin Chen, Professor, Computer and Information Science

    3. (for reference) The Task of the Referee, by Alan Jay Smith (from IEEE Computer, vol. 23, no. 4, pp. 65-71, April 1990)

      [local copy]

    4. (for reference) A Guide to New Referees in Theoretical Computer Science, by Ian Parberry (from ACM SIGACT News vol. 20, no. 4 (1989): 92-99,

      [local copy]

    5. News item: Publishers Withdraw More Than 120 Gibberish Papers, by Richard Van Noorden (from Nature, 24 February 2014)

  11. (20 Sep) Avoiding misuse of words

    1. Reading: “Misused Words” section, pages 110-13, in Chapter 7 of Justin Zobel’s textbook Writing for Computer Science, Third Edition

    2. Commonly Confused Words, Oxford Dictionaries

    3. Words Often Confused and Spelling, Weber State

    4. Less Versus Fewer, Grammar Girl’s Quick and Dirty Tips

    5. Shall Versus Will, Grammar Girl’s Quick and Dirty Tips

  12. (20 Sep) Using punctuation effectively

    1. Reading: Chapter 8 “Punctuation” in Justin Zobel’s textbook Writing for Computer Science, Third Edition

    2. The Punctuation Guide

    3. (for reference) Punctuation, Purdue University Online Writing Laboratory (OWL)

  13. (22 Sep, Assignment #3) Listening to Chancellor Jeffrey Vitter in Engr 400 class, Brevard 134

  14. (25, 27 Sep, for Assignment #4 reference) Writing tutorials (how-to, or process, essays)

    1. The Process Essay, Capital Community College Foundation

    2. Writing a Process Essay, Literacy Education Online, St. Cloud State University

    3. Videos by David Taylor

    4. (for reference) Technical Writing: How-To’s, Tutorials, and Directions, Teacher Tap, Professional Development Resources for Teachers and Librarians

    5. (27 Sep) How to Write a Tutorial, practical suggestions on tutorial writing at wikiHow.com

    6. (for reference) How to Write an Effective Manual, essay by Don Norman Break)

    7. (27 Sep, focus on examples) Pandoc: A Universal Document Converter [website] [User Guide] [MarkDown]

      Examples:

      • Haskell Notes
      • For files, the .md extension denotes a Pandoc Markdown source, .html the generated HTML, .tex the generated LaTeX, and .pdf the LaTeX processed to a PDF by pdflatex.

      • Files makechapter, maketoc, makenotoc, and makeslidy are my Bash scripts for building the documents.

    8. (for reference) MarkDown Tutorial

  15. (29 Sep for Assignment #5 reference) Writing critiques of papers

    1. Reading: Chapter 3 “Reading and Reviewing” in Justin Zobel’s Writing for Computer Science, Third Edition

    2. Reading a Computer Science Research Paper, by Philip W. L. Fong (from ACM SIGCSE Bulletin Vol. 41, No. 2, pp. 138-140, 2009)

    3. Critically Analyzing Information Sources, Cornell University Library

    4. Notes on Writing Critiques (adapted from a paper by Pamela B. Lawhead)

    5. See Cunningham’s feedback on student writing above

  16. (2 Oct) Using quotation and paraphrasing correctly

    1. Reading: “Quotation” section, pages 90-2, in Chapter 6 and “Quotations” section, pages 128-9, in Chapter 8 of Justin Zobel’s textbook Writing for Computer Science, Third Edition

    2. Quoting, Paraphrasing, and Summarizing, Purdue University Online Writing Laboratory (OWL)

  17. (2 Oct) Avoiding plagiarism

    1. Reading: “Plagiarism” section, pages 257-9, in Chapter 17 of Justin Zobel’s textbook Writing for Computer Science, Third Edition

    2. Avoiding Plagiarism, Purdue University Online Writing Laboratory (OWL)

    3. (for reference) UM Plagiarism and Academic Honesty Video

  18. (4 Oct) Finding references and using library resources

    1. Guest presentation on using the UM Williams Library, by Brian Young, Assistant Professor, Engineering reference librarian

    2. UM Williams Library Computer Science Research Guide

    3. (for reference) Other scholarly search engines and directories

  19. (6 Oct) Selecting citation and article styles

    1. Reading: “Reference and Citation” section, pages 86-90, in Chapter 6 of Justin Zobel’s textbook Writing for Computer Science, Third Edition

    2. Referencing, Murdoch University, resources for IEEE, APA, Chicago, MLA, and other styles

    3. IEEE style: [style manual] [IEEE style @ Murdoch University]

    4. ACM journals style

    5. ACM proceedings style

    6. (for reference) Chicago-Style Citation Quick Guide, The Chicago Manual of Style Online

    7. (for reference) Citation Resources, University of Maryland, resources for APA , MLA, and Chicago styles

  20. (9 Oct) Formatting documents with LaTeX

    1. Getting to Grips with LaTeX, by Andrew Roberts

    2. (for reference) LaTeX Workshops, Tammy Stitz, University of Akron

    3. (for reference) The Not So Short Introduction to LaTeX2e, by Tobias Oetiker, Hubert Partl, Irene Hyna, and Elisabeth Schlegl

    4. Revealing the Secrets of David Parnas, by H. Conrad Cunningham
      [PDF] [LaTeX source] [BibTeX database]

    5. A Little Language for Surveys, by H. Conrad Cunningham
      [PDF] [LaTeX source] [BibTeX database] [2007 ACM proceedings class file]

    6. LaTeX Project website

    7. TeX User Group (TUG) website (general TeX resources, not just LaTeX)

    8. CTAN, the Comprehensive TeX Archive Network

    9. Finding, Installing and Using LaTeX Software, Tammy Stitz, University of Akron

    10. Adler Lab image has MiKTeX 2.9.4 installed in Spring 2014 (TBD check current)

    11. Apple Mac OS X: [MacTeX]

    12. Microsoft Windows: [MiKTeX] [TeXstudio integrated environment] (On Windows, TeXstudio requires a previous TeX installation such as MiKTeX.)

    13. LaTeX Templates

  21. (11 Oct) Guest Presentaion on LaTeX Skills by David Troendle

    1. Troendle’s LaTeX tutorials

    2. See the references above for LaTeX

  22. (13 Oct) No class. Work on assignments.

  23. Understanding intellectual property and technology transfer

    1. Reading: “Intellectual Creations” section, page 257, in Chapter 17 of Justin Zobel’s Writing for Computer Science, Third Edition

    2. (16 Oct) Guest presentation on “Patents, Trademarks, and Copyrights: Protecting Your Work and Technology Transfer at UM” by Allyson M. Best, MBA, Director, Division of Technology Management, Office of Research and Sponsored Programs (ORSP) [Similer slides from 2013]

    3. References on intellectual property:

      1. Chapter 6 of the book Blown to Bits textbook (http://www.bitsbook.com/).

      2. What is Intellectual Property? by World Intellectual Property Organization (WIPO).

      3. What is a Trade Secret? by World Intellectual Property Organization (WIPO).

      4. Copyright and Fair Use, Stanford University Libraries  Note: meaning of “public domain” and “fair use”.

      5. Bitlaw Legal Resource, by Daniel A. Tysver.

      6. Making Sense of Software Licensing, by Ariel Gilbery-Knight, TechSoup Global.

      7. Open source software

      8. The University of Mississippi Department of Licensing oversees the use of University copyrights, trademarks, logos, scripts, images, etc. and licensing their use to other organization and individuals.

      9. Nondisclosure agreements, a form of contract to protect trade secrets: NOLO Law for All, Wikipedia

      10. Software piracy, the unauthorized copying of software in violation of licenses and/or copyright law: Webopedia.

      11. Reverse engineering, extracting design information about a product for the purpose of reproducing or enhancing it or otherwise using the information in another design: Wikipedia, NC State Ethics in Computing.

      12. Patents, Copyrights, and the Law of Intellectual Property, Jeffrey Meldman and Steven Bauer, Spring 2013 course 15.628J (MIT OpenCourseWare: Massachusetts Institute of Technology)

  24. (18, 20, 23 Oct) Writing a research paper

    1. Reading: Chapter 5 “Writing a Paper” in Justin Zobel’s Writing for Computer Science, Third Edition

    2. How to Write a Great Research Paper, by Simon Peyton Jones (from his research skills page)
      [Powerpoint] [handout] [video]

    3. (for reference) How to Write Papers so that Others Can Read Them, by Derek Dreyer, POPL2016

    4. (for reference) How to Write Math Papers Clearly, Igor Pak’s blog.

  25. (23 Oct) Writing the introduction to a paper
    This document discusses how to write effective introductions and revises the introduction to Cunningham’s paper “A Little Language for Surveys” to better satisfy the suggestions.

  26. (25 Oct, for Assignment #6 reference) Creating annotated bibliographies

    1. Annotated Bibliographies, Purdue University Online Writing Lab

    2. How to Prepare an Annotated Bibliography, Cornell University Library

    3. The Writer’s Handbook: Annotated Bibliography, University of Wisconsin Madison, Writing Center

    4. How to Write an Annotated Bibliography, online audiovisual presentation from University of Maryland University College

    5. LaTeX/BibTeX styles for annotated bibliographies

    6. Annotated Bibliography for the Tutorial on “Exploring Typed Language Design in Haskell”, by Oleg Kiselyov and Ralf Lammel (draft January 13, 2010): [local copy]
      Note: This draft annotated bibliography has a good format, but some of the references lack a nnotations.

    7. Domain-Specific Languages: An Annotated Bibliography, by Arie van Deursen, Paul Klint, and Joost Visser (from Sigplan Notices, Vol. 35, No. 6, pp. 26-36, 2000): [local copy]
      Note: The van Deursen paper contains a good annotated bibliography except the annotations are not complete sentences as required for the Annotated Bibliography assignment.

    8. Cunningham’s LaTeX/BibTeX Example of the “Revealing the Secrets of David Parnas” article
      Note: This bibliography is only partially annotated. The purpose is to show how to use the BibTeX styles.

  27. Presenting

    1. Reading: Chapter 16 “Presentations” in Justin Zobel’s Writing for Computer Science, Third Edition

    2. (25 Oct) Epic Welcome Speech (full version), by Nick Selby, Georgia Institute of Technology

    3. (27 Oct) How to Give a Good Research Talk, by Simon Peyton Jones (from his research skills page)
      [Powerpoint] [handout] [paper] [two-page guide] [YouTube]

    4. (3 Nov) How to Give a Bad Talk, by David Patterson, University of California at Berkeley

    5. (for reference) Powerpoint Presentation Skills for Scientists, by Whitney Wiltshire, University of Mississippi Medical Center

    6. (for reference) Giving an Academic Talk, by Jonathan Shewchuk, University of California at Berkeley

    7. (for reference) How to Give a Talk, by Bruce Donald, Duke University

    8. (for reference) Six Minute Speaking and Presentation Skills, by Andrew Dlugan

    9. (for reference) COMM 101: Public Speaking, course at Saylor.org Academy

    10. (for reference) LaTeX Beamer class for presentation slides (included in most LaTeX distributions)

  28. (1 Nov) No class meeting. Work on annotated bibliography assigment

  29. Critiquing example speeches

    1. (for reference) Speech Analysis Series, at Six Minute Speaking and Presentation Skills, by Andrew Dlugan
      [#1] [#2] [#3] [#4] [#5]

    2. (30 Oct video, 3 Nov analysis) How to Speak: Lecture Tips from Patrick Henry Winston, Massachusetts Institute of Technology Note: This is an excellent lecture about giving an effective lecture! Although from 1997, it still has relevance today.
      [YouTube] [Vimeo]

    3. (for reference) Last Lecture: Really Achieving Your Childhood Dreams, by Randy Pausch, Carnegie Mellon University
      [YouTube]

    4. (for reference) Stanford Commencement Speech 2005, by Steve Jobs, Apple Computer
      [YouTube]

    5. (for reference) The Best Stats You’ve Ever Seen, 2006 TED talk by Hans Rosling, Karolinska Institute and GapMinder Foundation [YouTube]

    6. (for reference) The Art of Choosing, July 2010 TED talk by Sheena Iyengar, Columbia University (no critique)

  30. Behaving ethically and professionally

    1. (8 Nov) Reading: Chapter 17 “Ethics” in Justin Zobel’s Writing for Computer Science, Third Edition

    2. (6 Nov) Ethical Analysis Framework (from CSci 300)

    3. (6 Nov) Drinking on the Job Case (from CSci 300)

    4. (6 Nov) Research Ethics, from the Sociology, History, and the Philosophy of Science (SHiPS) Resource Center, University of Minnesota
      Discuss the ethical case studies.

    5. (for reference) Online Ethics Center for Engineering and Science. (This site has a number of resources such as the Drinking on the Job case study.)

    6. (8 Nov) Association for Computing Machinery (ACM) Code of Ethics.

    7. (8 Nov) UM’s Institutional Review Board (IRB) “reviews all proposed research involving human subjects to ensure that subjects are treated ethically and that their rights and welfare are adequately protected.”

    8. (for reference) ACM/IEE-CS Software Engineering Code of Ethics and Professional Practice.

    9. (for reference) IEEE Code of Ethics.

  31. Considering how native language and culture affect our communication style and assumptions

    1. (TBD) The Art of Choosing, July 2010 TED talk by Sheena Iyengar, Columbia University

    2. (for reference) Writing English as a Second Language, by William Zinsser (Point of Departure blog, American Scholar, Winter 2010)
      Note: We discussed linguistic, cultural, and political factors affecting English writing style of non-native speakers

    3. (for reference) Making by Making Strange: Defamiliarization and the Design of Domestic Technologies, by Genevieve Bell, Mark Blythe, and Phoebe Sengers, ACM Transactions on Computer-Human Interaction (TOCHI) Vol. 12, No. 3, pp. 149-173, 2005

    4. (for reference) COMM 311: Intercultural Communication, course at Saylor.org Academy


  32. (for reference) Lies, Damned Lies, and Scans presentation, linked from David Kriesel’s blog post titled “Xerox scanners/photocopiers randomly alter numbers in scanned documents”

  33. (TBD) Exploring issues in computer science publication: Articles from Tagide: Software and Musings, a blog by Cristina (Crista) Videira Lopes (University of California Irvine). These were mentioned but not discussed in depth.

    1. The Evolution of CS Papers, 8 February 2014

    2. The Story of a Journal Proposal, 9 November 2013

    3. Conferences vs. Journals: The Hidden Assumptions, 21 April 2013

    4. Research in Programming Languages, 2 March 2012

  34. (TBD) Discussing the maxim “Know the business” where the business is being a university faculty member

  35. (TBD) Discussing PhD and MS program requirements, history of the CIS PhD program, gettting faculty jobs, and how success of academic departments is judged from various perspectives

  36. (TBD) Reviewing final project requirements and setting presentation schedule

  37. (4 Dec) Presenting Final Projects


  38. (Used in 2013 and 2014, not 2016) Writing grant proposal

    1. Reading: “Grant Applications” section, pages 183-4, in Chapter 12 of Justin Zobel’s Writing for Computer Science, Third Edition

    2. Guest presentation on Grant Writing for Computer Scientists, by Jason Hale, Office of Research and Sponsored Programs (ORSP) [2013 slides]

    3. (for reference) How to Write a Great Research Proposal, by Simon Peyton Jones his research skills page [Powerpoint] [handout]

    4. (for reference) How to Write a Grant Proposal for Industry, blog post by Matt Welsh, Google Software Engineer, former Computer Science professor at Harvard University, April 11, 2011

  39. (Used in 2013 and 2014, not 2016) Understanding the nature of research in computer science

    1. Reading: Chapter 4 “Hypotheses, Questions, and Evidence” in Justin Zobel’s Writing for Computer Science, Third Edition

    2. (for reference) Reading: Chapter 14 “Experimentation” in Justin Zobel’s Writing for Computer Science, Third Edition

    3. A Criticism of Computer Science: Models or Modeles? blog post by Daniel Lemire

    4. What Makes Good Research in Software Engineering, by Mary Shaw (from International Journal of Software Tools for Technology Transfer (STTT), Springer, Vol. 4, pp. 1-7, 2002) [local copy]

    5. (for reference) A Preliminary Analysis of the Products of HCI Research, using Pro Forma Abstracts, by William Newman (from Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, pp. 278-284, ACM, 1994) [local copy]

    6. (for reference) Tutorial: Research Methods in Computer Science, by Serge Demeyer, University of Antwerp

    7. (planned for 2014, but not used) Chapter 1 “Answering Questions: What is Science” in Answering Questions with Internet Data: Computational Tools for Social Studies Analysis, by Richard Catrambone and Mark Guzdial. Course notes for the Computational Freakonomics course at Georgia Tech [local copy] [local slides]

    8. (for reference) Status of Empirical Research in Software Engineering, by Andreas Hofer and Walter Tichy, University of Karlsruhe (In Empirical Software Engineering Issues. Critical Assessment and Future Directions, pp. 10-19. Springer Berlin Heidelberg, 2007) [local copy]

    9. (for reference) Empirical Research Methods in Computer Science 2005 course, by Noah Smith and David Smith, Johns Hopkins University

    10. (USed 2013, but not 2014 or 2016) Three Paradigms of Computer Science Research, by Amnon H. Eden (from Minds and Machines, Vol. 17, No. 2, pp. 135-167, 2007) [local copy]
      Brief discussion on each paradigm focusing on methods, ontology, and epistemology

    11. The Philosophy of Computer Science, Stanford Encyclopedia of Philosophy

  40. (Used 2013, but not 2014 or 2016) Assessing papers quickly. In this in-class exercise each student examines an assigned paper for five to ten minutes, then reports to class what it is about

  41. Using statistics, graphs, figures, and tables

    1. Reading: Chapter 11 “Graphs, Figures, and Tables,” in Justin Zobel’s textbook Writing for Computer Science, Third Edition

    2. Reading: Chapter 14 “Experimentation” in Justin Zobel’s textbook Writing for Computer Science, Third Edition

    3. Reading: Chapter 15 “Statistical Principles” in Justin Zobel’s textbook Writing for Computer Science, Third Edition

    4. How to Lie with Statistics, by Darrell Huff (W. W. Norton, 1954)

    5. How to Lie, Cheat, Manipulate, and Mislead Using Statistics and Graphical Displays

    6. How Not to Lie with Statistics: The Correct Way to Summarize Benchmark Results, by Philip J. Fleming and John J. Wallace (from CACM, vol. 29, no. 3, pp. 218-221, 1986) [local copy]

    7. Producing Wrong Data Without Doing Anything Obviously Wrong! by Todd Mytkowicz, Amber Diwan, Mahtias Hauswirth, and Peter Sweeney (from ACM Sigplan Notices, vol. 44, no. 3, pp. 265-276, 2009) [local copy]

    8. Six Simple Techniques for Presenting Data, Andrew Dlugan’s analysis of Hans Rosling’s 2006 TED talk “The Best Stats You’ve Ever Seen” [direct to video]

    9. (for reference) Free courses or course materials on statistics
    10. (for reference) Free books on statistics
  42. Creating posters

    1. Creating Effective Posters, by George Hess, Kathryn Tosney, and Leon Liegel (hosted at North Carolina State University)

    2. Poster Sessions, The Writing Studio at Colorado State University

    3. Designing Conference Posters, by Colin Purrington

    4. LaTeX poster templates: [LaTeX Templates site]] [Brian Amberg]

  43. Searching for faculty, research, and advanced developer positions jobs

    1. Getting an Academic Job, by Michael Ernst, University of Washington, Computer Science

    2. Volatile and Decentralized blog posts by Matt Welsh, Google Software Engineer, former Computer Science professor at Harvard University

    3. How to Interview for a Faculty Position (video)

    4. Reflections on My Tenure-track Assistant Professor Job Search, blog post by Philip Guo, April 2013

    5. How to Get a Teaching Job at a Liberal-Arts College, by Gary DeCoker, Chronicle of Higher Education, August 12, 2009
      Note: The reader comments give useful alternative perspectives.

    6. How to Get a Teaching Job at a Primarily Undergraduate Institution, by A. Malcolm Campbell, Davidson College; Omar A. Quintero, University of Richmond; and Jennifer Frederick, Yale University (American Society of Cell Biology, 2012)

    7. Curriculum Vitae, Colorado State University, The Writing Studio

    8. Curriculum Vitae, by Alison Doyle, About.com Job Searching

    9. Resume Tips for Computer Science Students, a blog post by Patrick Cozzi

    10. How to Write a Research Statement, by Michael Ernst, University of Washington, Computer Science

    11. Research Statement, University of Pennsylvania, Career Services

    12. Dr. Karen’s Rules of the Research Statement, by Karen Kelsky,The Professor is In blog, August 30, 2012

    13. Writing a Winning Teaching Statement, Columbia University, Graduate School of Arts and Sciences Teaching Center

    14. How to Write a Statement of Teaching Philosophy, by Gabriella Montell, The Chronicle of Higher Education, March 27, 2003

    15. Writing the Teaching Statement, by Rachel Narehood Austin, Bates College, Chemistry, in Science, April 14, 2006

    16. The Dreaded Teaching Statement: Eight Pitfalls, by Karen Kelsky, The Professor is In blog, September 16, 2011

    17. Writing a Statement of Teaching Philosophy for the Academic Job Search, by Chris O’Neal, Deborah Meizlish, and Matthew Kaplan, University of Michigan, Center for Research on Teaching and Learning

  44. Teaching at the college level

    1. Teaching Ideas, Cornell University, Center for Teaching Excellence

    2. Design and Teach a Course, Carnegie-Mellon University, Eberly Center for Teaching Excellence and Innovative Education

    3. Best Practice Articles, University of North Carolina Charlotte, Center for Teaching and Learning

    4. Strategies for Online Teaching, University of Michigan, Center for Research on Learning and Teaching

    5. What Was It Like to Teach a MOOC? by Armando Fox, University of California Berkeley, EECS

    6. University Teaching 101, Johns Hopkins University, Coursera MOOC

    7. Revised Bloom’s taxonomy for designing learning objectives (Also see articles in listings at Cornell, Carnegie-Mellon, and UNC Charlotte above.)

    8. Tulane University document on Student Learning Outcomes

    9. Auburn University’s ABET Outcomes Explained Using Bloom’s Taxonomy [local PDF]

    10. Rubrics (Also see articles in listing at Cornell, Carnegie-Mellon, and UNC Charlotte above.)

    11. Constuctivism in Computer Science Education, by Mordechai Ben-Ari, Weizmann Institute of Science (from Journal of Computers in Mathematics and Science Teaching, vol. 20, no. 1, pp. 45-73, 2001) [local copy]

    12. The Torch or the Firehose: A Guide to Section Teaching, by Arthur Mattuck, Massachusetts Institute of Technology

    13. Teaching Engineering, a book by Phillip C. Wankat and Frank S. Oreovicz, Purdue University

    14. Teaching College-Level Science and Engineering, by Janet Rankin, Fall 2012 course 5.95J (MIT OpenCourseWare: Massachusetts Institute of Technology)

  45. Locating computer science teaching and learning resources

    1. Ensemble Computing Portal, Connecting Computing Educators (sponsored by NSF)

    2. Computer Science Open Educational Resources (OER)

    3. Kinesthetic Learning Activities for Computer Science Education

    4. Computer Science Unplugged

    5. CS10K Community “seeks to have 10,000 well-trained computer science teachers in 10,000 high school across the United States.”

    6. Computer Science Teaching Resources from the Exploring Computer Science (a program funded by the National Science Foundation, hosted at the University of California at Los Angeles)

    7. CSTA Source Web Repository: K-12 Computer Science Teaching and Learning Materials, from the Computer Science Teachers Association (CSTA)

    8. BootStrap project

    9. Code.org

    10. Free programming language textbooks (Prof. Cunningham’s list)

    11. Finding Open Educational Resources, Open Professionals Education Network (OPEN)

    12. Saylor.org Academy, courses in various fields, including computer science

    13. Khan Academy]

    14. MIT OpenCourseWare

    15. Open CourseWare Consortium

    16. Class Central, a Massive Open Online Course (MOOC) aggregator

    17. Interaction Design Foundation, open educational materials

  46. Reasoning

    1. Prof. Cunningham’s lecture notes developed for CSci 550 (Program Semantics and Derivation) or CSci 555 (Functional Programming)

    2. Gary Hardegree’s online notes at the University of Massachusetts Amherst

    3. Online Materials for Introduction to Logic, by Rick Grush, University of California at San Diego

    4. Saylor.org Academy
    5. MIT OpenCourseWare

      • Mathematics for Computer Science, Tom Leighton and Marten Dijk, Fall 2010 course 6.042J (MIT OpenCourseWare: Massachusetts Institute of Technology) [textbook]
        Note: Section I on Proofs (first 8 of 21 chapters) is especially relevant to mathematical/logical reasoning.

      • Street-Fighting Mathematics, by Sanjoy Mahajan, January 2008 course 18.098 (MIT OpenCourseWare: Massachusetts Institute of Technology)

    6. How to Write a Proof, by Leslie Lamport (American Mathematical Monthly, vol. 102, no. 7, pp. 600-608, August-September 1995)

  47. Miscellaneous

    1. How to Get a Paper Accepted at OOPSLA, a panel discussion by Ralph E. Johnson, Kent Beck, Grady Booch, William Cook, Richard Gabriel, and Rebecca Wirfs-Brock (from SIGPLAN Notices Vol. 28, No. 10, pp. 429-436, October 1993) [local copy]

    2. The Coming-of-Age of Software Architecture Research, by Mary Shaw (from Proceedings of the 23rd International Conference on Software Engineering, IEEE Computer Society, 2001) [local copy]

    3. Writing Good Software Engineering Research Papers: Minitutorial, by Mary Shaw (from Proceedings of the 25th International Conference on Software Engineering, IEEE Computer Society, 2003) [local copy]

    4. How (and How Not) to Write a Good Systems Paper, by Roy Levin and David Redell (from ACM SIGOPS Operating Systems Review, Vol. 17, No. 3, pp. 35-40, July, 1983) [local copy]