We believe the key to a successful CS education is practice. So we've created our material as a 'flipped classroom.'
In a flipped classroom, what would have traditionally been lecture becomes the independent review or homework, and what would have been a homework assignment or practice problem set is completed together during classroom time.
Our material is organized into technical units. Each unit has two components — groundwork and a workshop. The groundwork consists primarily of concept reviews, reading and practice problems in order to prepare and maximize the amount of time building the activities in the workshop sessions. The unit workshops challenge students to build an Android game or activity based on the computer science concepts covered in the groundwork - which is why the groundwork is so important! Each unit takes 6 hours on average. The workshops will also contain extensions; students can challenge themselves to complete at least one, further customizing their work.
Thus, workshops shouldn't feel like a traditional lecture - we expect participants to spend the majority of the workshop portion programming, debugging and collaborating. Workshops are modeled to feel like a professional coding environment - working in small groups to build or implement something.
We use the flipped classroom model in Applied CS because we believe it's important to get practical, hands-on experience with the important concepts reviewed in CS coursework.
Applied CS has lots of activities at your disposal, whether you're looking to practice a particular subject from your CS course or get 30+ hours of practical, project-based coding experience.
If you're looking to enhance particular skills or want to explore our activities without committing to a complete track, you can select one unit to help practice your understanding of specific data structures, Android and/or algorithms skills. Review our learning objectives and activities to pick a unit that sounds like fun and a good fit for you or your students. All of our units are organized by level of difficulty.
For those looking to participate in or run a longer program, we have designed learning tracks, each consisting of six technical units (five units plus our Code Sprint). Each track has a different level of difficulty. Similar to picking a unit, pick a track that will work best for you and/or your students skill level. Similarly, reviewing the learning objectives for each unit will help to explain exactly what each unit's groundwork and workshop covers to help you make your decision. If you don't know where to start, try with the first level!
Our materials are open and free to use. Anyone is welcome to study or use the materials independently - students, industry professionals, faculty and more.
We suggest having already taken a university-level data structures and algorithms class before participating in the program. While we have short videos and groundwork to review concepts, our intention is not to teach the concepts from scratch, but rather, provide a hands-on project-based environment where those concepts can be applied. We also suggest familiarity with Java and having completed programming projects as a part of coursework prior.
Check out our learning objectives and Applied CS YouTube channel to see which concepts you will be implementing in our Android activities.
Students without the mentioned prerequisites will struggle to follow the pace of the course but are still welcome to join if you commit to the necessary self-study time to get up to speed.
- A laptop
- A gmail account
- (Preferred) Any Android mobile device (phone or tablet) running Gingerbread or a more recent version of the Android OS
Not every student needs a device, as long as you are able to share or partner with another small group. Additionally, you can use the Android Studio Emulator.
Basics: Creating Objects, Defining a Class, Arrays, "this", Exceptions, String manipulations, Inheritance
Students are expected to complete 1-1.5 hours of groundwork prior to every workshop session. Groundwork includes reviewing CS concepts, then reading and completing practice problems.
The unit workshop sessions consist of one or two larger programming exercises, where students will be building Android games and activities. The learning environment aims to parallel a professional engineering environment closely - working collaboratively in small groups to build, troubleshoot and launch products. Workshops typically last between 4-6 hours and have optional extensions for extra challenges!
We will provide curriculum and technical training materials (including facilitation guides, video tutorials and surveys/assessments) for facilitators to host workshops and coding sprints.
Anyone is welcome to use or share our materials with fellow university students independently.
As of Spring 2017, the Applied CS program can be brought to your campus in one of two ways. (1) Google managing the program at your location directly, under invitation-only, or (2) facilitators launching the program in your location independently. While we cannot connect interested students at this time, stay tuned for our Location page, where students and facilitators around the world can find programs near them to join.
Yes! Check out our For Facilitators page to learn more about prerequisites and steps to start a program.
- Passion for CS education and outreach
- Completed university level Data Structures and Algorithms coursework
- Familiarity with Java (~1 year)
- Comfortable programming in Android Studio
- (Preferred) Teaching, tutoring, mentoring or TA experience in CS subjects
- Managing all relevant logistics for setting up the program, including finding space and marketing to students
- Inform students about the self study materials per unit, progress expected and workshop logistics
- Manage ongoing program communications with participants
- Prepare each of the workshop sessions to run with students via workshop guide and materials provided
- Deliver feedback to Google on student performance and the course overall
- Deliver specific feedback to students, help students work through challenges and have fun whilst doing all the previous!
We encourage facilitators to review our facilitator guide materials, workshop content and watch our technical unit tutorials prior to arriving in the classroom. This should take around 1-2 hours.
If the question or challenge is purely technical, seek advice through stackoverflow or Googling the answer first - it'll get you a long way! Next, try asking around you to see if anyone else has faced a similar challenge or has a suggestion - collaborative troubleshooting is your best friend. Lastly, we encourage you and participants to post questions to our Facilitator G+ Community.
- Partner with the CS department chairs or faculty to reach out to students
- Send an email to all CS or discipline-related students making them aware of this opportunity (given approval from the department)
- Hang up posters in your campus to gather student attention - See posters here
- Contact on-campus related clubs/organisations: programming club, maths clubs, etc.
Enough for work to be done in small groups. We suggest no more than 40 students in a workshop, and that students work in small groups of 2-3.
Facilitators generally support the program with logistics and provide students with general directions and troubleshooting support during the workshops. They should make sure to arrive early to the workshops to set up the room, introduce themselves and the workshop session (using the facilitator guide). Thereafter, facilitators circulate the classroom to help students with the exercises, encourage breaks (when needed) and close out the workshop. If there are any reminders around additional upcoming work, they should manage those communications, written or verbal.
Yes. All of our content is Creative Commons 2.0 licensed, and starter code is Apache2 licensed. It is free and available to use.
You will need to set up Android Studio before starting your first unit. We've provided brief instructions in our course materials, but you can also reference the Android Studio website for troubleshooting.
The most important factor is enough space for students to code and learn comfortably. Workshops do not need to be in a computer lab, as students can bring their own devices. There should be strong and reliable wireless access to the Internet and enough power outlets/strips for students to plug-in. A projector or whiteboard is also a plus!
Facilitators can adopt any of these workshop formats based on student, university, or personal schedules. Here are some we have seen run effectively in the past:
- 6/7 week format: 1 Unit/Week, covering each unit of the course in 1 week and optional code sprint in last week of the workshop.
- 5 days format: 1 Unit/Day, covering each unit in a single day and optional code sprint on the last day of the workshop.
- 3 weekend format: 2 Units/weekend, covering 2 units each weekend, that results in 3 week workshop and optional code sprint in last Sunday of workshop.
Note that these are just suggested delivery formats for workshops. Content can be adapted to run in the format that works best to accommodate student and university schedules.
Students and/or facilitators can choose whichever dates are most suitable for your or your university's academic calendar to run this course.
If internet in your campus is not stable you may have difficulties in taking this course. To mitigate these, we have provided downloadable offline resources.
- If you're accessing from the university's intranet, check if you are able to access other resources outside their intranet (university firewall may block or only allow access to certain sites only)
- Check if any of your fellow students from the same university are able to access the course
- Double-check if you are using the right email address (the one delivered for registration, Google account) to access the course. Any other email will not have access