This course is designed for the students how to think logically and mathematically, as well as practice fundamental techniques for solving problems in computer science.