Prerequisites: Computer Programming (grade of B or better)

Grades: 9-12

Credit: 10 Credits

This course emphasizes programming methodology with a concentration on problem-solving and algorithm development. Students should be able to design and implement computer-based solutions to problems in several application areas; to learn well-known algorithms and data structures; to develop and select appropriate algorithms and data structures to solve problems; to code fluently in a well-structured fashion using the programming language Java; to read and understand a large program and a description of the design and development process leading to such a program; to identify the major hardware and software components of a computer system, their relationship to one another and the roles of these components within the system; and to recognize the ethical and social implications of computer use.