Revision 11 as of 2010-02-26 11:37:18

Clear message
Locked History Attachments

COMP1917

COMP1917: Computing 1

Course Material

2010 s1
current session

2009 s2

2009 s1

2008 s2

2008 s1

Overview

Introduction to programming and computer science. Introduction to C, problem solving, debugging, programming style, unit testing, teamwork. Recursion, security, memory, pointers, and dynamic data structures.

After completing COMP1917, you should be able to:

  • Design solutions for simple problems.
  • Design solutions for larger problems using abstraction and interfaces.
  • Distinguish between well-written programs and poorly written programs.
  • Write programs using good programming style.
  • Have a solid understanding of the use memory and pointers in C.
  • Create and use dynamic data structures such as linked lists and trees.
  • Test and debug programs.
  • Work in a team to develop software.

Course Coverage

Student Resources

Staff Resources

#acl All:read

COMP2911: Design in Computing

Course Material

2010 s1
current session

2009 s2

2009 s1

2008 s2

2008 s1

2007 s2

2007 s1

Overview

After completing COMP2911 you should:

  • Understand the engineering design process
  • Have an appreciation of the role of design in computing
  • Work effectively in teams to design and implement solutions to large problems
  • Select and/or design the appropriate algorithms/data structures/class hierarchies when developing software to solve non-trivial new and unfamiliar problems

Specific Skills

  • Understand the fundamentals of Object Oriented (OO) programming.
  • Design OO solutions for larger problems using abstraction and interfaces.
  • Be able to appropriately reuse code using inheritance.
  • Understand the issues involved in designing classes in an OO system.
  • Distinguish between well-designed OO programs and poorly designed OO programs.
  • Be aware of and make appropriate use of the most common design patterns in your class designs.
  • Understand the most common algorithm design methodologies, and their strengths and weaknesses
  • Appreciate when to select existing algorithms and when to design new ones.
  • Be able to design reasonable algorithms to solve a range of problems.
  • Be able to successfully develop large projects in teams using agile methods.
  • Engage in effective pair programming.
  • Follow a style guide and engage in effective code review.
  • Understand and effectively use: program by contract, test driven development, and refactoring.
  • Use an IDE.
  • Program in Java.

About the Course

Student Resources

Staff Resources


CategoryCourseHomePage | 266640 page views


CategoryCourseHomePage