Simply Java Programming: An Application Driven, Tutorial st Approach, 1 Edition 2004 Georgia Competency-Based Curriculum Frameworks, Career & Technical Education, Information Technology, Programming and Systems Management (Grades 9-12) Georgia Competency-Based Curriculum Frameworks, Career & Technical Education, Information Technology, Programming and Systems Management, Course 11.41800 PROGRAMMING CONCEPTS 1. Demonstrate knowledge of programming language concepts. Demonstrate knowledge of the concept of physical representation of digitized information (e.g., data, text, image, voice). Demonstrate knowledge of the hardware-software connection. Demonstrate knowledge of the concepts of data and procedural representation. SE: 750-773 SE: 88-113 Analyze programming languages. SE: 3-6 Demonstrate knowledge of the function and operation of compilers and interpreters. SE: 4, 22, 35 Demonstrate knowledge of the basic principles for analyzing a programming language. Demonstrate knowledge of the basics of structured, object-oriented, and event-driven programming. Demonstrate knowledge of how a programming language can support multitasking and exception handling. Demonstrate knowledge of current key programming languages and the environment they are used in (e.g., C, C++, Visual Basic, Java, RPG, COBOL, Assembler). SE: 88-113, 575-641 SE: 663, 666-668 SE: 3-6 1
2. Demonstrate knowledge of the stages of program development. Identify the use of program design tools. SE: 117-122, 140, 183, 956 Demonstrate knowledge of structured/modular programming. Demonstrate knowledge of the information system (IS) life cycle. Demonstrate knowledge of the characteristics and uses of batch processing. Demonstrate knowledge of the characteristics and uses of interactive processing. Demonstrate knowledge of the characteristics and uses of event-driven, object-oriented processing. SE: 88-113, 575-641 3. Develop technical documentation associated with software development. Secure needed information using appropriate reference materials. Analyze specifications. Identify constraints. Identify input and output (I/O) requirements. SE: 116, 119, 182, 455 APPLIED PROGRAMMING LANGUAGES 1. Apply computational and logical operations. Develop programs that use arithmetic operations. SE: 73, 90, 92, 99, 120, 128-129 Develop programs that use relational operators and compound conditions. SE: 160-162, 184 Develop programs that use control breaks. SE: 101, 103 Develop programs that use subtotals and final totals. 2
2. Apply techniques for building applications. Demonstrate knowledge of the development environment. SE: 1, 40, 42, 43, 44, 46, 47, 48, 82, 83, 84, 86, Use editors. Compile or interpret applications into runable form. SE: 1, 40, 42, 43, 44, 46, 47, 48, 82, 83, 84, 86, Run an application. SE: 1, 40, 42, 43, 44, 46, 47, 48, 82, 83, 84, 86, 3
Run an application. SE: 3. Apply language-specific programming techniques. Develop programs using the desired language. SE: 1, 40, 42, 43, 44, 46, 47, 48, 82, 83, 84, 86, Incorporate the use of sort routines. SE: 407-408 Develop programs designed to create, update, and delete records. Develop programs using menus. SE: 21-47 Develop programs that require user input. SE: 1, 40, 42, 43, 44, 46, 47, 48, 82, 83, 84, 86, 4
Develop programs that require user input. Demonstrate knowledge of key constructs and commands specific to the language. SE: SE: 1, 40, 42, 43, 44, 46, 47, 48, 82, 83, 84, 86, Compile a program. SE: 1, 40, 42, 43, 44, 46, 47, 48, 82, 83, 84, 86, 5
Test the program. SE: 1, 40, 42, 43, 44, 46, 47, 48, 82, 83, 84, 86, Correct errors. SE: 36, 86, 101-104, 134-136, 288, 318, 482-483 4. Debug programs. Test/run a program. SE: 1, 40, 42, 43, 44, 46, 47, 48, 82, 83, 84, 86, Correct syntax errors. SE: 36, 86, 101-104, 134-136, 288, 318, 482-483 Debug compiler errors. SE: 36, 86, 101-104, 134-136, 288, 318, 482-483 Correct common run-time errors. SE: 36, 86, 101-104, 134-136, 288, 318, 482-483 Debug complex logic errors. SE: 36, 86, 101-104, 134-136, 288, 318, 482-483 6
SOFTWARE DEVELOPMENT 1. Demonstrate knowledge of software development methodology. Identify the basic concepts of algorithm development and programming. Demonstrate knowledge of how to complete a project. Demonstrate knowledge of the principles of program design. SE: 115, 122, 206 SE: 1, 40, 42, 43, 44, 46, 47, 48, 82, 83, 84, 86, SE: 1, 40, 42, 43, 44, 46, 47, 48, 82, 83, 84, 86, Demonstrate knowledge of different data types. SE: 90-91, 98, 119, 126, 136, 265, 350, 942 Demonstrate knowledge of the software design process. SE: 117-122, 140, 183, 956 7
Demonstrate knowledge of how to resolve program implementation issues. Demonstrate knowledge of software development issues. Demonstrate knowledge of the system life-cycle approach. Demonstrate knowledge of the use, structure, and contents of a requirements specification document. Demonstrate knowledge of how to use a structured methodology to analyze a real-world problem. Demonstrate knowledge of how dataflow diagrams, process specifications, and a data dictionary are used to model functional requirements. Demonstrate knowledge of nonfunctional requirements (e.g., security, integrity, response time, and reliability). SE: 117-122, 140, 183, 956 SE: 117-122, 140, 183, 956 SE: 117-122, 140, 183, 956 SE: 261, 838 Demonstrate knowledge of how to use computeraided software engineering (CASE) tools. Demonstrate knowledge of different system design models (e.g., client server, centralized). Demonstrate knowledge of how to design and implement programs in a top-down manner. Demonstrate knowledge of how to use algorithmic and modular design to develop a problem solution. SE: 117-122, 140, 183, 956 SE: 117-122, 140, 183, 956 SE: 115, 206, 222 Demonstrate knowledge of how concepts of modular design are used to define cohesive modules. Demonstrate knowledge of how programming control structures are used to verify correctness. Demonstrate knowledge of data normalization. 8
2. Demonstrate knowledge of basic software systems design. Access needed information using company and the manufacturers references. Analyze documentation, forms, notes, and source data. Identify constraints. SE: 1, 40, 42, 43, 44, 46, 47, 48, 82, 83, 84, 86, Identify system processing requirements. SE: 1, 40, 42, 43, 44, 46, 47, 48, 82, 83, 84, 86, 9
Identify input and output. SE: 1, 40, 42, 43, 44, 46, 47, 48, 82, 83, 84, 86, Design system inputs, outputs, and processes. SE: 1, 40, 42, 43, 44, 46, 47, 48, 82, 83, 84, 86, Prepare logic using program flowchart. SE: 117-122, 140, 183, 956 Define variables. SE: 1, 40, 42, 43, 44, 46, 47, 48, 82, 83, 84, 86, 10
Define variables. SE: Select programming language. SE: 1, 40, 42, 43, 44, 46, 47, 48, 82, 83, 84, 86, Create design documentation. Prepare a printer spacing chart. Design an implementation plan. Design a project plan. Prepare a dataflow diagram. SE: 117-122, 140, 183, 956 Present the system design to management. Present the system design to users. Select computer-aided software engineering (CASE) tools. Review the design (e.g., peer and/or user walkthrough). 11
3. Develop software requirements/specifications. Access needed information using company references. Analyze requirements/specifications using current approaches (e.g., structured analysis, objectoriented analysis, prototyping, Jackson System Development). Divide design specifications into logical process blocks. SE: 117-122, 140, 183, 956 Identify parameters. Clarify specifications using questioning techniques. Follow specifications or drawings. SE: 117-122, 140, 183, 956 Record the process. Record data. Gather information using interviewing strategies. Identify system requirements. SE: 117-122, 140, 183, 956 Develop informal specifications. Develop formal specifications. Identify documentation needs. Identify computing standards and methodologies. SE: 117-122, 140, 183, 956 Identify security measures. SE: 261, 838 4. Code programs. Access needed information using company and the manufacturers references (e.g., procedural manuals, documentation, standards, work flowcharts). 12
Prepare a detailed flowchart for coding program. SE: 117-122, 140, 183, 956 Design program solution using pseudocode. SE: 120, 125, 150-157, 182-186, 210-211, 239-240, 266-268, 324-325, 347, 367-368, 397-398, 426-427, 455-457, 503-506, 553-554, 577-578, 606-607, 645-646, 666, 670, 693-694, 708-709, 743-745, 791, 824, 856-857 Generate source code using programming tools in accordance with established standards (e.g., BASIC, COBOL, RPG, C). SE: 1, 40, 42, 43, 44, 46, 47, 48, 82, 83, 84, 86, Code error-handling techniques. SE: 668 Access data using various data storage methods. SE: 712 Apply logical operators (e.g., AND, OR, NOT). SE: 90, 92, 120, 128-129, 912 Perform program sorts. SE: 407, 408 Develop programs in higher-level languages (e.g., C++, Visual Basic). SE: 1, 40, 42, 43, 44, 46, 47, 48, 82, 83, 84, 86, 13
Develop programs in higher-level languages (e.g., C++, Visual Basic). SE: Generate executable code. SE: 1, 40, 42, 43, 44, 46, 47, 48, 82, 83, 84, 86, Debug compilation errors. SE: 1, 40, 42, 43, 44, 46, 47, 48, 82, 83, 84, 86, Review code with peers or the design team. SE: 1, 40, 42, 43, 44, 46, 47, 48, 82, 83, 84, 86, 14
Review code with peers or the design team. SE: Apply security measures. SE: 261, 838 Apply computer-aided software engineering (CASE) tools and reverse engineering. Develop dataflow designs and translate them to pseudocode. Translate a logical system design into a physical design in a real environment. SE: 117-122, 125, 140, 150-157, 182-186, 210-211, 239-240, 266-268, 324-325, 347, 367-368, 397-398, 426-427, 455-457, 503-506, 553-554, 577-578, 606-607, 645-646, 666, 670, 693-694, 708-709, 743-745, 791, 824, 856-857, 956 SE: 1, 40, 42, 43, 44, 46, 47, 48, 82, 83, 84, 86, Report progress based on time line. 5. Execute software testing, validation, change control, defect tracking, and documentation. Access needed information. Develop a comprehensive test plan. 15
Develop a test system. Develop test procedures. Perform tests. Document errors. Perform regression tests. Update design documentation. Prepare program documentation. Prepare user documentation. Perform a user-acceptance test. Validate user documentation. Review results with the customer/user. Report progress based on time line. 6. Demonstrate knowledge of data structures. Demonstrate knowledge of techniques for data abstraction. Demonstrate knowledge of program design using abstraction. SE: 792 SE: 792 Demonstrate knowledge of data structures. SE: 407-408, 553-557, 587, 597-598, 793, 800 Analyze mathematically the efficiency of algorithms that manipulate and use data structures in searching, sorting, dictionary operations, and graphing. Estimate algorithm efficiency using basic database concepts. 16
DATABASE ADMINISTRATION 1. Apply databases to actual situations and business problems. Derive a database design from a workflow drawing or other requirement documents. Design a database to solve a business problem or other real-life problem situation. SE: 733-786 Identify the relationship between database components. Sort data on multiple fields. Add/remove filters. Create queries with multiple criteria. Create/apply different types of queries. Join tables in a query. Enhance the design of a form. Create needed subforms. Group data in reports. Make a calculation on a report. Imbed data and graphics. Import data and graphics. Link data and graphics. 2. Create conceptual data models. Analyze model requirements. Identify business entities and the relationships between them. 17
Define data in an integrated data dictionary. Ensure that the conceptual model includes tools to facilitate user access. 3. Create logical data models. Map a data model to a relational model. Identify attributes of model entities and relationships between them. Verify that the logical model is consistent with the conceptual model. Specify integrity constraints. 4. Normalize data models. Normalize a logical data model in accordance with established company policy. Verify that the data model matches specifications. Validate the logical data model with the client. 18