Course overview
The course equips students with essential computer science knowledge required for addressing practical software engineering challenges. Students will acquire proficiency in linear algebra, set theory, set operations, first-order logic, formal languages, finite automata, Turing machines, and computational complexity. Additionally, students will develop practical skills for applying these formal concepts to solve real-world software engineering problems.
Course learning outcomes
- Apply propositional logic and algebra in the development of robust code
- Apply automata and language theory to improve the quality and reliability of code
- Apply computational theory to describe a model and capability of a software algorithm
Degree list
The following degrees include this course