(1) The program requires that successful candidates:
(a) demonstrate knowledge of computer science prerequisites consistent with, and substantially beyond, that which a classroom teacher may be expected to teach;
(b) demonstrate knowledge of algorithm design, analysis, and implementation in a programming language, data structures, and abstract data types covering:
(i) problem solving techniques and strategies;
(ii) algorithm design methodologies;
(iii) algorithm verification;
(iv) algorithm analysis;
(v) data structures and abstract data types;
(vi) at least two programming languages, including object-oriented programming and/or other current programming trends; and
(vii) program testing;
(c) demonstrate knowledge of the major subject areas of the discipline of computer science, including;
(i) algorithms and data structures;
(ii) programming languages;
(iii) architecture and machine-dependent programming;
(iv) numerical and symbolic computing;
(v) operating systems and networks;
(vi) software methodology and engineering;
(vii) database and information retrieval;
(viii) artificial intelligence and robotics; and
(ix) human-computer interaction;
(d) demonstrate knowledge of:
(i) team software development; and
(ii) personal written and oral communication skills;
(e) demonstrate knowledge of computing issues, including:
(i) the history of computing;
(ii) current trends and future directions in computing;
(iii) career opportunities in computing;
(iv) ethical and moral obligations in the use of computer hardware and software;
(v) impacts of computing on society;
(vi) practical, hands-on experience with widespread software applications, including:
(A) productivity tools;
(B) communications and networking;
(C) multimedia/authoring tools;
(D) instructional software; and
(E) operating systems software;
(f) deal with computing issues unique to the classroom, including:
(i) computer hardware and software management such as hardware setup, software installation, and user and network level hardware and software trouble-shooting and maintenance;
(ii) availability and use of resources such as journals, sources of computer hardware and software, relevant conference titles, and professional organizations;
(iii) continual study of effective pedagogical uses of computers as a means to stay updated;
(iv) hands-on use of hardware, software, and operating systems common in schools;
(v) develop online/electronic class formats; and
(vi) trends and innovations in computing curricula; and
(g) apply assessment tools and practices that range from individual and group tests, to individual and group informal classroom assessment and strategies, including technology-based assessment tools.