Goal of this course is to enable you with a set of mathematical tools that are required for a rigorous understanding of computer science subjects like data structures, algorithms, databases, theory of computation etc. Except for an interest in Mathematics, no other prerequisites are assumed for this course.
Following skills can be developed by taking this course:
- Software development fundamentals, including programming, data structures, algorithms and complexity.
- Be able to reason at multiple levels of detail and abstraction, being aware, in particular, of the applicability and limitations of tools from mathematics and theoretical computer science.
- Know how to apply the knowledge they have gained to solve real problems.
- Realize that there are multiple solutions to a given problem and these solutions will have a real impact on peopleĆ¢??s lives.
- Communicate their solutions to others, including why and how a solution solves the problem and what assumptions were made.
- Successfully apply the knowledge they have gained through project experience.
-Encompass an appreciation for the structure of computer systems and the processes involved in their construction and analysis.
- Understand individual and collective responsibility and individual limitations as well as the limitations of technical tools.
- Understand the range of opportunities and limitations of computing.
- Know how to apply tools and ideas from mathematics and theoretical computer science to structure and solve complex problems.