2018 – 2019
Florida Department of Education
Curriculum Framework 

Program Title:	Web Application Development & Programming
Program Type:	Career Preparatory 
Career Cluster:	Information Technology

Secondary – Career Preparatory	
Program Number	9007500	
CIP Number	0511020102	
Grade Level	9-12, 30, 31	
Standard Length	7 credits	
Teacher Certification	Refer to the Program Structure section.	
CTSO	FBLA 
BPA	
SOC Codes (all applicable) 	15-1151 – Computer User Support Specialists
15-1131 – Computer Programmers	
CTE Program Resources 	http://www.fldoe.org/academics/career-adult-edu/career-tech-edu/program-resources.stml	

Purpose

This program offers a sequence of courses that provides coherent and rigorous content aligned with challenging academic standards and relevant technical knowledge and skills needed to prepare for further education and careers in the Information Technology career cluster; provides technical skill proficiency, and includes competency-based applied learning that contributes to the academic knowledge, higher-order reasoning and problem-solving skills, work attitudes, general employability skills, technical skills, and occupation-specific skills, and knowledge of all aspects of the Information Technology career cluster. 

The content includes but is not limited to the fundamentals of programming and software development; procedural and object-oriented programming; creating web-based applications, including testing, monitoring, debugging, documenting, and maintaining applications. 

Additional Information relevant to this Career and Technical Education (CTE) program is provided at the end of this document.

Program Structure

This program is a planned sequence of instruction consisting of four occupational completion points, with OCPs A, B, and C comprising the Software Development Core.  

To teach the courses listed below, instructors must hold at least one of the teacher certifications indicated for that course.

The following table illustrates the secondary program structure:

OCP	Course Number	Course Title	Teacher Certification	Length	SOC Code	Level	Graduation Requirement	
A	8207310	Digital Information Technology	DIT Teacher Certifications	1 credit	15-1151	2	PA	
B	9007210	Foundations of Programming	BUS ED  1 @2
COMP SCI  6
COMP PROG 7 G	1 credit	15-1131	3	VO	
	9007220	Procedural Programming		1 credit	15-1131	3	VO	
C	9007230	Object-Oriented Programming Fundamentals		1 credit	15-1131	3	VO	
D	9007510	Web Programming		1 credit	15-1131	3	VO	
	9007520	JavaScript Programming		1 credit	15-1131	3	VO	
	9007530	PHP Programming		1 credit	15-1131	3	VO	
(Graduation Requirement Abbreviations- EQ= Equally Rigorous Science, PA= Practical Arts, EC= Economics, VO= Career and Technical Education)

Academic Alignment Table

Academic alignment is an ongoing, collaborative effort of professional educators specializing in the fields of science, mathematics, English/language arts, and Career and Technical Education (CTE). This initiative supports CTE programs by improving student performance through the integration of academic content within CTE courses. Career and Technical Education courses that have been aligned to the Next Generation Sunshine State Standards for Science and the Florida Standards for Mathematics and English/Language Arts will show the following data: the quantity of academic standards in the CTE course; the total number of standards contained in the academic course; and the percentage of alignment to the CTE course.

Courses	Anatomy/ Physiology 
Honors	Astronomy     Solar/Galactic Honors	Biology 1	Chemistry 1	Earth-Space Science	Genetics
Honors 	Integrated Science 1 	Marine Science 1 Honors	Physical Science	Physics 1	Environmental Science	
8207310	5/87
6%	5/80
6%	24/83
29%	5/69
7%	24/67
36%	5/70
7%	5/69
7%	24/82
29%	5/66
8%	24/74
32%	5/72
7%	
9007210	2/87
2%	7/80
9%	22/83
27%	4/69
6%	23/67
34%	4/70
6%	3/69
4%	23/82
28%	6/66
9%	26/74
35%	4/72
6%	
9007220	21/87
24%	21/80
26%	2/83
2%	21/69
30%	2/67
3%	20/70
29%	21/69
30%	2/82
2%	16/66
24%	2/74
3%	21/72
30%	
9007230	20/87
23%	20/80
25%	1/83
1%	20/69
29%	1/67
1%	20/70
29%	20/69
29%	1/82
1%	15/66
23%	1/74
1%	21/72
28%	
9007510	2/87
2%	2/80
3%	1/83
1%	2/69
3%	1/67
1%	2/69
3%	1/82
1%	2/66
3%	1/74
1%	2/72
3%	1/70
1%	
9007520	2/87
2%	2/80
3%	1/83
1%	1/69
1%	1/67
1%	2/69
3%	1/82
1%	2/66
3%	1/74
1%	1/72
1%	#	
9007530	1/87
1%	#	1/83
1%	1/69
1%	1/67
1%	1/69
1%	1/82
1%	1/66
2%	1/74
1%	1/72
1%	#	
**   Alignment pending review    						#   Alignment attempted, but no correlation to academic course

Courses	Algebra 1	Algebra 2	Geometry	English 1	English 2	English 3	English 4	
8207310	20/67
30%	15/75
20%	4/54
7%	40/46
82%	40/45
83%	40/45
89%	40/45
89%	
9007210	11/67
16%	10/75
13%	10/54
19%	#	#	#	#	
9007220	14/67
21%	10/75
13%	11/54
20%	#	#	#	#	
9007230	11/67
16%	8/75
11%	11/54
20%	#	#	#	#	
9007510	4/67
6%	3/75
4%	2/54
4%	#	#	#	#	
9007520	8/67
12%	12/75
16%	0/54
0%	#	#	#	#	
9007530	3/67
4%	2/75
3%	1/54
2%	#	#	#	#	
**   Alignment pending review    			#   Alignment attempted, but no correlation to academic course

Florida Standards for Technical Subjects 

Florida Standards (FS) for English Language Arts and Literacy in History/Social Studies, Science, and Technical Subjects are the critical reading and writing literacy standards designed for grade 6 and above. These standards are predicated on teachers of history/social studies, science, and technical subjects using their content area expertise to help students meet the particular challenges of reading, writing, speaking, listening, and language in their respective fields. The FS for Mathematical Practices are designed for grades K-12 and describe varieties of expertise that educators at all levels should seek to develop in their students. These practices rest on important “processes and proficiencies” with longstanding importance in mathematics education.

Instructors must incorporate the Florida Standards for Technical Subjects and Mathematical Practices throughout instruction of this CTE program.  To access these standards, please click on the following link: http://www.fldoe.org/core/fileparse.php/5652/urlt/FloridaStandardsTechSubjects.rtf. 

Florida Standards for English Language Development (ELD)
English language learners communicate for social and instructional purposes within the school setting. ELD.K12.SI.1.1 

English Language Development (ELD) Standards Special Notes:
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: http://www.cpalms.org/uploads/docs/standards/eld/SI.pdf.
For additional information on the development and implementation of the ELD standards, please contact the Bureau of Student Achievement through Language Acquisition at sala@fldoe.org.

Common Career Technical Core – Career Ready Practices

Career Ready Practices describe the career-ready skills that educators should seek to develop in their students.  These practices are not exclusive to a Career Pathway, program of study, discipline or level of education.  Career Ready Practices should be taught and reinforced in all career exploration and preparation programs with increasingly higher levels of complexity and expectation as a student advances through a program of study. 

1. Act as a responsible and contributing citizen and employee. 

2. Apply appropriate academic and technical skills. 

3. Attend to personal health and financial well-being. 

4. Communicate clearly, effectively and with reason. 

5. Consider the environmental, social and economic impacts of decisions. 

6. Demonstrate creativity and innovation. 

7. Employ valid and reliable research strategies. 

8. Utilize critical thinking to make sense of problems and persevere in solving them. 

9. Model integrity, ethical leadership and effective management. 

10. Plan education and career path aligned to personal goals. 

11. Use technology to enhance productivity. 

12. Work productively in teams while using cultural/global competence. 

Standards

Digital Information Technology (8207310) is the first course in this and other programs within the Information Technology Career Cluster.  Standards 01.0 – 14.0 are associated with this course.

After successfully completing this program, the student will be able to perform the following:

01.0	Demonstrate knowledge, skill, and application of information systems to accomplish job objectives and enhance workplace performance.
02.0	Develop an awareness of microprocessors and digital computers.
03.0	Demonstrate an understanding of operating systems.
04.0	Use technology to enhance the effectiveness of communication skills utilizing word processing applications.
05.0	Use technology to enhance communication skills utilizing presentation applications.
06.0	Use technology to enhance the effectiveness of communication utilizing spreadsheet and database applications.
07.0	Use technology to enhance communication skills utilizing electronic mail.
08.0	Investigate individual assessment and job/career exploration and individual career planning that reflect the transition from school to work, lifelong learning, and personal and professional goals.
09.0	Incorporate appropriate leadership and supervision techniques, customer service strategies, and standards of personal ethics to accomplish job objectives and enhance workplace performance.
10.0	Demonstrate competence using computer networks, internet and online databases to facilitate collaborative or individual learning and communication.
11.0	Demonstrate competence in page design applicable to the WWW.
12.0	Develop an awareness of emerging technologies.
13.0	Develop awareness of computer languages and software applications.
14.0	Demonstrate comprehension and communication skills.
15.0	Use oral and written communication skills in creating, expressing and interpreting information and ideas. 
16.0	Explore the characteristics, tasks, work attributes, options, and tools associated with a career in software development. 
17.0	Demonstrate an understanding of the characteristics, use, and selection of numerical, non-numerical, and logical data types. 
18.0	Distinguish between iterative and non-iterative program control structures.
19.0	Differentiate among high level, low level, procedural, object-oriented, compiled, interpreted, and translated programming languages.
20.0	Describe the processes, methods, and conventions for software development and maintenance.
21.0	Explain the types, uses, and limitations of testing for ensuring quality control.
22.0	Create a program design document using Unified Modeling Language (UML) or other common design tool.
23.0	Solve problems using critical thinking skills, creativity and innovation. 
24.0	Use information technology tools. 
25.0	Use security and privacy information.
26.0	Design a computer program to meet specific physical, operational, and interaction criteria.
27.0	Create and document a computer program that uses a variety of internal and control structures for manipulating varied data types.
28.0	Create and document an interactive computer program that employs functions, subroutines, or methods to receive, validate, and process user input.
29.0	Effectively communicate and collaborate.
30.0	Demonstrate responsible use of technology and information.
31.0	Create a unit test plan, implement the plan, and report the results of testing.
32.0	Demonstrate leadership and teamwork skills needed to accomplish team goals and objectives. 
33.0	Describe the importance of professional ethics and legal responsibilities. 
34.0	Explain key concepts that distinguish object-oriented programming from procedural programming. 
35.0	Create a project plan that defines requirements, structural design, time estimates, and testing elements.
36.0	Demonstrate proficiency using HTML and XHTML to create web content. 
37.0	Demonstrate proficiency using cascading style sheets (CSS) to format web pages. 
38.0	Demonstrate proficiency using basic client-side scripting to control the content and the behavior of HTML and XHTML documents. 
39.0	Demonstrate an understanding of JavaScript programming fundamentals. 
40.0	Demonstrate proficiency in assigning and handling variables in JavaScript programs and functions. 
41.0	Use event handlers in JavaScript programs and functions. 
42.0	Recognize and assign data types appropriate to their use. 
43.0	Demonstrate proficiency in using appropriate operators to achieve a planned output. 
44.0	Write executable statements. 
45.0	Demonstrate an understanding of variable scope. 
46.0	Use good programming practices. 
47.0	Demonstrate use of the Document Object Module (DOM). 
48.0	Use conditional control statements in JavaScript. 
49.0	Use iterative control statements in JavaScript. 
50.0	Use nested loop iterative control statements in JavaScript. 
51.0	Use JavaScript to produce input and output for programs. 
52.0	Demonstrate proficiency in using Form Objects in JavaScript programs and functions. 
53.0	Demonstrate proficiency in using methods in JavaScript programs and functions. 
54.0	Demonstrate proficiency in using parameters in JavaScript programs and functions. 
55.0	Utilize debugging techniques in programs. 
56.0	Recognize security risks in programs. 
57.0	Use plug-ins and libraries. 
58.0	Demonstrate proficiency in programming for mobile delivery technology (e.g., iPhone/Android). 
59.0	Demonstrate an understanding of Personal Home Page (PHP) programming language. 
60.0	Demonstrate proficiency in PHP configuration. 
61.0	Demonstrate an understanding of PHP language basics. 
62.0	Demonstrate proficiency in the use of server processes. 
63.0	Demonstrate an understanding of object-oriented programming in PHP. 
64.0	Demonstrate proficiency in writing PHP code to handle file input/output (I/O) operations. 
65.0	Demonstrate proficiency in creating, populating, and using arrays in PHP. 
66.0	Demonstrate proficiency handling strings in PHP. 
67.0	Demonstrate proficiency in using PHP to access databases via Open Database Connectivity (ODBC). 
68.0	Demonstrate proficiency in applying best practices for ensuring creation of a secure program. 
69.0	Demonstrate an understanding of key technologies, protocols, and architectures associated with web development and programming. 

2018 – 2019
Florida Department of Education
Student Performance Standards

Course Title:		Digital Information Technology
Course Number:	8207310
Course Credit:	1

Course Description:

This course is designed to provide a basic overview of current business and information systems and trends, and to introduce students to fundamental skills required for today's business and academic environments.  Emphasis is placed on developing fundamental computer skills.  The intention of this course is to prepare students to be successful both personally and professionally in an information based society.  Digital Information Technology includes the exploration and use of: databases, the internet, spreadsheets, presentation applications, management of personal information and email, word processing and document manipulation, HTML, web page design, and the integration of these programs using software that meets industry standards.  After successful completion of this core course, students will have met Occupational Completion Point A, Information Technology Assistant - SOC Code 15-1151.

Digital Information Technology (8207310) is part of several programs across the various CTE career clusters.  To ensure consistency, the standards and benchmarks for this course (01.0 – 14.0) have been placed in a separate document.   To access this document, visit: Digital Information Technology (8207310).

2018 – 2019
Florida Department of Education
Student Performance Standards

Course Title:	Foundations of Programming 
Course Number:	9007210
Course Credit:	1

Course Description:

This course introduces concepts, techniques, and processes associated with computer programming and software development.  After successful completion of Programming Foundations and Procedural Programming, students will have met Occupational Completion Point B, Computer Programmer Assistant, SOC Code 15-1131.

Abbreviations: 
FS-M/LA = Florida Standards for Math/Language Arts
NGSSS-Sci = Next Generation Sunshine State Standards for Science
FS-CS=Florida Standards for Computer Science

CTE Standards and Benchmarks	FS-M/LA	NGSSS-Sci	Computer Science	
15.0	Use oral and written communication skills in creating, expressing and interpreting information and ideas. – The student will be able to:				
15.01	Select and employ appropriate communication concepts and strategies to enhance oral and written communication in the workplace.		SC.912.N.1.9,
SC.912.N.1.10		
15.02	Locate, organize and reference written information from various sources.		SC.912.N.1.1.6		
15.03	Construct writings and/or communications using developmentally appropriate terminology.	MAFS.912.A-CED.1.1	SC.912.N.1.1.9,
SC.912.N.1.1.10	SC.912.CS-PC.2.11	
15.04	Interpret verbal and nonverbal cues/behaviors that enhance communication.	MAFS.912.G-SRT.1.2	SC.912.N.1.1.5,
SC.912.N.1.1.6,
SC.912.N.1.1.8		
15.05	Analyze the positive and negative impacts of technology on popular culture and personal life.			SC.912.CS-PC.2.4	
15.06	Discuss how technology has changed the way people build and manage organizations and how technology impacts personal life.	MAFS.912.A-REI.1.1; MAFS.912.A-CED.1.1 MAFS.912.F-IF.3.9	SC.912.N.1.1.6-11	SC.912.CS-PC.2.7	
15.07	Evaluate ways in which adaptive technologies may assist users with special needs. 			SC.912.CS-PC.2.8	
15.08	Explain how societal and economic factors are affected by access to critical information.			SC.912.CS-PC.2.9	
15.09	Discuss 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.10	
16.0	Explore the characteristics, tasks, work attributes, options, and tools associated with a career in software development. – The student will be able to:				
16.01	Explore a variety of careers to which computing is central.  	MAFS.912.A-REI.1.1		SC.912.CS-PC.5.1	
16.02	Compare and contrast appropriate and inappropriate social networking behaviors.			SC.912.CS-PC.1.1	
16.03	Discuss 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.6	
16.04	Evaluate the impacts of irresponsible use of information (e.g., plagiarism and falsification of data) on collaborative projects.			SC.912.CS-PC.1.3	
16.05	Identify tasks performed by programmers.	MAFS.912.N-Q.1.1			
16.06	Describe how businesses use computer programming to solve business problems.	MAFS.912.A-REI.1.1			
16.07	Investigate job opportunities in the programming field.				
16.08	Explain different specializations and the related training in the computer programming field.	MAFS.912.A-REI.1.1
MAFS.912.G-SRT.1.2			
16.09	Explain the need for continuing education and training of computer programmers.	MAFS.912.A-REI.1.1			
16.10	Understand and identify ways to use technology to support lifelong learning.				
16.11	Explain enterprise software systems and how they impact business.	MAFS.912.A-REI.1.1			
16.12	Describe ethical responsibilities of computer programmers.	MAFS.912.A-REI.1.1			
16.13	Describe the role of customer support to software program quality.	MAFS.912.A-REI.1.1			
16.14	Identify credentials and certifications that may improve employability for a computer programmer.	MAFS.912.N-Q.1.1			
16.15	Identify devices, tools, and other environments for which programmers may develop software.	MAFS.912.G-CO.4.12; 
MAFS.912.N-Q.1.1			
17.0	Demonstrate an understanding of the characteristics, use, and selection of numerical, non-numerical, and logical data types. – The student will be able to:				
17.01	Identify the characteristics (e.g., size, limits) and uses of different numerical and non-numerical data types.	MAFS.912.N-Q.1.2			
17.02	Explain the types and uses of variables in programs.	MAFS.912.A-REI.1.1; 
MAFS.912.A-SSE.1.1			
17.03	Determine the best data type to use for given programming problems.	MAFS.912.A-REI.1.1			
17.04	Compare and contrast simple data structures and their uses.			SC.912.CS-CS.1.12	
17.05	Identify the types of operations that can be performed on different data types.	MAFS.912.N-Q.1.1			
17.06	Evaluate arithmetic and logical expressions using appropriate operator precedence.	MAFS.912.A-REI.1.1; 
MAFS.912.N-Q.1.1			
17.07	Explain how computers store different data types in memory.	MAFS.912.A-REI.1.1			
17.08	Demonstrate the difference between "data" and "information".				
17.09	Use different number systems to represent data.	MAFS.912.N-Q.1.1			
17.10	Explain how national and international standards (i.e., ASCII, UNICODE) are used to represent non-numerical data.	MAFS.912.A-REI.1.1			
17.11	Use Boolean logic to perform logical operations.				
18.0	Distinguish between iterative and non-iterative program control structures–The student will be able to:				
18.01	Create non-iterative programming structures and their uses.	MAFS.912.A-REI.1.1			
18.02	Create iterative programming structures and their uses.	MAFS.912.A-REI.1.1			
18.03	Explain how sequence, selection, and iteration are building blocks of algorithms.			SC.912.CS-CS.1.7	
19.0	Differentiate among procedural, object-oriented, compiled, interpreted, and translated programming languages. – The student will be able to:				
19.01	Differentiate between multiple levels of operating system, translation, and interpretation) that support program execution.	MAFS.912.N-Q.1.1			
19.02	Explain the program execution process (by an interpreter and in CPU hardware).	MAFS.912.N-Q.1.1		SC.912.CS-CP.2.1	
19.03	Describe object-oriented concepts.	MAFS.912.A-REI.1.1			
19.04	Explain the characteristics of procedural and object-oriented programming languages.	MAFS.912.A-REI.1.1			
19.05	Compare and contrast programming languages that are compiled, interpreted, and translated.	MAFS.912.G-SRT.1.2			
19.06	Classify programming languages by paradigm and application domain (e.g., imperative, functional, logic languages and how well suited they are for certain application domains such as web programming, symbolic processing, data/numerical processing etc.).			SC.912.CS-CP.2.7	
20.0	Describe the processes, methods, and conventions for software development and maintenance. – The student will be able to:				
20.01	Describe a software development process that is used to solve problems at different software development stages.	MAFS.912.A-REI.1.1; 
MAFS.912.G-CO.4.12		SC.912.CS-CS.4.1	
20.02	Describe and demonstrate ethical and responsible use of modern communication media and devices.	MAFS.912.A-REI.1.1		SC.912.CS-PC.1.2	
20.03	Define alternative methods of program development (e.g., rapid prototyping, waterfall, spiral model, peer coding). 	MAFS.912.G-SRT.1.2			
20.04	List and explain the steps in the program development cycle.	MAFS.912.A-REI.1.1			
20.05	Describe different types of documentation used in the program development cycle (e.g., requirements document, program design documents, test plans).	MAFS.912.N-Q.1.1			
20.06	Describe different methods used to facilitate version control.	MAFS.912.A-REI.1.1; 
MAFS.912.G-SRT.1.2			
21.0	Explain the types, uses, and limitations of testing for ensuring quality control. – The student will be able to:				
21.01	Explain the uses and limits of testing in ensuring program quality.	MAFS.912.A-REI.1.1	SC.912.N.1.1		
21.02	Explain testing performed at different stages of the program development cycle (e.g., unit testing, system testing, user acceptance testing).	MAFS.912.A-REI.1.1; 
MAFS.912.A-CED.1.1			
21.03	Describe and identify types of programming errors.	MAFS.912.A-REI.1.1; 
MAFS.912.N-Q.1.1			
21.04	Analyze and manipulate data collected by a variety of data collection techniques.	MAFS.912.N-Q.1.1		SC.912.CS-CP.1.1	
21.05	Explain what tools are applied to provide automated testing environments.	MAFS.912.A-REI.1.1; 
MAFS.912.G-CO.4.12	SC.912.N.1.1	SC.912.CS-CS.1.14	
22.0	Create a program design document using common design tool. – The student will be able to:				
22.01	Describe different design methodologies and their uses (e.g., object-oriented design, structured design, rapid application development).	MAFS.912.A-REI.1.1	SC.912.N.1.1, 
SC.912.N.3.5		
22.02	Describe tools for developing a program design (e.g., Unified Modeling Language, flowcharts, design documents, pseudocode).	MAFS.912.A-REI.1.1	SC.912.N.1.1		
22.03	Explain the role of existing libraries and packages in facilitating programmer productivity.	MAFS.912.A-REI.1.1			
22.04	Participate and contribute to a design review of a program design developed using a common program design tool (e.g., UML, flowcharts, design documents, pseudocode).	MAFS.912.A-CED.1.1	SC.912.N.1.1,
SC.912.N.1.3,
SC.912.N.2.4,
SC.912.N.4.2		
22.05	Write a program design document using standard design methodology.	MAFS.912.A-CED.1.1			
22.06	Define input and output for a program module using standard design methodology.	MAFS.912.F-IF.1.1			
23.0	Solve problems using critical thinking skills, creativity and innovation. – The student will be able to:				
23.01	Employ critical thinking skills independently and in teams to solve problems and make decisions.	MAFS.912.G-CO.3.9	SC.912.N.1.1		
23.02	Employ critical thinking and interpersonal skills to resolve conflicts.	MAFS.912.G-CO.3.9	SC.912.N.1.3,
SC.912.N.4.1		
23.03	Identify and document workplace performance goals and monitor progress toward those goals. 	MAFS.912.N-Q.1.1			
23.04	Conduct technical research to gather information necessary for decision-making.	MAFS.912.S-IC.2.6;
MAFS.912.S-IC.1.1	SC.912.N.1.3,
SC.912.N.1.1.5		
23.05	Discuss digital tools or resources to use for a real-world task based on their efficiency and effectiveness, individually and collaboratively.			SC.912.CS-CS.3.1	
24.0	Use information technology tools. – The student will be able to:				
24.01	Use personal information management (PIM) applications to increase workplace efficiency.				
24.02	Employ technological tools to expedite workflow including word processing, databases, reports, spreadsheets, multimedia presentations, electronic calendar, contacts, email, and internet applications.	MAFS.912.G-CO.4.12			
24.03	Employ computer operations applications to access, create, manage, integrate, and store information.	MAFS.912.Z-CED.1.1			
24.04	Employ collaborative/groupware applications to facilitate group work.				
24.05	Use a development process in creating 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.1	
25.0	Describe the importance of security and privacy information sharing, ownership, licensure and copyright. – The student will be able to:			SC.912.CS-PC.4	
25.01	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.6	
25.02	Discuss the impact of government regulation on privacy and security.			SC.912.CS-PC.4.7	
25.03	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.1	
25.04	Explain how access to information may not include the right to distribute the information.			SC.912.CS-PC.4.2	
25.05	Describe differences between open source, freeware, and proprietary software licenses, and how they apply to different types of software.			SC.912.CS-PC.4.3	
25.06	Discuss security and privacy issues that relate to computer networks.			SC.912.CS-PC.4.4	
25.07	Identify computer-related laws and analyze their impact on digital privacy, security, intellectual property, network access, contracts, and harassment.			SC.912.CS-PC.4.5	

2018 – 2019
Florida Department of Education
Student Performance Standards

Course Title:	Procedural Programming
Course Number:	9007220
Course Credit:	1

Course Description:

This course continues the study of computer programming concepts with a focus on the creation of software applications employing procedural programming techniques.  After successful completion of Programming Foundations and Procedural Programming, students will have met Occupational Completion Point B, Computer Programmer Assistant, SOC Code 15-1131.

Abbreviations: 
FS-M/LA = Florida Standards for Math/Language Arts
NGSSS-Sci = Next Generation Sunshine State Standards for Science
FS-CS=Florida Standards for Computer Science

CTE Standards and Benchmarks	FS-M/LA	NGSSS-Sci	Computer Science	
26.0	Design a computer program to meet specific physical, operational, and interaction criteria. – The student will be able to:				
26.01	Choose appropriate data types depending on the needs of the program.	MAFS.912.N-Q.1.1			
26.02	Define appropriate user prompts for clarity and usability (e.g., user guidance for data ranges, data types).	MAFS.912.N-Q.1.2			
26.03	Design and develop program for efficiency (e.g., less memory usage, less inputs/outputs, faster processing).	MAFS.912.A-REI.1.1			
26.04	Compare techniques for analyzing massive data collections.	MAFS.912.N-Q.1.1		SC.912.CS-CS.2.4	
26.05	Identify the software environment required for a program to run (e.g., operating system required, mobile, Web-based, desktop, delivery method).	MAFS.912.N-Q.1.1			
26.06	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-CP.3.2	
26.07	Explain the role of an application programming interface (API) in the development of applications and the distinction between a programming language’s syntax and the API.			SC.912.CS-CP.2.5	
26.08	Identify the tools required to develop a program (e.g., editors, compilers, linkers, integrated development environments, APIs, libraries).				
26.09	Use an industrial-strength integrated development environment to implement a program.			SC.912.CS-CP.2.3	
27.0	Create and document a computer program that uses a variety of internal and control structures for manipulating varied data types. – The student will be able to:				
27.01	Use appropriate naming conventions to define program variables and methods.	MAFS.912.N-Q.1.1			
27.02	Use a program editor to write the source code for a program.	MAFS.912.A-REI.1.1			
27.03	Write programs that use selection structures.	MAFS.912.A-CED.1.1;
MAFS.912.A-CED.1.2			
27.04	Write programs that use repetition structures.	MAFS.912.A-CED.1.1;
MAFS.912.A-CED.1.2			
27.05	Write programs that use nested structures.	MAFS.912.A-CED.1.1;
MAFS.912.A-CED.1.2			
27.06	Use internal documentation (e.g., single-line and multi-line comments, program headers, module descriptions, meaningful variable and function/module names) to document a program according to accepted standards.				
27.07	Compile, run, test and debug programs.	MAFS.912.A-REI.1.1			
27.08	Write programs that use standard arithmetic operators with different numerical data types.	MAFS.912.N-Q.1.1; 
MAFS.912.A-CED.1.1;
MAFS.912.A-CED.1.2 
MAFS.912.A-REI.1.2,
MAFS.912.A-REI.2.3			
27.09	Write programs that use standard logic operators.	MAFS.912.A-CED.1.1;
MAFS.912.A-CED.1.2			
27.10	Write programs that use a variety of common data types.	MAFS.912.A-CED.1.1;
MAFS.912.A-CED.1.2 MAFS.912.N-Q.1.1,
MAFS.912.A-REI.1.2,
MAFS.912.A-REI.2.3			
27.11	Write programs that perform data conversion between standard data types.	MAFS.912.A-CED.1.1;
MAFS.912.A-CED.1.2			
27.12	Write programs that define, use, search, and sort arrays.	MAFS.912.A-CED.1.1;
MAFS.912.A-CED.1.2			
27.13	Write programs that use user-defined data types.	MAFS.912.A-CED.1.1;
MAFS.912.A-CED.1.2			
27.14	Demonstrate understanding and use of appropriate variable scope.	MAFS.912.A-REI.1.1			
27.15	Explain recursive programming structure.				
27.16	Use global and local scope appropriately in program implementation.			SC.912.CS-CP.2.2	
28.0	Create and document an interactive computer program that employs functions, subroutines, or methods to receive, validate, and process user input. – The student will be able to:				
28.01	Critically examine classical algorithms and implement an original algorithm.			SC.912.CS-CS.1.6	
28.02	Write programs that perform user input and output.	MAFS.912.A-CED.1.1;
MAFS.912.A-CED.1.2			
28.03	Write programs that validate user input (e.g., range checking, data formats, valid/invalid characters).	MAFS.912.A-CED.1.1;
MAFS.912.A-CED.1.2			
28.04	Write program modules such as functions, subroutines, or methods.	MAFS.912.A-CED.1.1;
MAFS.912.A-CED.1.2			
28.05	Write program modules that accept arguments.	MAFS.912.A-CED.1.1;
MAFS.912.A-CED.1.2			
28.06	Write program modules that return values.	MAFS.912.A-CED.1.1;
MAFS.912.A-CED.1.2			
28.07	Write program modules that validate arguments and return error codes.	MAFS.912.A-CED.1.1;
MAFS.912.A-CED.1.2			
28.08	Design and implement a simple simulation algorithm to analyze, represent and understand natural phenomena.	MAFS.912.A-CED.1.1;
MAFS.912.A-CED.1.2		SC.912.CS-CS.1.10	
28.09	Use APIs and libraries to facilitate programming solutions.	MAFS.912.A-CED.1.1;
MAFS.912.A-CED.1.2		SC.912.CS-CP.2.4	
28.10	Participate in a peer code review to verify program functionality, programming styles, program usability, and adherence to common programming standards.				
29.0	Effectively communicate and collaborate. – The student will be able to:				
29.01	Evaluate modes of communication and collaboration.			SC.912.CS-CC.1.1	
29.02	Select appropriate tools within a project environment to communicate with project team members.			SC.912.CS-CC.1.2	
29.03	Utilize project collaboration tools (such as version control systems and integrated development environments) while working on a collaborative software project.			SC.912.CS-CC.1.4	
29.04	Generate, evaluate, and prioritize questions that can be researched through digital resources and online tool.			SC.912.CS-CC.1.5	
29.05	Perform advanced searches to locate information and/or design a data-collection approach to gather original data.			SC.912.CS-CC.1.6	
29.06	Communicate and publish key ideas and details to a variety of audiences using digital tools and media-rich resources.			SC.912.CS-CC.1.7	
30.0	Demonstrate responsible use of technology and information. – The student will be able to:				
30.01	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).	MAFS.912.S-IC.2.6		SC.912.CS-PC.1.4	
30.02	Implement an encryption, digital signature, or authentication method.	MAFS.912.S-IC.2.6		SC.912.CS-PC.1.5	
30.03	Describe computer security vulnerabilities and methods of attack, and evaluate their social and economic impact on computer systems and people.	MAFS.912.S-IC.2.6;
MAFS.912.A-REI.1.1		SC.912.CS-PC.1.6	

2018 – 2019
Florida Department of Education
Student Performance Standards

Course Title:	Object-Oriented Programming Fundamentals
Course Number:	9007230
Course Credit:	1

Course Description:

This course continues the study of computer programming concepts with a focus on the creation of software applications employing object-oriented programming techniques.  After successful completion of Object-Oriented Programming Fundamentals, students will have met Occupational Completion Point C, Computer Programmer, SOC Code 15-1131.

Abbreviations: 
FS-M/LA = Florida Standards for Math/Language Arts
NGSSS-Sci = Next Generation Sunshine State Standards for Science
FS-CS=Florida Standards for Computer Science

CTE Standards and Benchmarks	FS-M/LA	NGSSS-Sci	Computer Science	
31.0	Explain key concepts that distinguish object-oriented programming from procedural programming. – The student will be able to:				
31.01	Demonstrate the understanding and use of classes, objects, attributes, and behaviors. 	MAFS.912.A-REI.1.1			
31.02	Demonstrate the understanding and use of inheritance.	MAFS.912.A-REI.1.1			
31.03	Demonstrate the understanding and use of data encapsulation.	MAFS.912.A-REI.1.1			
31.04	Demonstrate the understanding and use of polymorphism.	MAFS.912.A-REI.1.1			
31.05	Use predefined functions and parameters, classes, and methods to divide a complex problem into simpler parts by using the principle of abstraction to manage complexity (e.g., by using searching and sorting as abstractions).			SC.912.CS-CS.1.5	
32.0	Create a project plan for an object-oriented programming project that defines requirements, structural design, time estimates, and testing elements. – The student will be able to:				
32.01	Write a project plan for completion of a project that includes gathering program requirements, developing the program, and testing it.	MAFS.912.A-REI.1.1			
32.02	Write a program requirements document that identifies business purpose, functional requirements, system requirements, and other common components of a requirements document.	MAFS.912.A-REI.1.1			
32.03	Design an object-oriented program using standard design methodology.	MAFS.912.H-CED.1.1			
32.04	Work with other team members to develop a project plan for a program.	MAFS.912.A-REI.1.1			
32.05	Work with other team members to write a design document for a program with multiple functions and shared data.	MAFS.912.A-REI.1.1			
32.06	Participate in design meetings that review program design documents for conformance to program requirements.	MAFS.912.S.IC.2.6			
32.07	Estimate the time to develop a program or module.	MAFS.912.S.IC.2.6			
32.08	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.1.11	
33.0	Design, document, and create object-oriented computer programs. – The student will be able to:				
33.01	Compare and contrast recursive functions to other iterative methods.	MAFS.912.G-SRT.1.2			
33.02	Understand the implementation of character strings in the programming language.				
33.03	Write programs that perform string processing (e.g., manipulating, comparing strings, concatenation).	MAFS.912.A-REI.1.1			
33.04	Write programs that implements user-defined data types.	MAFS.912.A-CED.1.1; MAFS.912.A-CED.1.2			
33.05	Decompose a problem by defining new functions and classes.			SC.912.CS-CS.1.8	
33.06	Write object-oriented programs that implement inheritance.	MAFS.912.A-CED.1.1; MAFS.912.A-CED.1.2			
33.07	Write object-oriented programs that implement polymorphism.	MAFS.912.A-CED.1.1; MAFS.912.A-CED.1.2			
33.08	Develop class constructors.	MAFS.912.S-MD.1.3			
33.09	Write programs that define and use program constants.	MAFS.912.A-CED.1.1; MAFS.912.A-CED.1.2			
33.10	Write programs that perform error handling.	MAFS.912.A-CED.1.1; MAFS.912.A-CED.1.2			
33.11	Participate in program code review meetings to evaluate program code for validity, quality, performance, data integrity, and conformance to program design documents.	MAFS.912.S-IC.2.6			
33.12	Describe the concept of parallel processing as a strategy to solve large problems.	MAFS.912.A-CED.1.1; MAFS.912.A-CED.1.2		SC.912.CS-CS.1.3	
33.13	Demonstrate concurrency by separating processes into threads of execution and dividing data into parallel streams.	MAFS.912.A-CED.1.1; MAFS.912.A-CED.1.2		SC.912.CS-CS.1.4	
33.14	Update a program module to implement enhancements or corrections and demonstrate appropriate documentation (internal and external) related to version control. 	MAFS.912.A-REI.1.1			
33.15	Write programs that use complex data structures (e.g., stacks, queues, trees, linked list).	MAFS.912.A-CED.1.1; MAFS.912.A-CED.1.2			
33.16	Write programs that are event-driven.	MAFS.912.A-CED.1.1; MAFS.912.A-CED.1.2			
33.17	Write programs that perform file input and output (i.e., sequential and random access file input/output).	MAFS.912.A-CED.1.1; MAFS.912.A-CED.1.2			
33.18	Explain intractable problems and understand that problems exists that are computationally unsolvable (undecidable) (e.g.., classic intractable problems include Towers of Hanoi, TSP).	MAFS.912.A-REI.1.1		SC.912.CS-CS.1.1	
33.19	Explain the value of heuristic algorithms to approximate solutions for intractable problems (e.g., a heuristic solution to TSP).			SC.912.CS-CS.1.2	
34.0	Design a unit test plan for an object-oriented computer program, test and debug the program, and report the results. – The student will be able to:				
34.01	Develop a test plan for an object-oriented program.	MAFS.912.A-CED.1.1; MAFS.912.A-CED.1.2	SC.912.N.1.1		
34.02	Write test plans for event-driven programs.	MAFS.912.A-CED.1.1; MAFS.912.A-CED.1.2	SC.912.N.1.1		
34.03	Write test plans for programs that perform file input and output.	MAFS.912.A-CED.1.1; MAFS.912.A-CED.1.2	SC.912.N.1.1		
34.04	Perform test and debug activities on object-oriented programs, including those written by someone else.	MAFS.912.A-REI.1.1			
34.05	Perform test and debug activities on an event-driven program.	MAFS.912.A-REI.1.1			
34.06	Perform test and debug activities on programs that perform file input and output and verify the correctness of output files.	MAFS.912.A-REI.1.1			
34.07	Document the findings of testing in a test report.	MAFS.912.S-CP.1.4	SC.912.N.1.1		
35.0	Understand human interactions in intelligence. – The student will be able to:				
35.01	Describe the unique features of computers embedded in mobile devices and vehicles.			SC.912.CS-CS.6.1	
35.02	Describe the common physical and cognitive challenges faced by users when learning to use software and hardware.			SC.912.CS-CS.6.2	
35.03	Describe the process of designing software to support specialized forms of human-computer interaction.			SC.912.CS-CS.6.3	
35.04	Explain the notion of intelligent behavior through computer modeling and robotics.			SC.912.CS-CS.6.4	
35.05	Describe common measurements of machine intelligence (e.g., Turing test).			SC.912.CS-CS.6.5	
35.06	Describe a few of the major branches of artificial intelligence (e.g., expert systems, natural language processing, machine perception, machine learning).			SC.912.CS-CS.6.6	
35.07	Describe major applications of artificial intelligence and robotics, including, but not limited to, the medical, space, and automotive fields.			SC.912.CS-CS.6.7	

2018 – 2019
Florida Department of Education
Student Performance Standards

Course Title:		Web Programming
Course Number:	9007510
Course Credit:	1

Course Description:

This course continues the study of computer programming concepts specific to the Internet and Internet-based software applications.  

Abbreviations: 
FS-M/LA = Florida State Standards for Math/Language Arts
NGSSS-Sci = Next Generation Sunshine State Standards for Science

CTE Standards and Benchmarks	FS-M/LA	NGSSS-Sci	
36.0	Demonstrate proficiency using HTML and XHTML to create web content. — The student will be able to:			
36.01	Use storyboarding techniques for designing a Web site (e.g., linear, hierarchical).	MAFS.912.N-Q.1.1		
36.02	Identify elements of a Web page.	MAFS.912.N-Q.1.1		
36.03	Create Web pages using HTML and XHTML tags that create basic elements (e.g., links, lists, formatted text, tables).	MAFS.912.A-CED.1.1		
36.04	Create Web pages that utilize tables to achieve complex layout.	MAFS.912.N-Q.1.1, MAFS.912.A-CED.1.1		
36.05	Add graphic content to Web pages.	MAFS.912.F-IF.2.4		
36.06	Create Web pages that utilize client-side image maps.	MAFS.912.A-CED.1.1		
36.07	Develop, integrate, and apply the use of forms in Web site design.	MAFS.912.A-CED.1.1; MAFS.912.A-REI.1.1		
36.08	Optimize Web content for desirable search engine placement.			
36.09	Demonstrate an understanding of browser compatibility issues by designing pages that comply with the current Web Content Accessibility Guidelines issued by the World Wide Web Consortium (W3C).	MAFS.912.A-REI.1.1		
36.10	Demonstrate an understanding of Web accessibility issues by developing pages that meet Bobby accessibility checker criteria.	MAFS.912.A-REI.1.1		
36.11	Explain basic XML syntax and how XHTML conforms to the XML standard.	MAFS.912.A-REI.1.1		
36.12	Use a WYSIWYG editor to develop and manage a Web site.			
36.13	Use markup validation tools to test HTML and XHTML documents for well-formed elements and make all corrections necessary to ensure compliance with W3C standards.	MAFS.912.G-CO.4.12		
36.14	Analyze and modify HTML and XHTML source code developed by others.	MAFS.912.S-MD.2.7		
37.0	Demonstrate proficiency using cascading style sheets (CSS) to format web pages. – The student will be able to:			
37.01	Explain the advantages and disadvantages of using Cascading Style Sheets (CSS) to format Web pages.	MAFS.912.G-SRT.1.2; MAFS.912.A-REI.1.1		
37.02	Describe the difference between linked, embedded, imported and inline styles and explain how styles are inherited.	MAFS.912.G-SRT.1.2; MAFS.912.A-REI.1.1		
37.03	Explain the difference between classes, id, and span elements.	MAFS.912.G-SRT.1.2; MAFS.912.A-REI.1.1		
37.04	Utilize CSS properties within Web pages to control page layout, fonts, colors, backgrounds, and other presentation effects.			
37.05	Demonstrate understanding of the Box Model.	MAFS.912.A-REI.1.1		
37.06	Demonstrate proficiency in creating 1 to 3 column layouts.	MAFS.912.A-REI.1.1		
37.07	Create navigation system through CSS.	MAFS.912.A-CED.1.1		
38.0	Demonstrate proficiency using basic client-side scripting to control the content and the behavior of HTML and XHTML documents. – The student will be able to:			
38.01	Describe the difference between server-side and client-side processing.	MAFS.912.G-SRT.1.2; MAFS.912.A-REI.1.1 		
38.02	Describe the term “scripting language” and explain how scripting languages differ from compiled languages.	MAFS.912.G-SRT.1.2; MAFS.912.A-REI.1.1		
38.03	Create web pages that employ client-side scripting to control content and display.	MAFS.912.A-CED.1.1		

2018 – 2019
Florida Department of Education
Student Performance Standards

Course Title:	JavaScript Programming
Course Number:	9007520
Course Credit:	1

Course Description:

This course continues the study of computer programming concepts specific to client-side JavaScript.  

Abbreviations: 
FS-M/LA = Florida State Standards for Math/Language Arts
NGSSS-Sci = Next Generation Sunshine State Standards for Science

CTE Standards and Benchmarks	FS-M/LA	NGSSS-Sci	
39.0	Demonstrate an understanding of JavaScript programming fundamentals. – The student will be able to:			
39.01	Describe server side versus client side applications including interpreters.	MAFS.912.A-REI.1.1		
39.02	Describe the purpose and use of an interpreter in relation to JavaScript.	MAFS.912.A-REI.1.1		
39.03	Describe differences in different types of JavaScript implementations (i.e., Jscript, ECMA).	MAFS.912.A-REI.1.1		
39.04	Declare and initialize variables.	MAFS.912.A-CED.1.2		
39.05	Assign new values to variables.	MAFS.912.A-CED.1.2		
39.06	Create and use constant variables.	MAFS.912.A-CED.1.2		
39.07	Describe the difference of programming languages versus scripting languages.	MAFS.912.A-REI.1.1		
39.08	Describe object based nature and platform independence.	MAFS.912.A-REI.1.1		
39.09	Describe and demonstrate inline scripting.	MAFS.912.A-REI.1.1		
40.0	Demonstrate proficiency in assigning and handling variables in JavaScript programs and functions. – The student will be able to:			
40.01	Describe how variables are used in programs.	MAFS.912.A-REI.1.1		
40.02	Identify which data type should be used for a given value.	MAFS.912.N-Q.1.1		
40.03	Identify the syntax for using variables.	MAFS.912.N-Q.1.1		
40.04	Declare and initialize variables.	MAFS.912.A-CED.1.2		
40.05	Assign new values to variables.	MAFS.912.A-CED.1.2		
40.06	Create and use constant variables.	MAFS.912.A-CED.1.2		
40.07	Describe and demonstrate the use of properties. 	MAFS.912.A-REI.1.1		
40.08	Describe identifiers and identify valid and invalid identifiers.	MAFS.912.A-REI.1.1; MAFS.912.N-Q.1.1		
40.09	Describe and identify reserved words, delimiters, literals, and comments.	MAFS.912.A-REI.1.1; MAFS.912.N-Q.1.1		
41.0	Use event handlers in JavaScript programs and functions. – The student will be able to:			
41.01	Describe the event model and five events (form, image, map, link, and window).	MAFS.912.A-REI.1.1		
41.02	Demonstrate and use the window events load, focus, blur, and unload.	MAFS.912.A-REI.1.1		
41.03	Demonstrate and use the form events change, reset, and submit.	MAFS.912.A-REI.1.1		
41.04	Demonstrate and use the text events cut, paste, select, and copy.	MAFS.912.A-REI.1.1		
41.05	Demonstrate and use the mouse events mousemove, mousedown, click, mousewheel,mouseover, mouseout  and mouseover.	MAFS.912.A-REI.1.1		
41.06	Demonstrate and use the keyboard events keyup, keydown and keypress.	MAFS.912.A-REI.1.1		
41.07	Demonstrate using the appropriate event handlers with their associated events. 	MAFS.912.A-REI.1.1		
42.0	Recognize and assign data types appropriate to their use. – The student will be able to:			
42.01	Describe the data type categories.	MAFS.912.A-REI.1.1		
42.02	Give examples of var, primitives, null, and undefined data types.	MAFS.912.N-Q.1.1		
42.03	Demonstrate the use of var in relation to other datatypes.	MAFS.912.A-REI.1.1; MAFS.912.A-CED.1.2		
43.0	Demonstrate proficiency is using appropriate operators to achieve a planned output. – The student will be able to:	MAFS.912.F-BF.1.2		
43.01	Construct statements using arithmetic operators.	MAFS.912.A-APR.1.1; MAFS.912.N.CN.3.7		
43.02	Construct statements using relational operators.	MAFS.912.A-CED.1.1; MAFS.912.A-CED.1.3		
43.03	Construct and use statements using logical operators.	MAFS.912.S-CP.1.4		
43.04	Construct and use statements using string concatenation, and strict comparison.	MAFS.912.S-CP.1.1		
43.05	Construct and use statements using assignment operators. 	MAFS.912.A-CED.1.4		
43.06	Construct and execute statements using operator precedence.	MAFS.912.A-APR.4.7		
44.0	Write executable statements. – The student will be able to:			
44.01	Construct variable assignment statements.	MAFS.912.A-CED.1.2		
44.02	Construct statements using built-in functions.	MAFS.912.F-BF.1.1		
44.03	Describe when implicit data type conversions take place.	MAFS.912.A-REI.1.1		
44.04	List the drawbacks of implicit data type conversions.	MAFS.912.A-REI.1.1		
44.05	Construct statements using functions to explicitly convert data types.	MAFS.912.F-BF.1.1		
45.0	Demonstrate an understanding of variable scope. – The student will be able to:			
45.01	Understand the scope and visibility of variables.	MAFS.912.A-CED.1.2		
45.02	Write programs using local variables.	MAFS.912.A-REI.1.1		
45.03	Describe the scope of a variable.	MAFS.912.A-REI.1.1		
46.0	Use good programming practices. – The student will be able to:			
46.01	List examples of good programming practices.	MAFS.912.A-REI.1.1		
46.02	Insert comments into code.	MAFS.912.A-REI.1.1		
46.03	Demonstrate the use of <no script> tag.	MAFS.912.A-REI.1.1		
46.04	Follow formatting guidelines when writing code.	MAFS.912.N-Q.1.1		
46.05	Understand the different types of errors produced by programs.	MAFS.912.A-REI.1.1		
47.0	Demonstrate use of the Document Object Module (DOM. – The student will be able to:			
47.01	Create and use user defined objects.	MAFS.912.A-CED.1.2		
47.02	Create user defined objects with properties and methods. 	MAFS.912.A-CED.1.2		
47.03	Describe and Use the Array Object including its parameters, properties, and methods (chop, join, pop, push, splice, split).	MAFS.912.A-REI.1.1		
47.04	Describe and Use the Date Object including its multiple constructors, properties, and methods (getDay, getMonth, getYear, getMinutes, getHous, getTime).	MAFS.912.A-REI.1.1		
47.05	Describe and use the Window Object including \properties, and methods.	MAFS.912.A-REI.1.1		
47.06	Describe and use the Image Object including its properties, and methods.	MAFS.912.A-REI.1.1		
47.07	Describe and use the History Object including its properties, and methods.	MAFS.912.A-REI.1.1		
47.08	Describe and use the RegEx Object for basic and complex regular expressions.	MAFS.912.A-REI.1.1		
47.09	Describe and use the String Object including its properties, and methods.	MAFS.912.A-REI.1.1		
47.10	Describe and use the Math Object including its properties, and methods.	MAFS.912.A-REI.1.1		
48.0	Use conditional control statements in JavaScript. – The student will be able to:			
48.01	Construct and use an if statement.	MAFS.912.S-CP.1.1		
48.02	Construct and use a switch statement.	MAFS.912.S-CP.1.1		
48.03	Construct and use a while, do while, and for loop.	MAFS.912.S-CP.1.1		
48.04	Construct and use a conditional operator.	MAFS.912.S-CP.1.1		
49.0	Use iterative control statements in JavaScript. – The student will be able to:			
49.01	Describe the types of loop statements and their uses.	MAFS.912.A-REI.1.1		
49.02	Construct and use the while and do while loop.	MAFS.912.F-BF.1.2		
49.03	Construct and use the for loop.	MAFS.912.F-BF.1.2		
49.04	Describe when a while loop is used.	MAFS.912.A-REI.1.1		
49.05	Describe when a for loop is used.	MAFS.912.A-REI.1.1		
50.0	Use nested loop iterative control statements in JavaScript. – The student will be able to:			
41.01	Construct and execute a program using nested loops.	MAFS.912.F-BF.1.2		
41.02	Construct and execute a loop using break and continue.	MAFS.912.F-BF.1.2		
41.03	Evaluate a nested loop construct and sentinel value.	MAFS.912.S-IC.2.6		
51.0	Use JavaScript to produce input and output for programs. – The student will be able to:			
51.01	Describe and use the prompt() and confirm() to input data into programs.	MAFS.912.A-REI.1.1		
51.02	Describe and demonstrate the use of the alert()  to produce output to the console.	MAFS.912.A-REI.1.1		
51.03	Describe and demonstrate how to input data using JavaScript Events. 	MAFS.912.A-REI.1.1		
51.04	Describe and demonstrate how to output using the document.write().	MAFS.912.A-REI.1.1		
51.05	Explain the difference of prompt() and confirm() functions.	MAFS.912.A-REI.1.1		
51.06	Create and use escape sequences.			
52.0	Demonstrate proficiency in using Form Objects in JavaScript programs and functions. – The student will be able to:			
52.01	Use Form objects to validate input.			
52.02	Access the value of the form object through its associated method.	MAFS.912.N-Q.1.1		
52.03	Describe and use button, checkbox, textarea, select, radio, hidden, and text objects.	MAFS.912.A-REI.1.1		
52.04	Access and modify values and attributes  at runtime using getElementbyId, getElementsbyName, getElementsbyTagName, and inner HTML.  			
53.0	Demonstrate proficiency in using methods in JavaScript programs and functions. – The student will be able to:			
53.01	Differentiate between anonymous methods and methods.	MAFS.912.N-Q.1.1		
53.02	Identify the benefits of using methods.	MAFS.912.N-Q.1.1		
53.03	Describe and use inner method.	MAFS.912.A-REI.1.1		
53.04	Create a method.	MAFS.912.F-BF.1.2		
53.05	Describe how a method is invoked.	MAFS.912.A-REI.1.1		
54.0	Demonstrate proficiency in using parameters in JavaScript programs and functions. – The student will be able to:			
54.01	Describe how parameters are passed into functions.	MAFS.912.A-REI.1.1		
54.02	Define a parameter.	MAFS.912.A-REI.1.1		
54.03	Create a method using a parameter.	MAFS.912.F-BF.1.2		
54.04	Invoke a method that has parameters.	MAFS.912.F-BF.1.2		
54.05	Distinguish between formal and actual parameters.	MAFS.912.A-REI.1.1		
55.0	Utilize debugging techniques in programs. – The student will be able to:			
55.01	Use the display property to enable/disable code blocks.			
55.02	Use document.write()  to log program execution.	MAFS.912.A-REI.1.1		
55.03	Test program in different browsers and mobile devices for compatibility errors.	MAFS.912.S-IC.2.6		
55.04	Use comments as a flow control while debugging.	MAFS.912.N-Q.1.1		
56.0	Recognize security risks in programs. – The student will be able to:			
56.01	Describe the security risk of cookies and browsers.	MAFS.912.A-REI.1.1		
56.02	Identify security responsibilities of browsers and operating system.	MAFS.912.N-Q.1.1		
56.03	Describe security systems such as frame to frame URL changing.	MAFS.912.A-REI.1.1		
56.04	Describe the use of signed scripts.	MAFS.912.A-REI.1.1		
56.05	Create and use cookies in a secure manner.	MAFS.912.A-REI.1.1		
57.0	Use plug-ins and libraries. – The student will be able to:			
57.01	Use external libraries in the program.	MAFS.912.N-Q.1.1		
57.02	Describe and contrast the following industry libraries JQuerry, Dojo, LightBox, and Moo Tools, PhoneGap.	MAFS.912.A-REI.1.1		
57.03	Describe different types of libraries full, effects, tools, graphing, math, cryptography, and AJAX.	MAFS.912.A-REI.1.1		
57.04	Identify how load and reference external and user made scripts.	MAFS.912.N-Q.1.1		
57.05	Describe AJAX elements and procedures.	MAFS.912.A-REI.1.1		
57.06	Describe XML.	MAFS.912.A-REI.1.1		
57.07	Demonstrate the use of XMLHttpRequest to retrieve data.	MAFS.912.A-REI.1.1		
58.0	Demonstrate proficiency in programming for mobile delivery technology (e.g., iPhone/Android). – The student will be able to:			
58.01	Respond to multi-touch and gesture events.	MAFS.912.A-REI.1.1		
58.02	Describe and demonstrate the use of webkit CSS.	MAFS.912.A-REI.1.1		
58.03	Use the meta tag to enable native look and feel.			
58.04	Create a splash screen.			
58.05	Describe and demonstrate app caching.	MAFS.912.A-REI.1.1		
58.06	Describe and demonstrate use of JQuery for mobile development.	MAFS.912.A-REI.1.1		
58.07	Describe how to publish the app using XCode.	MAFS.912.A-REI.1.1		

2018 – 2019
Florida Department of Education
Student Performance Standards

Course Title:	PHP Programming
Course Number:	9007530
Course Credit:	1

Course Description:

This course continues the study of computer programming concepts specific to PHP programming.  

Abbreviations: 
FS-M/LA = Florida State Standards for Math/Language Arts
NGSSS-Sci = Next Generation Sunshine State Standards for Science

CTE Standards and Benchmarks	FS-M/LA	NGSSS-Sci	
59.0	Demonstrate an understanding of Personal Home Page (PHP) programming language. – The student will be able to:			
59.01	Describe the evolution of PHP as a programming language.	MAFS.912.A-REI.1.1		
59.02	Discuss the strengths and limitations of PHP.			
60.0	Demonstrate proficiency in PHP configuration. – The student will be able to:			
60.01	Set up a PHP host (wamp, mamp, online).	MAFS.912.A-CED.1.1		
60.02	Configure PHP for File Transfer Protocol (FTP) access.	MAFS.912.N-Q.1.1		
60.03	Configure the config.php file. 	MAFS.912.N-Q.1.1		
61.0	Demonstrate an understanding of PHP language basics. – The student will be able to:			
61.01	Describe how variables are declared, referenced, and passed.	MAFS.912.A-REI.1.1		
61.02	Describe the control structures inherent with PHP programming.	MAFS.912.A-REI.1.1		
61.03	Describe the three types of arrays used in PHP.	MAFS.912.A-REI.1.1		
61.04	Describe how functions in PHP are created, called, and controlled.	MAFS.912.A-REI.1.1		
62.0	Demonstrate proficiency in the use of server processes. – The student will be able to:			
62.01	Describe a session and explain its importance and use in web programming.	MAFS.912.A-REI.1.1		
62.02	Describe the server processes associated with forms handling.	MAFS.912.A-REI.1.1		
62.03	Compare and contrast the use of GET and POST.	MAFS.912.G-SRT.1.2		
62.04	Describe cookies and explain their use, population, control, and risks.	MAFS.912.A-REI.1.1		
62.05	Describe HTTP Headers and their role in web development.	MAFS.912.A-REI.1.1		
62.06	Describe HTTP Authentication.	MAFS.912.A-REI.1.1		
63.0	Demonstrate an understanding of object-oriented programming in PHP. – The student will be able to:			
63.01	Create classes using PHP.	MAFS.912.A-CED.1.1		
63.02	Describe inheritance and its role in PHP programming.	MAFS.912.A-REI.1.1		
63.03	Write PHP code to handle exceptions.	MAFS.912.A-REI.1.1		
63.04	Write PHP code to accommodate different interfaces.	MAFS.912.A-REI.1.1		
64.0	Demonstrate proficiency in writing PHP code to handle file input/output (I/O) operations. – The student will be able to:			
64.01	Write PHP code to perform open, read, and write operations on files.	MAFS.912.A-REI.1.1		
64.02	Write PHP code to initiate file system functions.	MAFS.912.A-REI.1.1		
64.03	Write PHP code to handle streams.	MAFS.912.A-REI.1.1		
65.0	Demonstrate proficiency in creating, populating, and using arrays in PHP. – The student will be able to:			
65.01	Create, populate and write code to extract information from a numeric array in PHP.	MAFS.912.A-CED.1.1		
65.02	Create, populate and write code to extract information from an associative array in PHP.	MAFS.912.A-CED.1.1		
65.03	Create, populate and write code to extract information from a multidimensional array in PHP.	MAFS.912.A-CED.1.1		
66.0	Demonstrate proficiency handling strings in PHP. – The student will be able to:			
66.01	Write PHP code to retrieve or extract one or more characters from a string.	MAFS.912.A-REI.1.1		
66.02	Write PHP code to convert a string from data type to another.	MAFS.912.A-REI.1.1		
66.03	Write PHP code to manipulate the display characteristics of string data.	MAFS.912.A-REI.1.1		
66.04	Write PHP code that uses string date to control program flow.	MAFS.912.A-REI.1.1		
66.05	Write PHP code to join array elements with a string.	MAFS.912.A-REI.1.1		
67.0	Demonstrate proficiency in using PHP to access databases via Open Database Connectivity (ODBC). – The student will be able to:			
67.01	Write PHP code to create an ODBC connection and retrieve information from a database using the appropriate Structured Query Language (SQL) statement.	MAFS.912.A-REI.1.1		
67.02	Describe a prepared statement and discuss its primary advantages (e.g., code efficiency, SQL Injection prevention).	MAFS.912.A-REI.1.1		
67.03	Create a prepared statement to perform specific SQL actions.	MAFS.912.A-CED.1.1		
67.04	Describe a PHP Data Object (PDO) transaction and explain its primary advantages.	MAFS.912.A-REI.1.1		
67.05	Create a prepared statement and associated result set using PDOStatement.	MAFS.912.A-CED.1.1		
68.0	Demonstrate proficiency in applying best practices for ensuring creation of a secure program. – The student will be able to:			
68.01	Describe an SQL Injection, its consequences, and ways in which it may be prevented via programming.	MAFS.912.A-REI.1.1		
68.02	Describe the Remote Code Injection vulnerability in PHP and ways in which it may be prevented.	MAFS.912.A-REI.1.1		
68.03	Describe the risk of session hijacking in PHP and ways to program around it.	MAFS.912.A-REI.1.1		
68.04	Describe the risks associated with uploading files in PHP and ways in which risks might be mitigated.	MAFS.912.A-REI.1.1		
68.05	Describe Secure Sockets Layer (SSL) and usage issues related to PHP.	MAFS.912.A-REI.1.1		
69.0	Demonstrate an understanding of key technologies, protocols, and architectures associated with web development and programming. – The student will be able to:			
69.01	SimpleXML functions.			
69.02	Extensible Markup Language (XML) Extension.			
69.03	XML Path Language (Xpath).			
69.04	Web Services. 			
69.05	Simple Object Access Protocol (SOAP).			
69.06	Representational State Transfer (REST).			
69.07	JavaScript Object Notation (JSON).			
69.08	Asynchronous JavaScript and XML (AJAX).			

Additional Information

Laboratory Activities

Laboratory investigations that include scientific inquiry, research, measurement, problem solving, emerging technologies, tools and equipment, as well as, experimental, quality, and safety procedures are an integral part of this career and technical program/course. Laboratory investigations benefit all students by developing an understanding of the complexity and ambiguity of empirical work, as well as the skills required to manage, operate, calibrate and troubleshoot equipment/tools used to make observations. Students understand measurement error; and have the skills to aggregate, interpret, and present the resulting data. Equipment and supplies should be provided to enhance hands-on experiences for students.

Special Notes

The occupational standards and benchmarks outlined in this secondary program correlate to the standards and benchmarks of the postsecondary program with the same Classification of Instructional Programs (CIP) number.

MyCareerShines is an interactive resource to assist students in identifying their ideal career and to enhance preparation for employment. Teachers are encouraged to integrate this resource into the program curriculum to meet the employability goals for each student.  Access MyCareerShines by visiting: www.mycareershines.org.

Career and Technical Student Organization (CTSO)

Future Business Leaders of America (FBLA) and Business Professionals of America (BPA) are the intercurricular career and technical student organizations providing leadership training and reinforcing specific career and technical skills for secondary students. Career and Technical Student Organizations provide activities for students as an integral part of the instruction offered.  

Cooperative Training – OJT

On-the-job training is appropriate but not required for this program. Whenever offered, the rules, guidelines, and requirements specified in the OJT framework apply. 

Accommodations

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 or what the student is expected to learn, e.g., modifying the curriculum of a secondary career and technical education course. Note: postsecondary curriculum and regulated secondary programs cannot be modified.

Some secondary students with disabilities (ESE) may need additional time (i.e., longer than the regular school year), to master the student performance standards associated with a regular Occupational Completion Point (OCP) or a Modified Occupational Completion Point (MOCP). If needed, a student may enroll in the same career and technical course more than once. Documentation should be included in the IEP that clearly indicates that it is anticipated that the student may need an additional year to complete an OCP/MOCP. The student should work on different competencies and new applications of competencies each year toward completion of the OCP/MOCP. After achieving the competencies identified for the year, the student earns credit for the course. It is important to ensure that credits earned by students are reported accurately. The district’s information system must be designed to accept multiple credits for the same course number for eligible students with disabilities.

Additional Resources

For additional information regarding articulation agreements, Bright Futures Scholarships, Fine Arts/Practical Arts Credit and Equivalent Mathematics and Equally Rigorous Science Courses please refer to:
http://www.fldoe.org/academics/career-adult-edu/career-tech-edu/program-resources.stml