Course Title: Software Development Unit: Customer Service Content Standard(s) and Depth of 1. Analyze customer software needs and system requirements to design an information technology-based project plan. 2. Utilize research results to assist in designing an information technology-based project plan with strategies for solving specific problems. 3. Analyze quality assurance tasks to produce quality products. 4. Evaluate maintenance and customer support functions. Learning Objective(s) and Depth of Essential Question(s): 1. Create a simulation involving the potential parties, e.g., steering committee, client sponsor, project manager, technology team, company employees, etc., engaged in an information technology-based project plan and their roles. 2. Practice the procedures for identifying software needs and system requirements to design an information technologybased plan using case studies. 3. Create a cost budget for an information technology-based project plan. 4. Develop a time line for an information technology-based project plan. 5. Utilize research results to assist in designing an information technology-based project plan with strategies for solving specific problems. 6. Analyze quality assurance tasks to produce quality products using case studies. 7. Practice evaluating maintenance and customer support functions. How would you define the roles of the potential parties, e.g., steering committee, client sponsor, project manager, technology team, company employees, etc., involved in an information technology-based project plan? What are the procedures for identifying software needs and system requirements to design an information technology-based plan? How would you create a cost budget for an information technology-based project plan? What are the considerations to facilitate the development of a time line for an information technology-based plan? How can research results be used to assist in designing an information technology-based project plan with strategies for solving specific problems? What are the quality assurance tasks needed to produce quality products? How can maintenance and customer support functions be evaluated? Content 1. Analyze customer software needs and system requirements to design an Suggested Instructional Activities Rigor & Relevance Framework (Quadrant) 1. Identify the potential parties involved in an information technology-based project plan and Suggested Materials, Equipment and Technology Resources Suggested textbook:
information technology-based project plan. a. Research the potential parties involved in an information technology-based project plan and their roles. b. Cover the steps in constructing a cost budget for an information technologybased project. c. Explain how a time line for an information technology-based project works. 2. Utilize research results to assist in designing an information technology-based project plan with strategies for solving specific problems. a. Show techniques for developing general designs that are easily expandable over time. b. Explain techniques for reusing software that can be applied to solving specific problems. 3. Analyze quality assurance tasks to produce quality products. a. Demonstrate the use of the concept of data abstraction in insuring quality. b. Model the reuse of software through inheritance and show how quality is assured. c. Illustrate the use of multiple inheritance, when appropriate, to increase reusability and provide quality assurance. 4. Evaluate maintenance and customer support functions. a. Show the relationship between requirements information gathering and a translation to a formal specification. b. Explain techniques for documenting programs and systems. c. Analyze the costs of a maintenance and customer support feedback loop using a budget. their roles. 2. Develop a cost budget for an information technology-based project. 3. Create a time line for an information technology-based project. 4. Simulate the process by activating the information technology-based project plan. C++ for Business Programmers, 2 nd Edition, John C. Molluzzo, Pearson Prentice Hall, 2006.
d. Use a customer support feedback loop time line to examine the promptness of responses to enhancement and maintenance requests. Unit Assessment: Assess the simulation of an information technology-based plan with students working in groups and changing roles. Unit/Course CTSO Activity: FBLA Client Service competition, DECA Business Services Marketing competition, and SkillsUSA Customer Service competition Unit/Course Culminating Product: gained from simulating and revising an information technology-based plan. Course/Program Credential(s): Credential Certificate Postsecondary Degree University Degree Other: Microsoft Certified Technology Specialist (MCTS)
Course Title: Software Development Unit: Software Design Content Standard(s) and Depth of Learning Objective(s) and Depth of Essential Question(s): 5. Demonstrate the effective use of tools for software development. 6. Relate program structure, blocks, and storage types to C++. 7. Construct console and file input and output, functions, arrays, and strings. 8. Develop a software program. 9. Differentiate between C++ and C programming languages. 10. Design a simple program that incorporates mathematics by writing the code, performing unit testing, and debugging the program. 1. Analyze the differences between C and C++ and why those differences are significant. 2. Practice using inheritance and polymorphism to design a class hierarchy. 3. Choose the recommended options involved in using data abstraction and encapsulation in designing a class. 4. Use mathematical operations to design algorithms. 5. Identify and correct errors. 6. Create and use functions that work with respect to parameters, arguments, return statements, return types, and return values. 7. Follow the software engineering process of reusing code in an object-oriented environment to enhance an application. 8. Solve business problems using C++. 9. Write and use class constructors. 10. Document code and structure programs for readability. 11. Use a console menu to practice reading and writing files with string data and number fields. What are the differences between C and C++ and why are those differences significant? How would you use inheritance and polymorphism to design a class hierarchy? What considerations are involved in using data abstraction and encapsulation in designing a class? How are mathematical operations used to design algorithms? What are the types of errors and the procedures for detecting and fixing them? How do functions work with respect to parameters, arguments, return statements, return types, and return values? What is the software engineering process and how does it apply in the case of C++ with respect to reuse of code? How would you proceed to solve a business problem using C++? What are the considerations in writing and using class constructors? How do you create documentation and structure programs for readability? What are options for input/output with both the console and data files including the use of strings?
Content 1. Demonstrate the effective use of tools for software development. a. Choosing an Integrated Development Environment (IDE) b. A first program and the compile and run sequence c. The importance of white space and indentation in making programs more readable d. Matching of ( ) and { } is nested --- never cross-serial except with comments using /* and */ e. Students are aware of the role and importance of useful, readable, and complete program documentation f. Students can follow and design algorithms 2. Relate program structure, blocks, and storage types to C++. a) Binary and hexadecimal number systems b) The concept of binary mathematics in variables and types --- the primitive types c) The syntax of variable names and the importance of choosing names that make programs readable d) Differences between the = symbol in C++ and the = symbol in mathematics e) The concept of an extensible language which C++ is --- the C++ library f) Literals g) Scope, duration, and linkage of variables h) Enums i) Arithmetic operators j) Increment and decrement operators k) Relational operators l) Logic operators m) Type casting Suggested Instructional Activities Rigor & Relevance Framework (Quadrant) 1. Start with a basic program. Explain the concept of readability and the syntax for a simple class with a call to main. Make sure each student can compile and run a program using a chosen, free Integrated Development Environment (IDE). 2. Give students exercises to do in developing basic C++ skills. 3. Show examples of classes. Have students learn encapsulation, inheritance, polymorphism and implementing multiple interfaces. 4. Have students design and implement exercises and projects using problems and case studies. Suggested Materials, Equipment and Technology Resources Suggested textbook: C++ for Business Programmers, 2 nd Edition, John C. Molluzzo, Pearson Prentice Hall, 2006.
n) Conditional operator syntax and arity of operators --- unary, binary, and ternary o) Assignment operator syntax and compound assignment operators p) Rules of precedence q) Inheritance and polymorphism r) Software engineering reasons for making data private and protected s) Inheritance t) Multiple Inheritance u) Assess various design issues 3. Construct console and file input and output, functions, arrays, and strings. a) Console I/O b) File I/O c) String d) Arrays e) Pointer arithmetic f) Two purposes for classes: to create objects and organize methods g) Structs and classes h) Encapsulation --- using a method as a black box i) Method prototypes, signatures, and definitions j) Arguments and formal parameters --- calling methods k) Preconditions and postconditions l) Private instance variable and static (read class) variables m) Methods that get private instance variables (read accessors) and methods that set private instance variables (read mutators) n) Creating objects using the new operator with constructors o) Writing constructors (which have no return type --- not even void) p) Initialization of private instance variables q) Garbage collection
r) Explain the concept of fields and records in business data processing s) Design fields using private instance variables for a payroll application and implement a program that provides data for both salaried and hourly employees. 4. Develop a software program. a) Requirements b) Specification c) Architectural Design d) Detailed Design e) Implementation f) Testing g) Three types of errors: compile-time errors, runtime errors, and logic errors h) The software engineering goal of robustness --- choosing error messages that are helpful and coding for erroneous input i) Maintenance and enhancement j) Design and use of inventory objects in a program 5. Differentiate between C++ and C programming languages. A. Software engineering principles B. Types of languages: procedural, functional, logic, and object-oriented C. Advantages and disadvantages of C and C++ in complying with software engineering principles 6. Design a simple program that incorporates mathematics by writing the code, performing unit testing, and debugging the program. a) Blocks of code and scope of variables b) Documentation for algorithms c) Conditional statements including case, break, and default keywords for switch
d) Loops including break and continue Unit Assessment: Assess the implementation of exercises and projects using problems and case studies. Unit/Course CTSO Activity: FBLA Desktop Application Programming competition and SkillsUSA Computer Programming competition Unit/Course Culminating Product: Programs modified, written, and documented. Exercises and projects performed, executed and assessed. Course/Program Credential(s): Credential Certificate Postsecondary Degree University Degree Other: Microsoft Certified Technology Specialist (MCTS)
Course Title: Software Development Unit: Career Opportunities Content Standard(s) and Depth of 11. Demonstrate career and entrepreneurial opportunities, responsibilities, and educational and credentialing requirements in the software development industry. Learning Objective(s) and Depth of Essential Question(s): 1. Identify job occupations that use software development with C++ as an essential skill. 2. Study job requirements for jobs using software development with C++ skills. 3. Identify job responsibilities for selected jobs that use software development with C++ skills. 4. Research entrepreneurial opportunities that use software development with C++ skills. 5. Use tools to determine which occupations using software development with C++ skills have a likely high level of interest for a given student. 6. Analyze are the credentials that fit a student s goals and the relevant requirements. How do occupations rely on or utilize C++ as an important development or design proficiency? What are the job requirements for occupations that use C++ software development skills? How would you define your responsibilities in jobs that use C++ software development skills in a work environment dedicated to solving business problems? What prospective entrepreneurial opportunities could you consider that use C++ software development skills? How can you approximate your greatest interests with respect to occupations? What the credentials that fit a student s goals and the relevant requirements? Content 1. Determine career and entrepreneurial opportunities, responsibilities, and educational and credentialing requirements in the software development Suggested Instructional Activities Rigor & Relevance Framework (Quadrant) I. Have students go to the U.S. Department of Labor Bureau of Labor Statistics, Occupational Outlook Handbook site --- http://www.bls.gov/oco/. Do a search on software development in the Handbook. Divide into groups (based on the number of relevant occupations found and report on the relevant occupations regarding the Handbook outline for each occupation. For Suggested Materials, Equipment and Technology Resources U.S. Department of Labor Bureau of Labor Statistics Occupational Outlook Handbook http://www.bls.gov/oco/ Holland Occupational Themes
industry. 2. Identify job occupations that use software development with C++ as an essential skill 3. Study job requirements 4. Identify job responsibilities 5. Use tools to determine the occupations with a likely high level of interest 6. Research entrepreneurial opportunities 7. Research the credentials that fit each student s goals and the relevant requirements. example, the outline for the occupation Computer Programmers is 1. Nature of the Work 2. Training, Other Qualifications, and Advancement 3. Employment 4. Job Outlook 5. Projections Data 6. Earnings 7. Occupational Employment Statistics (OES) Data 8. Related Occupations 9. Sources of Additional Information II. Use the Holland Occupational Themes --- http://jobs.esc.state.nc.us/soicc/planning/c1a.htm and the career interest game --- http://career.missouri.edu/students/explore/thecareerintere stsgame.php (or other tools) to attempt to measure the level of interest in having the jobs that use software development with C++ as an integral skill for each student. A student is ranked by six themes using the Holland Occupational Themes. The top three themes, in order, are then used to match jobs in the career interest game. For example, a student with the themes, investigative first, realistic second, and conventional third (IRC) would be a good match for computer programmer because successful computer programmers are rated as IRC more so than another order of the top three themes. III. Research information technology credentials for various relevant software development jobs. IV. Add important findings that are appropriate to student portfolios. http://jobs.esc.state.nc.us/soicc/planning/c1a.htm The career interest game: http://career.missouri.edu/students/explore/thecareerinterest sgame.php Information Technology Credentials Certification Eligibility: http://www.scarnet.net/ciip/pdfs/ciip%20_it_credential_l ist_final.pdf Unit Assessment: Student self-assessment of opportunities that are a good fit for the student and the prospective employers.
Unit/Course CTSO Activity: FBLA Electronic Career Portfolio competition Unit/Course Culminating Product: Additions to portfolios and student confirmation of and enthusiasm for a prospective career using software development with C++ skills. Course/Program Credential(s): Credential Certificate Postsecondary Degree University Degree Other: Microsoft Certified Technology Specialist (MCTS)