Contents
Preface
PART I Introduction
PART II Curricular Development
CHAPTER 1 ■ Eight principles of an undergraduate curriculum
CHAPTER 2 ■ Prerequisites: Shaping the computing curriculum
CHAPTER 3 ■ When is a computing curriculum bloated?
CHAPTER 4 ■ Hill-climbing with curricula and courses
CHAPTER 5 ■ Developing a useful curricular map
CHAPTER 6 ■ Selected/Annotated references for curricular development
PART III Courses and the Computing Curricula in Context
CHAPTER 7 ■ An historical view of computing curricula
CHAPTER 8 ■ Connecting computer science with other disciplines and the wider community
CHAPTER 9 ■ The role of programming in introductory computing courses
CHAPTER 10 ■ Motivating students and working with gifted students
CHAPTER 11 ■ Capstone-, research-, and project-experiences
CHAPTER 12 ■ Selected/annotated references for courses and curricula in context
PART IV Curricular Issues
CHAPTER 13 ■ Staying connected with the big picture
CHAPTER 14 ■ Balancing the forest and the trees in courses
CHAPTER 15 ■ Guided reading and seminar issues
CHAPTER 16 ■ Writing with the computer science curriculum
CHAPTER 17 ■ College courses of varying credit
PART V Computing and Mathematics
CHAPTER 18 ■ Mathematics and compuitng topics in the classroom
CHAPTER 19 ■ An opportunity for computing-mathematics dialog
CHAPTER 20 ■ Beyond the cliche: mathematical fluency in the computing curriculum
CHAPTER 21 ■ Why a required course on theory?
CHAPTER 22 ■ Some strategies when teaching theory courses
CHAPTER 23 ■ Lessons from the CUPM
CHAPTER 24 ■ Selected/Annotated references for relationships between computing and mathematics
PART VI In the Classroom: Basics, Lab-based, Active Learning, Flipped Classrooms
CHAPTER 25 ■ Basic do’s and don’ts in the classroom: General environment and course suggestions
CHAPTER 26 ■ Basic do’s and don’ts in the classroom: Combating bias, making presentations, and developing slides
CHAPTER 27 ■ Lab layouts for individual and collaborative class sessions
CHAPTER 28 ■ Lab-based courses with the 3 c’s: content, collaboration, and communication
CHAPTER 29 ■ Active learning and/or flipped classrooms
CHAPTER 30 ■ Combining technical depth, social/ethical issues, and active student involvement
CHAPTER 31 ■ Selected/annotated references for course formats
PART VII Preparing a Course
CHAPTER 32 ■ Planning and organizing a course for the first time
CHAPTER 33 ■ Course planning: the day-to-day schedule
CHAPTER 34 ■ Utilizing student class preparation to promote active learning in class
CHAPTER 35 ■ What should be in a syllabus?
CHAPTER 36 ■ The role of textbooks and multimedia
CHAPTER 37 ■ Course development utilizing student-faculty collaboration
PART VIII Instructors’ Roles, Inside and Outside the Classroom
CHAPTER 38 ■ Teacher as coach, mentor, listener (part 1?)
CHAPTER 39 ■ What teachers should, can, and cannot do
CHAPTER 40 ■ Thoughts about lecturing
CHAPTER 41 ■ Teaching and a sense of the dramatic
CHAPTER 42 ■ Teaching and a sense of the dramatic, act ii
CHAPTER 43 ■ Thoughts on student feedback to help teaching
CHAPTER 44 ■ Selected/annotated references for the role of teachers in the classroom
PART IX Exercises and Assignments
CHAPTER 45 ■ Homework assignments and Internet sources
CHAPTER 46 ■ A racquetball-volleyball simulation
CHAPTER 47 ■ The balance between programming and other assignments
CHAPTER 48 ■ Finding interesting examples and assignments for CS1 and CS2
CHAPTER 49 ■ Academic honesty in the classroom
CHAPTER 50 ■ Exercise solutions: motivations, messages sent, and possible distribution
PART X tudent Progress in Courses
CHAPTER 51 ■ Structuring student work
CHAPTER 52 ■ Encouraging student preparation for class
CHAPTER 53 ■ Mid-course corrections
CHAPTER 54 ■ Recovering from disappointing test results
CHAPTER 55 ■ Selected/annotated references for student progress in courses
PART XI Assessment and Grading
CHAPTER 56 ■ Notes on grading
CHAPTER 57 ■ Grading and the allocation of points
CHAPTER 58 ■ Selected/annotated references for assessment and grading
PART XII Outreach and Public Relations
CHAPTER 59 ■ Advertising and recruiting
CHAPTER 60 ■ Course descriptions and public relations for computer science
CHAPTER 61 ■ Resolved: ban ‘programming’ from introductory computing courses
CHAPTER 62 ■ What image do CS1/CS2 present to our students?
CHAPTER 63 ■ Computing teaching labs can communicate negative messages
CHAPTER 64 ■ Do computer games have a role in the computing classroom?
PART XIII Additional Topics
CHAPTER 65 ■ Sorting algorithms: when the Internet gives out lemons, organize a course festival
CHAPTER 66 ■ 1000 (binary) thoughts for developing and using examples
CHAPTER 67 ■ How to prepare students for lifelong learning
CHAPTER 68 ■ How to challenge students
CHAPTER 69 ■ Wellness and the classroom
CHAPTER 70 ■ Selected/annotated references for additional topics
Bibliography
Index
Preface
In the airport, after attending the 2016 Technical Symposium on Computer Science Education (SIGCSE 2016) in Memphis, I talked with an attendee who commented that many conference sessions seemed focused on computing-education research. Although these sessions were of some interest, he wanted practical ideas he could implement immediately in the classroom. What tips, techniques, examples, exercises, approaches, etc. can he use to address everyday challenges and to improve his teaching? In principle, he could work his way through volumes of proceedings from SIGCSE symposia, ITiCSE conferences, ICER workshops, and CCSC regional conferences, but digesting the full range of conference and research articles takes much time — even if he could acquire that range of materials.
For beginning faculty, starting to teach can be even more intimidating. 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 and then left on their own to put the course together. Sometimes the new faculty member can find materials from a previous instance of the course; sometimes an experienced faculty member may be teaching another section of the same course. However, much of the time, the new faculty must construct the course with little input, experience, or feedback. Further, the new faculty member likely does not know the computing-education literature and does not know where to begin.
This book addresses these issues 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 articles.
Motivating Vision for this Book
New computing faculty need a way to get started in their teaching, and on-going faculty want to improve. This book addresses these needs by building upon the 50 teaching-oriented columns I have written for the SIGCSE Bulletin and ACM Inroads 1 , adding several additional articles and selected annotated references.
Over the years, I have observed that many new college faculty, recently graduated with Ph.D.s from research-oriented universities, often have rather little teaching experience. Some graduate schools provide teaching experience and feedback to their graduate students, but others do not. Thus, many new computing faculty have meager background regarding teaching. They may be eager to learn, but they may have difficulty finding a place to start. Also, mid-career computer science faculty may have gained experience about effective teaching, but feedback and discussion sometimes may be lacking.
Between 1997 and 2009, I wrote columns on Classroom Issues for the SIGCSE Bulletin, with a pieces normally appearing twice a year in June and December. In 2010, the extended format of the SIGCSE Bulletin shifted to a new ACM magazine, called Inroads, at which time I wrote columns on curricula (Curricular Syncopations) appearing in June and December, and columns on in-class teaching (Classroom Vignettes) appearing in March and September. Altogether, between 1997 and March 2017, I have written over 50 featured columns. Feedback from the editors suggests that these articles are very well received by readers — computing educators.
Putting these two themes together, this book provides practical, down-to-earth suggestions, observations, and perspectives for computing teachers. Although a complete book on all aspects of teaching, including practices and a full range of cutting-edge research results, would require several volumes and likely overwhelm many practicing teachers, a modest, one-volume resource on practical approaches, tips, and techniques could provide a strong starting place for new computing faculty. The envisioned volume covers many basic elements, but follows an approach that is not intimidating for beginners.
Key Features of the Book
This book has numerous elements designed to connect with teaching practitioners.
- Wide range of teaching topics: A classroom teacher must address questions on many levels, such as:
- How does a course fit into the broader curriculum?
- How will topics be organized?
- What materials will be given to students (e.g., syllabi, readings, examples, textbooks, etc.)?
- What class format should be used (e.g., lectures, small/large groups, labs, etc.)?
- How might students be encouraged to engage with the material?
- What homework, exercises, tests, projects., etc. will students be given?
- How will students be assessed?
Although a comprehensive review of all teaching topics would fill volumes, this book discusses many of these basic elements of teaching. - Practical tone: The book serves as a down-to-earth practitioners guide. Although discussions ar...