Introduces computer science principles and strategies for writing correct, efficient, robust, maintainable software. Presents principles and implementations of linear data structures including stacks, queues, and linked-lists, as well as recursive data structures including binary trees, and binary search trees. Introduces algorithm analysis to determine time and space requirements, including best-case and worst-case behaviour. Presents abstract data types as implemented using object-oriented programming. Emphasizes principles of software design, development, and testing, and practical development strategies, including defensive programming, version control, and good coding style. Weekly hours: 1.5 Lecture hours and 1.5 Practicum/Lab hoursRestriction(s): Restricted to students in the College of Engineering. Prerequisite(s): One of CMPT 141.3 or CMPT 142.3 Note: Students with credit for CMPT 145 may not receive credit for this course. Costs in addition to tuition apply to this course.
Introduces computer science principles and strategies for writing correct, efficient, robust, maintainable software. Presents principles and implementations of linear data structures including stacks, queues, and linked-lists, as well as recursive data structures including binary trees, and binary search trees. Introduces algorithm analysis to determine time and space requirements, including best-case and worst-case behaviour. Presents abstract data types as implemented using object-oriented programming. Emphasizes principles of software design, development, and testing, and practical development strategies, including defensive programming, version control, and good coding style. Weekly hours: 1.5 Lecture hours and 1.5 Practicum/Lab hoursRestriction(s): Restricted to students in the College of Engineering. Prerequisite(s): One of CMPT 141.3 or CMPT 142.3 Note: Students with credit for CMPT 145 may not receive credit for this course. Costs in addition to tuition apply to this course.