- Understand components of programming languages including control structures, names, types, objects, exceptions, etc.
- Understand different kinds of programming language such as imperative, functional and logic languages.
- Demonstrate skill in using several programming languages.
- Learn how syntax and semantics are formally specified.
- Develop a basic understanding of programming language implementation, especially insofar as the implementation impacts the design.
- Develop the skills necessary to learn new programming languages quickly
2. In the context of the CptS degree programs' objectives, this course contributes to achievement of the outcomes:
- An ability to apply knowledge of computing and mathematics appropriate to the discipline. The indicator of achievement of this outcome relevant for this course is: design algorithms and data structures to solve specific problems.
- An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs. Indicators of achievement of this outcome relevant for this course include: recognizing when theory dictates that a solution is impractical or impossible; generating multiple design concept solutions for a problem; evaluating design concepts and choosing the most promising; implementing the selected approach to obtain a solution; validating a solution and identifying reasons for differences between actual and expected results.
- A recognition of the need for, and an ability to engage in, continuing professional development. Indicators of achievement of this outcome relevant for this course include: seeking and evaluating outside (of the classroom) sources; solving problems using unfamiliar software packages, languages or systems; recognizing gaps in personal knowledge and identifying what additional knowledge is needed and methods for obtaining that knowledge; making reference to previous learning and applying it in novel situations.
- An ability to use current techniques, skills, and tools necessary for computing practice. Indicators of achievement of this outcome relevant for this course include: using current programming languages, operating systems, and software libraries to implement solutions; using current tools to manage data and processes related to development of solutions.