Standards in this Framework
|Plan and develop programs that will provide solutions to a variety of users using a software life cycle process.
|Use version control systems, integrated development environments (IDEs), and collaborative tools and practices (e.g., code documentation) in a group software project.
|Use debugging tools to identify and fix errors in a program.
|Decompose problems into smaller components through systematic analysis, using constructs such as procedures, modules, and/or objects.
|Develop and use a series of test cases to verify that a program performs according to its design specifications.
|Evaluate the trade-offs in how data elements are organized and where data is stored.
|Justify the selection of specific control structures when tradeoffs involve implementation, readability, and program performance, and explain the benefits and drawbacks of choices made.
|Evaluate key qualities of a program through a process such as a code review (e.g., qualities could include correctness, usability, readability, efficiency, portability, and scalability).
|Critically examine and trace classic algorithms. Use and adapt classic algorithms to solve computational problems (e.g., selection sort, insertion sort, binary search, linear search).
|Evaluate algorithms (e.g., sorting, searching) in terms of their efficiency, correctness, and clarity.
|Use lists to simplify solutions, generalizing computational problems instead of repeatedly using simple variables.
|Construct solutions to problems using student-created components, such as procedures, modules, and/or objects.
|Explain security issues that might lead to compromised computer programs.
|Compare and contrast simple data structures and their uses (e.g., lists, stacks, queues, arrays, dynamic arrays, objects).
|Trace the execution of recursion, illustrating output and changes in values of named variables.