This course is a full course in understanding all the mathematics and structures required to successfully do computing. It is a course in discrete structures, data structures, and algorithms. That means that we go through logic and proofs alongside the structures such as trees and graphs. This is the basis for understanding algorithms, recursion and much more. This course aims to give a clear and cogent understanding of the major parts to discrete structures. Anyone interested in computers should be learning this material well.
Data structures requires the understanding of certain mathematical concepts that are built here. It is imperative to understand computing from first principles. As such, we build and analyze different data structures with our firm mathematical foundation.
This course also discusses an introduction to algorithms. It develops many ideas related to speed and efficiency in algorithms. It has many deep ideas and approaches to be an effective, algorithmic computerista.