Goals and Outcomes
Goals
- Learn about the historical development of programming languages.
- Study different programming language paradigms, including imperative, object-oriented, functional,
and logic.
- Gain some experience in programming in diverse languages spanning the above paradigms.
- Learn some aspects of implementing programming languages, such as scanning (tokenization), parsing,
interpretation, compilation, and optimization.
- Study underlying formalisms and methods, such as regular expressions and context-free languages.
- Improve programming skills.
- Improve communication skills, with particular emphasis on written communication and, further,
well-written programs.
Student Learning Outcomes
Upon successful completion of this course, students should be able to
- List the important historical developments related to programming languages.
- Express an algorithm in multiple programming languages from diverse paradigms.
- Effectively use the characteristic features of programming languages from diverse paradigms.
- Explain the benefits and limitations of different programming languages and paradigms for solving a
given problem.
- Implement simple programming languages using well established tools and techniques.
- Explain the inner workings of tokenizers and parsers and the underlying theory of regular expressions,
automata, context-free grammars, etc.
- Effectively read suitable publications related to the topic.
- Use resources such as others’ code and writing in an ethical and professional manner.
- Contribute to the body of knowledge at an undergraduate level.
- Analyze the correctness and running times of programs using simple methods.
- Perform simple experimental studies of programs.
- Program with attention to community standards and good practices.
- Communicate their programming work effectively.
- Meet Quantitative Literacy General Education requirements, such as being able to [following text is
from U. Maine Gen. Ed. documents]:
- Translate problems from everyday spoken and written language to appropriate quantitative
questions.
- Interpret quantitative information from formulas, graphs, tables, schematics, simulations, and
visualizations, and draw inferences from that information.
- Solve problems using arithmetical, algebraic, geometrical, statistical, or computational methods.
- Analyze answers to quantitative problems in order to determine reasonableness. Suggest
alternative approaches if necessary.
- Represent quantitative information symbolically, visually, and numerically.
- Present quantitative results in context using everyday spoken and written language as well as
using formulas, graphs, tables, schematics, simulations, and visualizations.