Introduction to Computing Science I

CISC 121/3.0

Photo by Chris Reid (Unsplash) https://unsplash.com/@cdr6934?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText

Overview

Introduction to design, analysis, and implementation of algorithms. Recursion, backtracking, and exits. Sequences. Elementary searching and sorting. Order-of-magnitude complexity. Documentation, iterative program development, translating natural language to code, testing and debugging.

NOTE: This course is intended for students with some prior experience in programming and who understand the basics of a programming language such as variables, functions, iteration and loops. Without previous programming experience, this course will be difficult.  

Not sure if CISC 121 is the right course for you? Please take a look at the School of Computing's self-assessment test of programming prerequisites to decide whether CISC 101/110 or CISC 121 is the best starting point for you.  

Learning Outcomes

After successfully completing this course, students will be able to 

  • Given a natural language problem description, develop (design, construct, debug and test) simple software in a conventional procedural programming language using an interactive IDE. 
  • Implement and analyze the basic searching and sorting algorithms (insertion, selection; others optional) 
  • Analyse the worst-case computational complexity of small iterative and recursive programs. 
  • Use simple linear data structures (stacks and queues) in small programs.