Teacher Resources For High School
Participate in the CS Education Community
Playing an active role in the education community supports ongoing learning and exchange of ideas. This is especially helpful in CS education, where the content knowledge changes quickly and many CS teachers are the only CS teacher in their school. Here are a few organizations and resources we recommend.
- WeTeach_CS Blog - Community for CS K-12 educators in Texas
- WeTeach_CS Summit - Annual summer conference for CS K-12 educators in Texas
- CS10K - Community which seeks to have 10,000 well-trained CS teachers in 10,000 High Schools
- Texas Computer Education Association (TCEA) - Membership organization for K-12 educators interested in technology
- Computer Science Teachers Association (CSTA) - Membership organization for K-12 CS educators nationwide
- Choose from the Top Computer Science Educator Blogs
Improve Coding Skills
Strong programming skills are important for CS teachers. Learning new skills and improving on existing skills is an on-going practice. Fortunately, many resources are available to help along the way! Learning block-based languages is typically the first step, followed by learning script languages that have more complex syntax and real-world applications.
The first category of resources is CS teacher PD. The WeTeach_CS calendar lists available Face-to-Face and on-line CS PD events.
Block-based Language Resources
- Alice - Alice 2 allows you to 3D animations while learning computational thinking, problem solving, and computer programming. Alice 3 emphasizes OOO concepts and provides a smooth transition to Java.
- Oracle Academy - Oracle Academy has free, self-paced courses for educators in Alice and Greenfoot (2D game programming).
- Scratch - Scratch allows you to learn programming concepts at no cost by creating projects hands-on and studying projects built by others in the community.
- Snap - Snap is an extension of Scratch with additional features like first class lists, procedures and continuations. These additions make the language a great programming introduction for high school and college students.
Script-based Language Resources
- CodingBat - CodingBat provides bite-size coding practice for Java and Python using strings, arrays, recursion and more.
- Code.org - Code.org has significant resources for learning, especially for the beginning programmer. The Learn section of the web site includes Hour of Code learning segments, Code Studio with longer courses and in-person courses.
- Code Academy - Code Academy provides free, on-line and interactive courses in Java and Python.
- Kahn Academy - Kahn Academy provides free, on-line courses on many subjects including programming and technology.
- EdX - EdX provides free, on-line courses on many subjects from top Universities.
Improve CS Teaching
The CS teaching field offers a wealth of resources and professional development opportunities for beginning and experienced CS educators. Links to major providers of curriculum, tools, resources and professional development follow. (Note that AP-related resources are included in the final section on this page.) CS for All Teachers also has an extensive database with information about CS teaching.
- Code.org (High School) – Resources including CS Discoveries and CS Principles curriculum overviews, AP CS in Java information and additional resources.
- EngageCSEdu – Research-based teaching practices that help engage and retain women and underrepresented minorities in CS courses. Primarily focused on intro CS in college, but also applicable to high school CS.
- CS Unplugged – Resources for teaching computer science concepts without computers.
- MIT App Inventor – The App Inventor enables students to create complex applications with a drag-and-drop app-building tool. The program also includes curriculum, resources and community.
- Code HS – Code HS provides a four-year pathway for CS in high school, with curriculum, resources and support.
- Texas Virtual School Network (TxVSN) – TxVSN provides on-line high school CS Courses including CS I and CS II.
Increase Enrollment and Completion
The first step to increasing CS in K-12 is to offer the courses. The next step is to ensure that enrollment and completion of the courses is high. This effort requires the administrators and teachers to work together, along with counselors, parents and the students themselves. This effort is varies at different grade levels (for example, Elementary Schools might have CS Out-Of-School (OOS) programs, but not CS courses), but the ideas apply to all grades. Here are some ideas for increasing enrollment and completion of CS courses:
- CS Measurement - As a school or district, consistently measure enrollment and completion numbers for CS courses. Settling goals and paying attention often make an impact themselves.
- CS Advocate - Have the CS teacher or an administrator play the role of CS advocate for the school, leading PD sessions for teachers, PTA presentations for parents or talks to students about CS in non-CS classes.
- CS OOS Experiences - The Connectory helps teachers, administrators and parents connect students with STEM-based OOS experiences that increase the likelihood of in-school CS.
- CS After School Club - Work with Google's CS First to start a CS club. The program provides lessons and tools to teach students Scratch in a club environment. This can be done before the first CS teacher is hired and can increase interest for the students and the school for in-school CS courses.
- UIL Computer Science Contest - High School individual and team competitions covering a broad range of CS topics.
Women are only 26% and underrepresented minorities are only 18% of the current CS workforce. Women and minorities could be a significant source of CS college graduates needed to meet increasing industry needs. Also, women and minorities could benefit from the stable and high paying CS careers. How can CS in K-12 help? Some experts believe that student experiences in grades 4-8 can have a very significant impact on the student's future. If students have positive CS experiences before High School, they are more likely to choose CS classes in High School and beyond. High School is also important, to provide the bridge between Middle School and college and prepare students for college-level CS work. Here are ideas for increasing K-12 CS diversity:
- Provide Out Of School (OOS) STEM experiences - This strategy is a key part of increasing enrollment and completion for all students. But it is especially important for girls and minorities because the informal and social aspect of these experiences are especially effective. Some OOS CS programs are specifically for girls in K-8, including Girlstart and Ignite CS. GirlsWhoCode and ChickTech provide seven-week summer immersion programs and school-year workshops, respectively, for High School girls. Latinitas provide media and technology experiences for Latina girls. The National Girls Collaborative Project and Globaloaria address CS and girls for all of K-12. Use The Connectory to connect students with OOS CS experiences.
- Active recruiting of girls and minorities - When offering in-school CS courses as well as OOS programs, the school's CS Advocate and/or other teachers and administrators should encourage girls and minorities to participate. Check out these articles about K-12 CS recruiting of girls and minorities for more ideas.
- Parents and CS - Parents are a huge influence in their children's lives and can influence them to get involved (or not) in CS. The school's CS Advocate, other teachers or administrators can make presentations to parents at key events and talk to individual parents, to explain the advantages and opportunities of pursuing CS.
- Counseling and CS - Be sure that school counselors are aware of the benefits of a career in CS and that girls and minorities might need additional encouragement to pursue this option. Counselors for Computing offers information and resources about this topic, including this helpful infosheet.
- Internships, Mentorships and Scholarships - There are internships, mentorships and scholarship opportunities for High School girls and minorities who want to pursue CS in college. The best approach to finding current information is to do Internet searches at least a year before High School graduation.
Teach AP Courses
The College Board has created two AP CS courses, to make college computer science credit available to all students:
- Computer Science Principles (CSP) - Computer literacy with some coding
- Computer Science A (CSA) - Coding in a chosen language
There are several course curricula available based on the CSP objectives. They each include teacher resources and PD. Several curricula have been specifically endorsed by the College Board for Teaching AP CS Principles. More details about providers of CSP curricula and pedagogical support can be found here. College Board endorsed curricula include the following:
- Beauty and Joy of Computing
- Code HS
- CS Matters
- Mobile Computer Science Principles
- Project Lead the Way
- UTeach CS Principles
- Thriving in our Digital World
Additional resources for teaching AP CS A and AP CS Principles include:
- Runestone - Free ebooks for teaching CSP with Python, and Java Review for the CS A exam
- Oracle Academy - Free online courses in Java Fundamentals, Java Foundations, and Java Programming
- Edhesive - School-wide program with curriculum, resources and PD
- Python Electronic Book from CSLearning4U - Help with teaching Python for AP CS A
Especially if the CS AP teacher is new to the course, it could be helpful to have an experienced CS person as a mentor. TEALS is a grassroots program that recruits, trains, mentors, and places high tech professionals from across the country who are passionate about computer science education into high school classes as volunteer teachers.