CS 212: Learning Objectives
This course continues developing the basic concepts and practices of computer science from CS 210-211. The primary topics are familiarity with the Linux environment, programming in C, basic complexity analysis, and basic data structures: stacks, queues, linked lists, deques, priority queues, and maps.
Upon successful completion of the course, students will be able to:
- demonstrate facility using the default Linux shell (bash) including command invocation, IO redirection, file system navigation, environment variables, pipes and multiprocessing, and compression and file packaging;
- describe what occurs at each step of the edit-compile-link-execute cycle of program development;
- demonstrate the ability to program moderate-sized programs using the C programming language;
- demonstrate the ability to use gdb and valgrind to find and correct programmatic and memory errors in C programs;
- construct the interface specification for an abstract data type;
- program one or more implementations of an abstract data type interface specification;
- be able to determine from inspection the "Big-O" complexity of a piece of code;
- be able to measure running time for a particular program within the shell and by inserting source code instrumentation;
- demonstrate the ability to create a stack, queue, linked list, deque, priority queue, and map using the C programming language; and
- demonstrate the ability to use a stack, queue, linked list, deque, priority queue, or map to solve a problem.