Please enable JavaScript to use CodeHS

Standards Framework

for Tennessee Coding II


Standards in this Framework

Standard Description
C10H15.1 Evaluate at least two software development environments (SDEs) that are tailored to different programming languages on the basis of their suitability for a range of programming tasks, ease of use, and how ubiquitous they are within the IT community. Document in an oral presentation the similarities and differences between the two, and the features that lend themselves to the chosen programming languages. For example, students assigned to code a basic database interface can compare the benefits and features of a freeware SDE such as JDeveloper and a commercial SDE like Microsoft Visual Studio.
C10H15.2 Investigate the typical process around creating new software within a software development environment. Describe and furnish examples of the steps taken within the SDE to guarantee reliable output, from prototyping and authoring to deployment and debugging.
C10H15.3 Administer the process of creating new software within a software development environment to manage the prototyping, authoring, revising, compiling, testing, deploying, and debugging of student-developed software. For example, for an object-oriented payroll program assignment (retrieving file data to produce a run of paychecks and paystubs for a small business), perform and document the steps taken within the SDE to ensure the reliable and accurate output of paychecks.
C10H15.4 Synthesize information from a range of sources (including original tests and simulations) to critique the features of different software development life cycles (agile, iterative, and sequential types). Using domain-specific terminology, explain to a technical audience the distinguishing features of each that make one more appropriate for certain types of applications.
C10H15.5 For a selected assignment or project involving the development of original software, choose and defend a strategy to follow for the program’s development life cycle. At the completion of the assignment, offer recommendations for other environments and alternative strategies that could improve the development process
C10H15.6 Research common and best-practice techniques in programming analysis, design, and implementation. Drawing on model practices used by businesses and industry, employ analysis, design, and implementation techniques to satisfy a programming need, using an appropriate software lifecycle model.
C10H15.7 Employ a requirement management tool during a program’s development life cycle, documenting the evolving versions, storage attributes, system elements, status tracking, and access permissions afforded by the tool, as well as the successful attainment of the project vision.
C10H15.8 For a given programming assignment, choose and defend a programming language with regard to the language’s capabilities and suitability to task, availability, portability, maintainability, and cost.
C10H15.9 For the assignment outlined in standard 8, identify the method of data processing most appropriate for the task (e.g., batch, interactive, or event-driven). For example, a weekly payroll application would handle its data differently (i.e., batch processing) than a web-based search engine (i.e., interactive processing), and still differently than a microprocessor control program for a washing machine (i.e., event driven).
C10H15.10 Define the specifications of the data management plan, including variables (naming, scope, and types), validation measures (to protect the data from corruption), and data handling (storing, input/output, and back-up). For example, programs handling historical temperature data would be best suited to floating point values stored in multidimensional arrays, written to permanent storage, and displayed with limited precision.
C10H15.11 For a selected programming assignment involving an object-oriented language, design and define the classes, objects, properties, methods, and inheritance structures prior to the start of the development cycle. Revise the plan (modifications, additions, and subtractions) as needed throughout the development cycle.
C10H15.12 For selected programming assignments, create, edit, and improve documentation for technical support intended for fellow programmers, including within the program code itself as well as within supplemental documents. For example, for a lawn sprinkler system microcontroller, the technical documentation would define the variables, functions and subroutines, and the critical events.
C10H15.13 For selected programming assignments, create, edit, and improve end-user documentation. End-user documentation would include how to interact with the user interface, the capabilities and limitations of the system, and the required conditions for successful operation.
C10H15.14 Incorporate structured, object-oriented, and event-driven programming techniques that employ sequence, selection, and/or repetition (loops) to solve programming projects.
C10H15.15 For each programming task, consider and defend the choice of various programming approaches (such as data-driven or event-driven, top-down or bottom-up), citing examples from the syntax illustrating the chosen approach.
C10H15.16 Design and develop an app for a mobile computing device, using an online programming interface, such as AppMakr, BuzzTouch, Appsbar, PhoneGap, or AppYet.
C10H15.17 During the development, testing, and deployment of a new program, implement checks for data and procedure accuracy, correctness, currency, and relevance, making and documenting revisions where justified.
C10H15.18 Analyze the code written by another programmer to create a flowchart, suggesting points of confusion or generality in the program that could become problematic in future revisions. Cite specific examples in the code to support recommendations.
C10H15.19 Conduct quality testing of program code, striving for satisfactory results at four levels or perspectives: a) Unit (component/module level verifications) b) Integration (verifying the interfaces between components, adding one at a time) c) System (verifying that the whole package meets the requirements and specifications without corrupting other systems) d) Acceptance (customer satisfaction)
C10H15.20 Design, manage, and develop a course-long programming project pre-approved by the instructor. The project will embody a variety of strategies and resources taught in this course, and require periodic reviews, status reports, and final project presentation. Use a software development environment to manage, document, test, deploy, and maintain the resources and assets of the finished project.