Programming course descriptions catalogue


Computer Programming I

Introduces programming concepts within social, cultural, scientific, mathematical, and technological context. Topics include programming fundamentals (control structures, data types and representation, operations, functions and parameters), computer organization, algorithmic thinking, introductory software engineering concepts (specifications, design, testing), and social and professional issues.

Computer Programming II

Transition from basic programming skills to a rigorous process of software development. Familiarization with higher level programming techniques (recursion, generic programming, stacks, queues, trees, searching, and sorting). Emphasizes connection between algorithmic thought and implementation.

Software Engineering

Surveys the software engineering processes, tools, and techniques used in software development and quality assurance. Topics include life-cycle models, process modeling, requirements analysis and specification techniques, quality assurance techniques, verification and validation, testing, project planning, and management.

Datastructures, Algorithms, and Discrete Mathematics I

Integrating mathematical principles with detailed instruction in computer programming. Explores mathematical reasoning and discrete structures through object-oriented programming. Includes algorithm analysis, basic abstract data types, and data structures. May not be repeated.

Introduction to Artificial Intelligence

Principal ideas and developments in artificial intelligence, such as problem solving, knowledge representation, search, reasoning under uncertainty, learning, and natural language processing.


All course descriptions found on MyPlan