• Computer Science in Ann Arbor Public Schools High Schools


    In our high school computer science courses, we teach students how to use computational thinking to solve real-world problems.   Since computing is ubiquitous in society today, we strongly encourage all students to enroll in computer science coursework and we work hard to make these critical skills accessible to all students regardless of the level of experience.  


    Goals of the CS curriculum:

    • ALGORITHMS.  Students will (further) develop computational thinking practices, using the vocabulary and computational tools of a computer scientist to map all kinds of problems into stepwise computation.  
    • CODING.  Students will be justifiably confident in reading, using and writing segments of code
    • APPLICATION.  Students will explore the role that computation can and can not play in the solving of technical problems, looking at the capabilities, limitations, and costs of modern computing technology.
    • PROGRESSION.  Students will be positioned to continue their studies at the college level (if desired) and/or competitively qualify for career opportunities after high school.


    Our computer science course content, while robust and solid, is under continual review and development because of the rapidly changing nature of the computer science landscape.   Content sources include code.org, Project Lead the Way (PLTW),  and our own materials created and curated using current best practices from around the country.


    Our Computer Science Principles course is aligned to the College Boards’ newest AP® course, broadly covering many topics including the Internet, Big Data and Privacy, and Programming and Algorithms.  Students work on analyzing how digital information is encoded, represented, transmitted, and manipulated.  They also focus on algorithmic thinking and basic coding in JavaScript or Python.  Students prepare a project portfolio which is submitted to the College Board, and this course can bear college credit if students elect to take the AP® exam.  


    The Computer Science A course is meant to build upon the skills developed in the Computer Science Principles course (or other programming experience). Using primarily the Java programming language, students will experience a rigorous exploration of the theory and associated techniques of object-oriented computer programming.  Computational thinking skills are sharpened as students work individually and collaboratively on coding projects of increasing complexity.  This course bears college credit if students elect to take the AP® exam.

     In our Mobile Apps course (“Programming in Swift”), students learn to create professional-quality apps for iOS.  Topics include iOS programming in Swift, navigation and workflows, tables and storing data, interacting with the Web, prototyping, and project planning.  This course requires the prior completion of either Computer Science Principles or Computer Science A.


    The Cybersecurity course is a new offering that includes the treatment of the increasingly important aspects of information management, data encryption, security, computer networking systems, risk management, and more.  Developed in response to real-world digital security challenges, this course does contain some coding but can be taken at any point with or without prior experience. 


    The link to the AAPS course guide with a detailed description of each course can be found at this link







    Computer Science: Principles (AP)

    A general introduction to the various domains of computer science including broad treatment of the creation, representation,  and transmission of data, and procedural programming.

    • Computational thinking
    • Use, creation of Pseudocode/code 
    • Data representation
    • Creativity
    • Analysis of technology

    Appropriate for any student regardless of experience

    Computer Science A (AP)

    A thorough treatment of standard algorithms, object-oriented programming, and collaborative design   using the Java language

    • Computational thinking
    • Coding (Java)
    • Debugging
    • De/Composition
    • Creativity
    • Algorithm analysis

    Equivalent to a first-year college course in computer science 

    Computer Science:  Advanced Topics in Programming

    A challenging 2nd-year project-based course, which places a heavy emphasis on student choice.  The process for topic selection will be facilitated by the teacher, and dependent on students prior experience and interest.  The course is based on a combination of whole group instruction and a combination of student learning modules.  Students will complete projects, write about and present their programs/research/results, receive collaborative feedback, and interact with community members when possible.

    • Iterative design
    • De/Composition
    • Creativity 
    • Use of Swift SDK
    • Industry best practices


    Introduction to the principles of data management, privacy and security in various computer systems 

    • Risk analysis
    • Intrusion detection and mitigation
    • Data representation
    • Network management

    AAPS Courses in Computer Science



    Michigan's K-12 Computer Science Content Standards


    What College Majors Can You Pursue With Computing?

    What can your future be like?  From AP College Board




    Tom Pachera

    Career and Technology Education Director