This course provides a hands-on guide to understanding and implementing data structures and algorithms in a computer programming environment. Theories learned in this course will provide the foundation for understanding and working with future programming languages in a professional programming environment. Concepts are theoretical but will be applied through hands on implementation.