This course focuses on problem analysis, algorithm design and refinement, and computer programming. Complex data structures such as stacks, heaps, and trees as well as sorting and searching techniques are examined. Software engineering methods and structured style as well as object-oriented programming are emphasized.
Upon successful completion of this course, students should be able to:
Develop programs using good programming style and object-oriented programming techniques to implement algorithms and data structures.
Use simple and advanced data types including linked lists, stacks, queues, trees, heaps and sets.
Analyze the efficiency of various algorithms for looping, recursion, sorting, and searching.
Use abstract data types, containers and class templates, encapsulation, inheritance, and polymorphism.
Evaluate simple systems concepts such as input/output buffers, parameter passing mechanisms, and memory management.
Use documentation or a knowledge base to resolve techical issues.
Apply the software development process to design, write, test, and debug computer programs using an object-oriented language.