Students will continue to demonstrate sound techniques for designing, developing, documenting, and debugging well-structured programs using software-engineering principles. Students will illustrate fundamental programming aspects through the C++ programming language. Students will build on the programming 1 skills of successfully implement basic programming logic including declaring variables, arithmetic, decisions (algorithms), iterative loops, and learn how to solve problems implementing broader programming concepts including:functions (abstractions), lists (arrays), recursion, and searching and sorting.
Connecting Computing
Identify the impacts of computing and explain connections between computing concepts.
Creating Computational Artifacts
Design and develop computational artifacts and apply computing techniques to creatively solve problems.
Abstracting
Identify abstractions and use them to develop models and simulations of natural and artificial phenomena. Explain how abstractions are used and help to manage complexity.
Analyzing Problems and Artifacts
Design and produce solutions, models, and artifacts and evaluate and analyze computational work.
Collaborating
Collaborate effectively with other students on the creation and analysis of computational artifacts to address complex and open-ended problems.
Essential Learning Goals
Computational Thinking (15%)
Students will develop problem-solving and critical thinking skills and use these skills to solve complex computing problems.
Programming Skills (70%)
Students will demonstrate sound techniques for designing, developing, and testing well-structured programs.
Communication (10%)
Students will create a plan for what a program will do using the Input-Process-Output model and use detailed comments in their code.
Content (5%)
Students will apply correct content understanding to all aspects of their work.
Major Assessments and Success Criteria
The fundamental purpose of this course is to continue the introduction to computer programming course. Students will become familiar with and use the C++ programming environment, be expected to design and document their code so it is easy to read, continue to write algorithms that accurately execute the desired computations or actions, develop a familiarity with abstraction and creating reusable code, evaluate their work and the work of their peers including testing and debugging. Students will implement and use lists (arrays) including sorting and searching the arrays. Students will engage in formative practices and end of unit performance tasks employing the essential learning goals listed above.