ICS4U Culminating Task Task: Create a game or application that uses the various topics we covered in the course. Your program should utilise: - Object oriented coding structures, 2D arrays and other advanced variable types. Advanced algorithms, such as sorts, searches, or recursion Functions/Methods with and without return statements Your program should consist of multiple screens (menus etc), including instructions for the user. Program operation should be intuitive (example game rules are clear and easy to follow) Total time allotted for project: 4 weeks Work is to be completed in class. Be sure to confirm your game/app idea with me to be sure it is not too easy or too hard. Knowledge: Complexity of code syntax, use of advanced variables and constructors etc. Level 1 Variables are very basic in type. No advanced objects are present. No arrays are present. Level 2 Variables have some complexity. Higher level arrays are present. Level 3 Variables are somewhat complex. Simple objects are present, though objects do not contain custom methods. Arrays are present (example array of objects) Level 4 Variables consist of clearly defined objects comprised of many variables and custom methods. Other variables include 2D arrays etc. Application: General structure and design of the program. Level 1 Variable types are not chosen appropriately. Data is structured inefficiently. Use of advanced coding structures is absent. Code is very repetitive due to total lack of custom functions. Level 2 Variables are chosen consistently to fit the design. Though some complex elements of the program are not well implemented (ie inefficient or too basic). Code is repetitive due to lack of custom functions. Level 3 Most variables types are well chosen. All variable data is structured in an organised and well thought out way. Custom methods exist in way that is beneficial to overall structure of the program. Level 4 Data structures are organised and well designed. Level 3 Data handling is well done. Searching and sorting is present. Level 4 Data handling is very well done. Algorithms include, searching, sorting, and recursion. Code is highly efficient and maintainable due excellent use of custom methods. Thinking: Complexity of algorithms in data handling. Level 1 Data handling is simple. Makes very little use of algorithms of higher complexity. Level 2 Data handling is somewhat advanced. Data is searched using search alogorithms. Communication: Visual layout of code, indenting, comments, variable naming conventions etc. Level 1 Layout of code is not well organised. Functions are scattered. Indentation is partial. Comments are rare. Variable names are inconsistent. Level 2 Layout of code is not well organised. Functions are labelled, but locations are not consistent. Indentation is present. Comments exist, but are brief. Variable names are somewhat consistent. Level 3 Layout of code well organised. Functions are defined and mostly located in an organised fashion. Indentation is consistent. Comments are brief but informative. Variable names are consistent. Level 4 Layout of code very well organised. Functions are located in specific areas. Indentation is precise. Comments are consistent and informative. Variable names are consistent. ICS4U Culminating Exam K T C A K T C A K T C A K T C A K T C A K T C A K T C A K T C A K T C A K T C A K T C A K T C A K T C A K T C A K T C A K T C A K T C A K T C A K T C A K T C A K T C A K T C A K T C A K T C A A. Programming Concepts and Skills A1. demonstrate the ability to use different data types and expressions when creating computer programs A2. describe and use modular programming concepts and principles in the creation of computer programs A3. design and write algorithms and subprograms to solve a variety of problems A4. use proper code maintenance techniques when creating computer programs B. Software Development B1. demonstrate the ability to manage the software development process effectively, through all of its stages – planning, development, production, and closing B2. apply standard project management techniques in the context of a studentmanaged team project C. Designing Modular Programs C1. demonstrate the ability to apply modular design concepts in computer programs; C2. analyse algorithms for their effectiveness in solving a problem. D. Topics In Computer Science D1. assess strategies and initiatives that promote environmental stewardship with respect to the use of computers and related technologies D2. analyse ethical issues and propose strategies to encourage ethical practices related to the use of computers D3. analyse the impact of emerging computer technologies on society and the economy D4. research and report on different areas of research in computer science, and careers related to computer science.