- C or higher in CS 1428: Foundations of Computer Sci
- Develop and use appropriate algorithms.
- Know that there are typically many algorithms for the same task (for example, searching and sorting).
- Implement a divide-and-conquer algorithm to solve an appropriate problem (binary search).
- Have an introductory knowledge of the time/space efficiency of various algorithms.
- Understand structured programming in terms of modules and functions.
- Understand how to separate source code into multiple files, including header (.h) files.
- Use pointer variables and memory operations.
- Resize an array with dynamic memory allocation.
- Delete allocated memory to avoid memory leaks.
- Create and use simple linked-lists.
- Insert into, delete from, and traverse a linked structure.
- Understand the principle of the Abstract Data Type (ADT) and, in particular, the separation of interface and implementation.
- Implement user-defined data structures in a high-level language.
- Compare and contrast the costs and benefits of dynamic and static data structure implementations.
- Have an introductory understanding of object-oriented programming.
- Write a program using an array of objects.
- Design, implement, test, and debug simple programs in an object-oriented programming language.
- Describe how the class mechanism supports encapsulation and information hiding.
- Write programs that use each of the following data structures: arrays, structures, strings, and linked lists.
- Describe and understand concepts of Stacks and Queues.
- Be able to create, compile, and run a program in a Unix style, command-line environment.
Lecture/Lab Hours: 3 hours lecture, 0 hours lab
Offered: Very frequently (typically every semester).