====== Methods of Teaching Computer Science ====== EDPS 49100 (Independent Study) Fall 2012 \\ Location: Online \\ **Details:** * {{methods_flyer.pdf|Course Flyer}} * {{methods_overview.pdf|Course Overview}} **Instructors:** * [[http://www.edst.purdue.edu/aman | Aman Yadav]], amanyadav (at) purdue.edu * [[http://www.cs.purdue.edu/people/jtk/ | Tim Korb]], [[jtk@purdue.edu]] **Prerequisites (if missing any of these prerequisites, ask for consent of the instructor):** * EDPS 235 (Learning and Motivation) * EDCI 270 (Introduction to Educational Technology and Computing) * Programming ability and experience in two languages * e.g.: CS 15800 or 15900, 17700 or 18000, 24000, 25100 * Discrete mathematics course * e.g.: CS 18200 or MATH 37500 ====== Course Rationale ====== This course will address methods for teaching computer science at the high school level. It is being taught as part of a new [[:license|computer science supplemental licensure program]], which will draw on existing course work in computer science to provide secondary teaching majors with the content background and experiences to be effective high school computer science teachers. The target audience for this course is secondary teaching majors, particularly those in the STEM disciplines. We hope to attract ten to fifteen students per year to complete the course. Students will take the course as a final step before a student teaching experience; therefore, a 40000-level course number designation is appropriate. ====== Goals and Objectives ====== The main purpose of this course is to provide students with pedagogical and content knowledge and experiences to be effective computer science teachers in high school. Upon completing this course students will be able to: * Use the national high school computer science model curriculum; analyze potential learning difficulties and adjust teaching for students with different needs. * Implement a variety of methods in the teaching process, including meaningful learning, collaborative learning, inquiry learning, etc. * Develop constructivist, authentic activities to engage students to learn computer science; create a supportive and active learning environment. * Develop various types of assessments (e.g., formative and summative, authentic, and performance assessments) and corresponding rubrics to evaluate student learning. * Develop detailed lesson plans for selective topics, consisting of goals and objectives, descriptions of activities and tasks, teaching methods, teaching aids, and evaluation. * Effectively manage a computer science classroom and laboratory. * Establish a bank of resources for teaching computer science in high school, including possible materials, lab assignments, class activities, and websites. * Actively participate in professional communities such as CSTA and ACM. Keep up with research in the area of computer science education, and apply it to the teaching process. ====== Class Schedule ====== NOTE: The order of the labs is approximate, as it depends on the scheduling of CS 177 and classroom observations. ^ Week ^ Week of ^ Lecture and Readings ^ Lab ^ Lead ^ | 1 |Aug 20| [[week1|Course Introduction and Teaching CS in High Schools]] | CS Unplugged and Professional Resources | Yadav/Korb | | 2 |Aug 27| [[week2|Pedagogical Approaches to Teaching CS]] | AP CS: Designing the "First CS Lesson" | Yadav | | 3 |Sep 03| [[week3|CS Principles (planned AP course)]] | AP CS: Using Objects | Yadav | | 4 |Sep 10| [[week4|Objects First and Other OOP Approaches]] | AP CS: Implementing Classes | Korb| | 5 |Sep 17| [[week5|Classes, Packages, and Advanced Topics]] | AP CS: Fundamental Data Types | Korb | | 6 |Sep 24| [[week6|Kinesthetic Activities]] | AP CS: Decisions; Iteration |Yadav | | 7 |Oct 01| [[week7|Teaching Variables and Control Flow]] | AP CS: Arrays and Array Lists | Korb | | -- |Oct 08| Break | | | | 8 |Oct 15| [[week8|Arrays and Loops]] | AP CS: Designing Classes; Interfaces and Polymorphism | Korb | | 9 |Oct 22| [[week9|Object-Oriented Design and Interfaces]] | AP CS: Inheritance; Input/Output and Exception Handling | Korb | | 10 |Oct 29| [[week10|Collaborative Learning and Team Projects]] | AP CS: Object-Oriented Design | Korb | | 11 |Nov 05| [[week11|Computational Thinking]] | AP CS: Recursion | Yadav | | 12 |Nov 12| [[week12|Debugging and Unit Testing]] | AP CS: Sorting and Searching | Korb | | -- |Nov 19| Thanksgiving Break | | | | 13 |Nov 26| [[week13|Assessment, AP CS Case Study, and AP CS Exam]] | AP CS: GridWorld | Korb| | 14 |Dec 03| [[week14|Microteaching & Peer Feedback]] | HS Observation (week tbd) | Yadav | Other Topics: * Teaching Tough Topics: Dynamic Data Structures and Recursion * Scratch (including BYOB) * Alice * Greenfoot * Include http://jtf.acm.org/? The [[http://www.amazon.com/Art-Science-Java-Eric-Roberts/dp/0321486129|Art and Science of Java]]. Abbreviations: * BCK: Bennedsen, Caspersen, and Kolling, [[http://www.springer.com/computer/general+issues/book/978-3-540-77933-9|Reflections on the Teaching of Programming]], 2008. * CACM: Communications of the ACM (journal). * CSU: Bell, Witten, and Fellows, [[http://csunplugged.org|Computer Science Unplugged]], 2006. * SIGCSE: ACM Special Interest Group on Computer Science Education (conference). **Textbooks and Reading Materials** * //Java Concepts//, Cay Horstmann, Wiley, 2010. * //Reflections on the Teaching of Programming//, Jens Bennedsen, Michael Caspersen, and Michael Kolling, Springer Verlag, LNCS 4821, 2008. * //Computer Science Unplugged//, Tim Bell, Ian Witten, and Mike Fellows, 2006. Available at http://www.csunplugged.org/. * //Guide to Teaching Computer Science//, Orit Hazzan, Tami Lapidot and Noa Ragonis, Springer Verlag, 2011. * Selected papers from the proceedings of the annual //ACM Technical Symposium on Computer Science Education//, http://www.sigcse.org/. ====== Homeworks & Projects ====== ===== Lesson Plan ===== As prospective teachers, you will develop a unit and lesson plan for teaching one of the Computer Science topics, which you can choose in consultation with the instructor. Your lesson plan should include enough detail so any computer science teacher is able to teach it. Your lesson plan should also include following components [100 points] ==== Laboratory Activity ==== Laboratories are an important aspect of computer science classroom. As a teacher, you will have to develop the lab activity as well manage the students. You will develop a laboratory activity appropriate to your lesson plan. ==== Assessment ==== Assessment of student learning is one of the most important activities for a teacher. You will also develop an assessment plan (quiz, test, etc) to accompany your lesson plan that assesses student learning. ==== Micro Teaching ==== You will present an aspect of your lesson plan and "teach" it to your peers in the class. [50 points] ==== Field Experience ==== Students enrolled in this course will be required to complete a field experience component. The field experience involves two main components. [100 points] === Lab TA === As a part of this class, you will be required to assist as a lab TA for CS 177. ==== Classroom Observations ==== You will be required to observe local high-school computer science classrooms during the course of the semester. The schedule will be finalized with each individual student to avoid scheduling conflicts. ==== Learning Journals ==== You must keep a journal of your reactions to the assigned readings and class activities. This will provide you with an opportunity to reflect upon your learning in the class. You have to complete at least six written responses to the readings. You can choose which of the weeks you would like to do your written response. The written journal is an opportunity for you to engage the ideas explored in this course thoughtfully. [50 points] ==== Reflection Journals ==== Reflection is an important aspect of teaching to provide you an insight into your teaching and how it is going. You will also keep a journal of your reflections on your experiences as a lab TA, classroom visits, and micro teaching experience. [50 points] ==== Course Participation ==== Contribute in class (10%), both the right quantity and quality. Contribute out of class (10%) as well (using email and the Google group discussion). A good rule of thumb is to have something substantive to say at least once a week. [50 points] ===== Course Policies ===== __Attend the class__. You are expected to attend each class session. This is critical as one cannot simply "get the notes" in a class where the interaction among peers and material is key. __Come to class prepared__. We expect you to have read and thought about the required readings; that is, read them with questions, ideas, and conjectures in mind. Good general questions are: What is the author saying? Where does what the author is saying fit into his or her argument? What would it be like to believe what the author is saying? What parts of the paper or chapter were puzzling, confusing, surprising? __Participate in the class__. We will have small group and whole-class discussions of reading assignments, and other topics that may arise. The success or failure of each discussion depends in large part on your participation. We expect each of you will be able to contribute something to our discussions and will do so regularly. You are smart, capable people and the topics, readings, and assignments are designed to engage your interest and experiences. __Students with disabilities__. If you have a disability which requires some special accommodation, please let us know within the first two weeks of the semester to discuss the appropriateness of the instructor’s methods in this class or any other accommodation you may need. __Academic Honesty/Plagiarism__. We will uphold Purdue's policies on academic integrity (see "Student Code of Conduct" available at http://www.purdue.edu/usp/acad_policies/). Specifically, all assignments are to be done individually with no collaboration or assistance from any one including the Internet, unless explicitly permitted by the instructor. Violations will be reported to the Dean of Students and result in zero points for that assignment. __Grading Criteria__. Your course grade will be converted into percentage by dividing your points by the total number of points possible (400 points) and the following grading scale will be used: 90-100 A; 80-89 B; 70-79 C; 60-69 D; <60 F. ===== Internal Course Materials ===== You must have a student account on this wiki to see [[mt2011fp:start|these pages]].