Teaching can be intimidating for beginning faculty. Some graduate schools and some computing faculty provide guidance and mentoring, but many do not. Often, a new faculty member is assigned to teach a course, with little guidance, input, or feedback. Teaching Computing: A Practitioner’s Perspective addresses such challenges by providing a solid resource for both new and experienced computing faculty. The book serves as a practical, easy-to-use resource, covering a wide range of topics in a collection of focused down-to-earth chapters.
Based on the authors’ extensive teaching experience and his teaching-oriented columns that span 20 years, and informed by computing-education research, the book provides numerous elements that are designed to connect with teaching practitioners, including:
- A wide range of teaching topics and basic elements of teaching, including tips and techniques
- Practical tone; the book serves as a down-to-earth practitioners’ guide
- Short, focused chapters
- Coherent and convenient organization
- Mix of general educational perspectives and computing-specific elements
- Connections between teaching in general and teaching computing
- Both historical and contemporary perspectives
This book presents practical approaches, tips, and techniques that provide a strong starting place for new computing faculty and perspectives for reflection by seasoned faculty wishing to freshen their own teaching.
Table of Contents
Preface. Introduction. Curricular Development. Developing a useful curricular model. When is a computing curriulum bloated? Prerequisites: Shaping the computing curriculum. Using the hill-climbing algorithm with curricula and courses. Eight principles of an undergraduate curriculum. Selected References. Courses and the computing curricula in context. An historical view of computing curricula. Connecting computer science with other disciplines and the wider community. The role of programming in introductory computing courses. Motivational Issues. Teaching gifted students. Selected References. Curricular Issues. Staying connected with the big picture. Balancing the forest and the trees in courses. Guided reading and seminar issues. Writing within the computer science curriculum. College courses of varying credit. CS and Mathematics. Mathematics and CS topics in the classroom. Mathematics for/with computing and computational science: an opportunity for reflection and dialog. Beyond the cliche, mathematical fluency, in the computing curriculum. Why a required course on theory? Some strategies when teaching theory courses. Lessons from the CUPM. Selected references (annotated.) Course Formats: Basics, Lab-based, Active Learning, Flipped Classrooms. Basic do’s and don’ts in the classroom: General environment and course suggestions. Basic do’s and don’ts in the classroom: Combating bias, presentations, and slides. Lab layouts for individual and collaborative class sessions. A lab-based course highlighting collaboration. Incorporating active learning within the classroom. Flipped classrooms. Selected references. Preparing a Course. Planning and organizing a new course: tips and techniques for getting started. Course planning: the day-to-day schedule. Reading and class work. What should be in a syllabus? The role of textbooks. Course development utilizing student-faculty collaboration. Outreach and Public Relations. Advertising and recruiting. Computing teaching labs can communicate negative messages. What image do CS1/CS2 present to our students? Do computer games have a role in the computing classroom? Resolved: ban ‘programming’ from introductory computing courses.Course descriptions and public relations for computer science. In the Classroom. Teacher as Coach, Mentor, Listener. What teachers should, can, and cannot do? Teaching and a sense of the dramatic.Teaching and a sense of the dramatic, act II. Thoughts on student feedback to help teaching.Thoughts on lecturing. Selected references. Exercises and Assignments. Homework assignments and internet sources.Finding interesting examples and assignments for CS1.2 assignments.The balance between programming and other assignments. A racquetball or volleyball simulation. Academic honesty in the classroom. Exercise solutions: motivations, messages sent, and possible distributions.Student Progress in Courses. Structuring student work. Encouraging student preparation for class. Mid-course corrections. Recovering from disappointing test results. Assessment/Grading. Notes on grading. Grading and the allocation of points. Selected references. Additional Topics. Sorting algorithms: when the internet gives out lemons, organize a course festival. 1000(binary) thoughts for developing and using examples. How to prepare students for lifelong learning, How to challenge students. Wellness and the classroom. Selected references
Henry Walker is the Samuel R. and Marie-Louise Rosenthal Professor of Natural Science and Mathematics and Professor of Computer Science at Grinnell College. He was a regular columnist of the SIGCSE Bulletin, and is a current columnist and Associate Editor for ACM Inroads Magazine. He has written over 55 featured columns, and is an ACM Distinguished Educator, former SIGCSE Chair, member of the ACM Retention Committee and the MAA Committee on Departmental Review, and former member of the AP CS A Development Committee of the College Board.