Computer Science Principles (#0200315) 

This document was generated on CPALMS -
You are not viewing the current course, please click the current year’s tab.

Course Standards

Name Description
SC.912.CS-CC.1.1: Evaluate modes of communication and collaboration.
SC.912.CS-CC.1.2: Select appropriate tools within a project environment to communicate with project team members.
SC.912.CS-CC.1.3: Collect, analyze, and present information using a variety of computing devices (e.g., probes, sensors, and handheld devices).
SC.912.CS-CC.1.4: Develop a collaborative digital product using collaboration tools (e.g., version control systems and integrated development environments).
SC.912.CS-CC.1.5: Communicate and publish key ideas and details to a variety of audiences using digital tools and media-rich resources.
SC.912.CS-CC.1.6: Identify how collaboration influences the design and development of software artifacts.
SC.912.CS-CC.1.7: Evaluate program designs and implementations written by others for readability and usability.
SC.912.CS-CP.1.1: Evaluate effective uses of Boolean logic (e.g., using “not”, “or”, “and”) to refine searches for individual and collaborative projects.
SC.912.CS-CP.1.2: Perform advanced searches to locate information and/or design a data-collection approach to gather original data (e.g., qualitative interviews, surveys, prototypes, and simulations).
SC.912.CS-CP.1.3: Analyze and manipulate data collected by a variety of data collection techniques to support a hypothesis.
SC.912.CS-CP.1.4: Collect real-time data from sources such as simulations, scientific and robotic sensors, and device emulators, using this data to formulate strategies or algorithms to solve advanced problems.
SC.912.CS-CP.2.1: Explain the program execution process (by an interpreter and in CPU hardware).
SC.912.CS-CP.2.2: Design and implement a program using global and local scope.
SC.912.CS-CP.2.3: Implement a program using an industrial-strength integrated development environment.
SC.912.CS-CP.2.4: Facilitate programming solutions using application programming interfaces (APIs) and libraries.
SC.912.CS-CP.2.5: Explain the role of an API in the development of applications and the distinction between a programming language’s syntax and the API.
SC.912.CS-CP.2.6: Describe a variety of commonly used programming languages.
SC.912.CS-CP.2.7: Classify programming languages by paradigm and application domain (e.g., imperative, functional, and logic languages) and evaluate their application to domains such as web programming, symbolic processing and data/numerical processing.
SC.912.CS-CP.3.1: Create a computational artifact, individually and collaboratively, followed by reflection, analysis, and iteration (e.g., data-set analysis program for science and engineering fair, capstone project that includes a program, term research project based on program data).
SC.912.CS-CP.3.2: Create mobile computing applications and/or dynamic web pages through the use of a variety of design and development tools, programming languages, and mobile devices/emulators.
SC.912.CS-CS.1.1: Analyze data and identify real-world patterns through modeling and simulation.
SC.912.CS-CS.1.2: Formulate, refine, and test scientific hypotheses using models and simulations.
SC.912.CS-CS.1.3: Explain how data analysis is used to enhance the understanding of complex natural and human systems.
SC.912.CS-CS.1.4: Compare techniques for analyzing massive data collections.
SC.912.CS-CS.1.5: Represent and understand natural phenomena using modeling and simulation.
SC.912.CS-CS.2.1: Explain intractable problems and understand that problems exists that are computationally unsolvable (e.g., classic intractable problems include the Towers of Hanoi and the Traveling Salesman Problem -TSP).
SC.912.CS-CS.2.2: Describe the concept of parallel processing as a strategy to solve large problems.
SC.912.CS-CS.2.3: Demonstrate concurrency by separating processes into threads of execution and dividing data into parallel streams.
SC.912.CS-CS.2.4: Divide a complex problem into simpler parts by using the principle of abstraction to manage complexity (i.e., by using searching and sorting as abstractions) using predefined functions and parameters, classes, and methods.
SC.912.CS-CS.2.5: Evaluate classical algorithms and implement an original algorithm.
SC.912.CS-CS.2.6: Evaluate various data types and data structures.
SC.912.CS-CS.2.7: Explain how sequence, selection, iteration, and recursion are building blocks of algorithms.
SC.912.CS-CS.2.8: Decompose a problem by defining new functions and classes.
SC.912.CS-CS.2.9: Evaluate ways to characterize how well algorithms perform and that two algorithms can perform differently for the same task.
SC.912.CS-CS.2.10: Design and implement a simple simulation algorithm to analyze, represent, and understand natural phenomena.
SC.912.CS-CS.2.11: Evaluate algorithms by their efficiency, correctness, and clarity (e.g., by analyzing and comparing execution times, testing with multiple inputs or data sets, and by debugging).
SC.912.CS-CS.2.12: Compare and contrast simple data structures and their uses.
SC.912.CS-CS.2.13: Explain how automated software testing can reduce the cost of the testing effort.
SC.912.CS-CS.2.14: Explain what tools are applied to provide automated testing environments.
SC.912.CS-CS.4.1: Describe a software development process that is used to solve problems at different software development stages (e.g., design, coding, testing, and verification).
SC.912.CS-CS.4.2: Describe the organization of a computer and identify its principal components by name, function, and the flow of instructions and data between components (e.g., storage devices, memory, CPU, graphics processors, IO and network ports).
SC.912.CS-CS.4.3: Differentiate between multiple levels of hardware and software (such as CPU hardware, operating system, translation, and interpretation) that support program execution.
SC.912.CS-CS.4.4: Evaluate various forms of input and output (e.g., IO and storage devices and digital media).
SC.912.CS-CS.4.5: Develop and evaluate criteria for purchasing or upgrading computer system hardware (e.g., Wi-Fi, mobile devices, home and office machines).
SC.912.CS-CS.4.6: Develop criteria for selecting appropriate hardware and software when solving a specific real-world problem (such as business, educational, personal).
SC.912.CS-CS.4.7: Develop a software artifact (independently and collaboratively) in phases (or stages) according to a common software development methodology (e.g., Waterfall or Spiral model).
SC.912.CS-CS.4.8: Evaluate the basic components of computer networks.
SC.912.CS-CS.5.1: Identify and select the most appropriate file format based on trade-offs (e.g., open file formats, text, proprietary and binary formats, compression and encryption formats).
SC.912.CS-CS.5.2: Describe the issues that impact network functionality (e.g., latency, bandwidth, firewalls and server capability).
SC.912.CS-CS.5.3: Describe common network protocols, such as IP, TCP, SMTP, HTTP, and FTP, and how these are applied by client-server and peer-to-peer networks.
SC.912.CS-PC.1.1: Compare and contrast appropriate and inappropriate social networking behaviors.
SC.912.CS-PC.1.2: Describe and demonstrate ethical and responsible use of modern communication media and devices.
SC.912.CS-PC.1.3: Evaluate the impacts of irresponsible use of information (e.g., plagiarism and falsification of data) on collaborative projects.
SC.912.CS-PC.1.4: Explain the principles of cryptography by examining encryption, digital signatures, and authentication methods (e.g., explain why and how certificates are used with “https” for authentication and encryption).
SC.912.CS-PC.1.5: Implement an encryption, digital signature, or authentication method.
SC.912.CS-PC.1.6: Describe computer security vulnerabilities and methods of attack, and evaluate their social and economic impact on computer systems and people.
SC.912.CS-PC.2.1: Describe how the Internet facilitates global communication.
SC.912.CS-PC.2.2: Identify ways to use technology to support lifelong learning.
SC.912.CS-PC.2.3: Discuss and analyze the impact of values and points of view that are presented in media messages (e.g., racial, gender, and political).
SC.912.CS-PC.2.4: Analyze the positive and negative impacts of technology on popular culture and personal life.
SC.912.CS-PC.2.5: Construct strategies to combat cyberbullying or online harassment.
SC.912.CS-PC.2.6: Describe the impact of computing on business and commerce (e.g., automated inventory processing, financial transactions, e-commerce, virtualization, and cloud computing).
SC.912.CS-PC.2.7: Describe how technology has changed the way people build and manage organizations and how technology impacts personal life.
SC.912.CS-PC.2.8: Evaluate ways in which adaptive technologies may assist users with special needs.
SC.912.CS-PC.2.9: Explain how societal and economic factors are affected by access to critical information.
SC.912.CS-PC.2.10: Describe and evaluate the challenges (e.g., political, social, and economic) in providing equal access and distribution of technology in a global society.
SC.912.CS-PC.2.11: Construct writings and/or communications using developmentally appropriate terminology.
SC.912.CS-PC.2.12: Explore a variety of careers to which computing is central.
SC.912.CS-PC.2.13: Predict future careers and the technologies that may exist based on current technology trends.
SC.912.CS-PC.3.1: Evaluate the quality of digital resources for reliability (i.e., currency, relevancy, authority, accuracy, and purpose of digital information).
SC.912.CS-PC.3.2: Evaluate the accuracy, relevance, comprehensiveness, appropriateness, and bias of electronic information resources.
SC.912.CS-PC.3.3: Conduct research using peer reviewed articles, newspapers, magazine articles, and online books.
SC.912.CS-PC.3.4: Analyze and evaluate public/government resources and describe how using these resources for communication can affect change.
SC.912.CS-PC.4.1: Describe how different types of software licenses (e.g., open source and proprietary licenses) can be used to share and protect intellectual property.
SC.912.CS-PC.4.2: Explain how access to information may not include the right to distribute the information.
SC.912.CS-PC.4.3: Describe differences between open source, freeware, and proprietary software licenses, and how they apply to different types of software.
SC.912.CS-PC.4.4: Describe security and privacy issues that relate to computer networks.
SC.912.CS-PC.4.5: Identify computer-related laws and analyze their impact on digital privacy, security, intellectual property, network access, contracts, and harassment.
SC.912.CS-PC.4.6: Describe security and privacy issues that relate to computer networks including the permanency of data on the Internet, online identity, and privacy.
SC.912.CS-PC.4.7: Evaluate and use digital citation tools to cite sources.
SC.912.CS-PC.4.8: Describe the impact of government regulation on privacy and security.
MA.K12.MTR.1.1: Actively participate in effortful learning both individually and collectively.  

Mathematicians who participate in effortful learning both individually and with others: 

  • Analyze the problem in a way that makes sense given the task. 
  • Ask questions that will help with solving the task. 
  • Build perseverance by modifying methods as needed while solving a challenging task. 
  • Stay engaged and maintain a positive mindset when working to solve tasks. 
  • Help and support each other when attempting a new method or approach.


Teachers who encourage students to participate actively in effortful learning both individually and with others:
  • Cultivate a community of growth mindset learners. 
  • Foster perseverance in students by choosing tasks that are challenging. 
  • Develop students’ ability to analyze and problem solve. 
  • Recognize students’ effort when solving challenging problems.
MA.K12.MTR.2.1: Demonstrate understanding by representing problems in multiple ways.  

Mathematicians who demonstrate understanding by representing problems in multiple ways:  

  • Build understanding through modeling and using manipulatives.
  • Represent solutions to problems in multiple ways using objects, drawings, tables, graphs and equations.
  • Progress from modeling problems with objects and drawings to using algorithms and equations.
  • Express connections between concepts and representations.
  • Choose a representation based on the given context or purpose.
Teachers who encourage students to demonstrate understanding by representing problems in multiple ways: 
  • Help students make connections between concepts and representations.
  • Provide opportunities for students to use manipulatives when investigating concepts.
  • Guide students from concrete to pictorial to abstract representations as understanding progresses.
  • Show students that various representations can have different purposes and can be useful in different situations. 
MA.K12.MTR.3.1: Complete tasks with mathematical fluency. 

Mathematicians who complete tasks with mathematical fluency:

  • Select efficient and appropriate methods for solving problems within the given context.
  • Maintain flexibility and accuracy while performing procedures and mental calculations.
  • Complete tasks accurately and with confidence.
  • Adapt procedures to apply them to a new context.
  • Use feedback to improve efficiency when performing calculations. 
Teachers who encourage students to complete tasks with mathematical fluency:
  • Provide students with the flexibility to solve problems by selecting a procedure that allows them to solve efficiently and accurately.
  • Offer multiple opportunities for students to practice efficient and generalizable methods.
  • Provide opportunities for students to reflect on the method they used and determine if a more efficient method could have been used. 
MA.K12.MTR.4.1: Engage in discussions that reflect on the mathematical thinking of self and others. 

Mathematicians who engage in discussions that reflect on the mathematical thinking of self and others:

  • Communicate mathematical ideas, vocabulary and methods effectively.
  • Analyze the mathematical thinking of others.
  • Compare the efficiency of a method to those expressed by others.
  • Recognize errors and suggest how to correctly solve the task.
  • Justify results by explaining methods and processes.
  • Construct possible arguments based on evidence. 
Teachers who encourage students to engage in discussions that reflect on the mathematical thinking of self and others:
  • Establish a culture in which students ask questions of the teacher and their peers, and error is an opportunity for learning.
  • Create opportunities for students to discuss their thinking with peers.
  • Select, sequence and present student work to advance and deepen understanding of correct and increasingly efficient methods.
  • Develop students’ ability to justify methods and compare their responses to the responses of their peers. 
MA.K12.MTR.5.1: Use patterns and structure to help understand and connect mathematical concepts. 

Mathematicians who use patterns and structure to help understand and connect mathematical concepts:

  • Focus on relevant details within a problem.
  • Create plans and procedures to logically order events, steps or ideas to solve problems.
  • Decompose a complex problem into manageable parts.
  • Relate previously learned concepts to new concepts.
  • Look for similarities among problems.
  • Connect solutions of problems to more complicated large-scale situations. 
Teachers who encourage students to use patterns and structure to help understand and connect mathematical concepts:
  • Help students recognize the patterns in the world around them and connect these patterns to mathematical concepts.
  • Support students to develop generalizations based on the similarities found among problems.
  • Provide opportunities for students to create plans and procedures to solve problems.
  • Develop students’ ability to construct relationships between their current understanding and more sophisticated ways of thinking.
MA.K12.MTR.6.1: Assess the reasonableness of solutions. 

Mathematicians who assess the reasonableness of solutions: 

  • Estimate to discover possible solutions.
  • Use benchmark quantities to determine if a solution makes sense.
  • Check calculations when solving problems.
  • Verify possible solutions by explaining the methods used.
  • Evaluate results based on the given context. 
Teachers who encourage students to assess the reasonableness of solutions:
  • Have students estimate or predict solutions prior to solving.
  • Prompt students to continually ask, “Does this solution make sense? How do you know?”
  • Reinforce that students check their work as they progress within and after a task.
  • Strengthen students’ ability to verify solutions through justifications. 
MA.K12.MTR.7.1: Apply mathematics to real-world contexts. 

Mathematicians who apply mathematics to real-world contexts:

  • Connect mathematical concepts to everyday experiences.
  • Use models and methods to understand, represent and solve problems.
  • Perform investigations to gather data or determine if a method is appropriate. • Redesign models and methods to improve accuracy or efficiency. 
Teachers who encourage students to apply mathematics to real-world contexts:
  • Provide opportunities for students to create models, both concrete and abstract, and perform investigations.
  • Challenge students to question the accuracy of their models and methods.
  • Support students as they validate conclusions by comparing them to the given situation.
  • Indicate how various concepts can be applied to other disciplines.
ELA.K12.EE.1.1: Cite evidence to explain and justify reasoning.
K-1 Students include textual evidence in their oral communication with guidance and support from adults. The evidence can consist of details from the text without naming the text. During 1st grade, students learn how to incorporate the evidence in their writing.

2-3 Students include relevant textual evidence in their written and oral communication. Students should name the text when they refer to it. In 3rd grade, students should use a combination of direct and indirect citations.

4-5 Students continue with previous skills and reference comments made by speakers and peers. Students cite texts that they’ve directly quoted, paraphrased, or used for information. When writing, students will use the form of citation dictated by the instructor or the style guide referenced by the instructor. 

6-8 Students continue with previous skills and use a style guide to create a proper citation.

9-12 Students continue with previous skills and should be aware of existing style guides and the ways in which they differ.

ELA.K12.EE.2.1: Read and comprehend grade-level complex texts proficiently.
See Text Complexity for grade-level complexity bands and a text complexity rubric.
ELA.K12.EE.3.1: Make inferences to support comprehension.
Students will make inferences before the words infer or inference are introduced. Kindergarten students will answer questions like “Why is the girl smiling?” or make predictions about what will happen based on the title page. Students will use the terms and apply them in 2nd grade and beyond.
ELA.K12.EE.4.1: Use appropriate collaborative techniques and active listening skills when engaging in discussions in a variety of situations.
In kindergarten, students learn to listen to one another respectfully.

In grades 1-2, students build upon these skills by justifying what they are thinking. For example: “I think ________ because _______.” The collaborative conversations are becoming academic conversations.

In grades 3-12, students engage in academic conversations discussing claims and justifying their reasoning, refining and applying skills. Students build on ideas, propel the conversation, and support claims and counterclaims with evidence.

ELA.K12.EE.5.1: Use the accepted rules governing a specific format to create quality work.
Students will incorporate skills learned into work products to produce quality work. For students to incorporate these skills appropriately, they must receive instruction. A 3rd grade student creating a poster board display must have instruction in how to effectively present information to do quality work.
ELA.K12.EE.6.1: Use appropriate voice and tone when speaking or writing.
In kindergarten and 1st grade, students learn the difference between formal and informal language. For example, the way we talk to our friends differs from the way we speak to adults. In 2nd grade and beyond, students practice appropriate social and academic language to discuss texts.
ELD.K12.ELL.SI.1: English language learners communicate for social and instructional purposes within the school setting.

General Course Information and Notes


This course introduces students to the foundational concepts of computer science and challenges them to explore how computing and technology can impact the world.  Computing is so fundamental to understanding and participating in society that it is valuable for every student to learn as part of a modern education.  Computer science can be viewed as a liberal art, a subject that provides students with a critical lens for interpreting the world around them.  Computer science prepares all students to be active and informed contributors to our increasingly technological society whether they pursue careers in technology or not.  Computer science can be life-changing, not just skill training.

Students learn best when they are intrinsically motivated.  This course prioritizes learning experiences that are active, relevant to students' lives, and provide students authentic choice.  Students are encouraged to be curious, solve personally relevant problems and to express themselves through creation.  Learning is an inherently social activity, so the course is designed to interweave lessons with discussions, presentations, peer feedback, and shared reflections.  As students proceed through the pathway, the structures increasingly shift responsibility to students to formulate their own questions, develop their own solutions, and critique their own work.

It is also critical to diversity the technology workforce.  Addressing inequities within the field of computer science is critical to bringing computer science to all students.  The tools and strategies in this course will help teachers understand and address well-known equity gaps within the field.  All students can succeed in computer science when given the right supports and opportunities, regardless of prior knowledge.

Additional Information

Computer Science Principles

Computer Science Principles introduces students to the foundational concepts of computer science and challenges them to explore how computing and technology can impact the world.  More than a traditional introduction to programming, it is a rigorous, engaging, and approachable course that explores many of the foundational ideas of computing, so all students understand how these concepts are transforming the world we live in.

Florida’s Benchmarks for Excellent Student Thinking (B.E.S.T.) Standards:

This course includes Florida’s B.E.S.T. ELA Expectations (EE) and Mathematical Thinking and Reasoning Standards (MTRs) for students. Florida educators should intentionally embed these standards within the content and their instruction as applicable. For guidance on the implementation of the EEs and MTRs, please visit and select the appropriate B.E.S.T. Standards package.

English Language Development (ELD) Standards Special Notes Section:

Teachers are required to provide listening, speaking, reading and writing instruction that allows English language learners (ELL) to communicate for social and instructional purposes within the school setting.   For the given level of English language proficiency and with visual, graphic, or interactive support, students will interact with grade level words, expressions, sentences and discourse to process or produce language necessary for academic success. The ELD standard should specify a relevant content area concept or topic of study chosen by curriculum developers and teachers which maximizes an ELL’s need for communication and social skills. To access an ELL supporting document which delineates performance definitions and descriptors, please click on the following link: {{AzureStorageLink}}/uploads/docs/standards/eld/si.pdf.


Federal and state legislation requires the provision of accommodations for students with disabilities as identified on the secondary student's Individual Educational Plan (IEP) or 504 plan or postsecondary student's accommodations' plan to meet individual needs and ensure equal access.  Accommodations change the way the student is instructed.  Students with disabilities may need accommodations in such areas as instructional methods and materials, assignments and assessments, time demands and schedules, learning environment, assistive technology and special communication systems.  Documentation of the accommodations requested and provided should be maintained in a confidential file.

In addition to accommodations, some secondary students with disabilities (students with an IEP served in Exceptional Student Education (ESE) will need modifications to meet their needs.  Modifications change the outcomes and or what the student is expected to learn, e.g., modifying the curriculum of a secondary career and technical education course.

Additional Resources

Additional resources and a free curriculum that may be utilized for this course can be found at


As well as any certification requirements listed on the course description, the following qualifications may also be acceptable for the course:

Any field when certification reflects a bachelor or higher degree.

In order for this course to be taught with fidelity teachers without a computer science certification or related postsecondary coursework should, at a minimum, have completed a course in computer science such as those offered through a MOOC from a reputable institution or by attending a training such as those offered by

General Information

Course Number: 0200315 Course Path: Section: Grades PreK to 12 Education Courses > Grade Group: Grades 9 to 12 and Adult Education Courses > Subject: Computer Education > SubSubject: General >
Abbreviated Title: COMP SCI PRINCIPLES
Number of Credits: One (1) credit
Course Attributes:
  • Class Size Core Required
  • Florida Standards Course
Course Type: Core Academic Course Course Level: 2
Course Status: State Board Approved
Grade Level(s): 9,10,11,12
Graduation Requirement: Mathematics

Educator Certifications

Computer Science (Elementary and Secondary Grades K-12)
Business Education (Grades 6-12)

There are more than 686 related instructional/educational resources available for this on CPALMS. Click on the following link to access them: