This course builds on CMPT 141 by introducing additional problem solving methods and computer science principles, to solve larger problems that are more data intensive, or require more sophisticated techniques. These principles include data structures for efficient storage and retrieval of data, selection of appropriate data structures, algorithmic paradigms for solving difficult problems, and analysis of algorithms time and space requirements. This course also emphasizes fundamental principles of coding style, testing, and top-down design for writing robust, maintainable software. Weekly hours: 3 Lecture hours and 1.5 Practicum/Lab hoursPrerequisite(s): (60% in CMPT 141.3 or CMPT 142.3) or (60% in CMPT 111.3 and permission of the department). Note: Students with credit for CMPT 146 or CMPT 270 cannot take CMPT 145 for credit. Costs in addition to tuition apply to this course.
This course builds on CMPT 141 by introducing additional problem solving methods and computer science principles, to solve larger problems that are more data intensive, or require more sophisticated techniques. These principles include data structures for efficient storage and retrieval of data, selection of appropriate data structures, algorithmic paradigms for solving difficult problems, and analysis of algorithms time and space requirements. This course also emphasizes fundamental principles of coding style, testing, and top-down design for writing robust, maintainable software. Weekly hours: 3 Lecture hours and 1.5 Practicum/Lab hoursPrerequisite(s): (60% in CMPT 141.3 or CMPT 142.3) or (60% in CMPT 111.3 and permission of the department). Note: Students with credit for CMPT 146 or CMPT 270 cannot take CMPT 145 for credit. Costs in addition to tuition apply to this course.