By the end of the semester, a successful student is expected to be able to:
- understand the basics of computers, computation and programming languages.
- make and understand basic mathematical abstractions involving sets, relations and functions.
- understand the concepts and techniques in symbolic computation/programming.
- write Lisp programs with both functional and procedural perspective.
- apply lambda calculus to computational tasks.