Computing Science 30
Five CST credits at the advanced (3xxx) level can be bundled together as a science course for university admissions requirements in Alberta.
CSE3140: Second Language Programming 2
- Designed for students who have mastered procedural programming and static data structures in a more accessible programming environment, this course gives students the opportunity to develop a similar skill set in a more demanding language.
- Prerequisite: CSE2120: Data Structures 1
CSE3120: Object-oriented Programming 1
- Students add to their understanding of programming paradigms by moving from a procedural programming approach, in which modularity is handled through subprograms, to an object-oriented approach, in which it is handled through objects. They learn a simple object-oriented analysis and design approach based on the use of object diagrams and write programs that use objects associated with one another in a client/server relationship.
- Prerequisite: CSE2110: Procedural Programming 1
CSE3130: Object-oriented Programming 2
- Students extend their knowledge of object-oriented programming (OOP). They add to their expertise in object-oriented design by using some of the techniques associated with the UML design approach and to their programming expertise by writing programs that explore association between classes. Students work with abstract classes, developing algorithms that employ the object diagram approach and programs that use templated classes, containment and inheritance to promote reusability.
- Prerequisite: CSE3120: Object-oriented Programming 1
CSE3110: Iterative Algorithm 1
- Students learn a number of standard iterative data processing algorithms useful for working with data structures such as arrays. These include an iterative version of the binary search, the three basic sorts—exchange (bubble), insertion and selection, and a simple merge. In the process, they learn when and where to apply these algorithms.
- Prerequisites: CSE2120: Data Structures 1
CSE3310: Recursive Algorithms 1
- Students learn how to use a new program control flow mechanism called recursion. They then use this mechanism to write a number of basic recursive algorithms and programs such as a recursive version of the binary search, the quicksort and the merge sort.
Prerequisites: CSE3110: Iterative Algorithm 1, CSE3120: Object-oriented Programming 1
CSE3910: CSE Project D
- Students develop project design and management skills to extend and enhance competencies and skills in other CTS courses through contexts that are personally relevant.
CSE3920: CSE Project E
- Students develop project design and management skills to extend and enhance competencies and skills in other CTS courses through contexts that are personally relevant.
CSE3010: Computer Science 3
- Students explore hardware, software and associated processes at an advanced level. They extend their understanding of software development by moving from procedural programming approaches to an object-oriented approach. In the process they learn how object-oriented programming (OOP) can improve the efficiency and robustness of algorithm development and program construction. They deepen their understanding of the hardware side of computer science by exploring the connection between the binary/hexadecimal number systems and some of the simple logic gates that are the basis of the von Neumann computer. They also add to their understanding of the social implications of computer science by examining the emerging information society.
- Prerequisites: CSE2010: Computer Science 2, CSE2110: Procedural Programming 1