At the end of the course, students will be able to apply the skills learned on
CS 160, 221, 222, and 223 to develop and implement diverse algorithms,
write computer programs in solid, professional style,
understand different algorithmic approaches, and know how to select between these approaches,
understand basics of parallel and distributed systems,
have a basic understanding of computer science theory.