This course focuses more on the practical side of programming. Students will learn to manipulate different data structures frequently used in software engineering. In between, they will also learn how to evaluate how good a piece of code is, as well as learn more advanced and useful algorithms.