3 credits | Prepared by Karl Abrahamson, May 2018 |
P: CSCI 2540 or CSCI 3200. Applied course in programming language constructs. Emphasis on run-time behavior of programs. Provides appropriate background for advanced-level courses involving formal and theoretical aspects of programming languages and compilation process.
Programming languages are the notation in which programmers express their creations. It is said that natural language influences how people think. Whether or not that is true, it is certainly the case that programming languages strongly influence how programmers and software developers think.
This course explores different kinds of programming languages: their philosophies, components, structure, advantages and disadvantages. It also covers issues such as specification of syntax and semantics of languages, foundational issues, lambda calculus, and how programming languages are implemented.
The student should come away with an appreciation for different forms of programming languages, and should be able to explain when and why they are useful. The student should be able to apply different programming styles to solving problems, regardless of the language used. The student should have sufficient background to understand programming language documentation, and to learn new languages that follow particular styles.
Grading is based on five homework assignments, a comprehensive final examination, six quizzes, a group presentation, and class participation. The homework will count a total of 45%, the final exam 40%, quizzes 5%, presentation 5% and calss participation 5%.
Grade | Meaning |
---|---|
A | Achievement substantially exceeds basic course expectations |
A− | |
B+ | |
B | Achievement exceeds basic course expectations |
B− | |
C+ | |
C | Achievement adequately meets basic course expectations |
C− | |
D+ | |
D | Achievement falls below basic course expectations |
F | Failure – achievement does not justify credit for course |