This course enables students to further develop knowledge and skills in computer science. Students will use modular design principles to create complex and fully docu- mented programs, according to industry standards. Student teams will manage a large software development project, from planning through to project review. Students will also analyse algorithms for effectiveness. They will investigate ethical issues in comput- ing and further explore environmental issues, emerging technologies, areas of research in computer science, and careers in the field.
A. PROGRAMMING CONCEPTS AND SKILLS
OVERALL EXPECTATIONS
By the end of this course, students will:
- demonstrate the ability to use different data types and expressions when creating computer programs;
- describe and use modular programming concepts and principles in the creation of computer programs;
- design and write algorithms and subprograms to solve a variety of problems;
- use proper code maintenance techniques when creating computer programs.
B. SOFTWARE DEVELOPMENT
OVERALL EXPECTATIONS
By the end of this course, students will:
- demonstrate the ability to manage the software development process effectively, through all of its stages – planning, development, production, and closing;
- apply standard project management techniques in the context of a student-managed team project.
C. DESIGNING MODULAR PROGRAMS
OVERALL EXPECTATIONS
By the end of this course, students will:
- demonstrate the ability to apply modular design concepts in computer programs;
- analyse algorithms for their effectiveness in solving a problem.
D. TOPICS IN COMPUTER SCIENCE
OVERALL EXPECTATIONS
By the end of this course, students will:
- assess strategies and initiatives that promote environmental stewardship with respect to the use of computers and related technologies;
- analyse ethical issues and propose strategies to encourage ethical practices related to the use of computers;
- analyse the impact of emerging computer technologies on society and the economy;
- research and report on different areas of research in computer science, and careers related to computer science.