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 type checking, specification of syntax and semantics of languages, foundational issues 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 six biweekly quizzes, a comprehensive final examination and approximately seven programming assignments. The quizzes will count a total of 36%, the final exam 26% and the programming assignments 38%.
Grade | Meaning |
---|---|
A | Achievement substantially exceeds basic course expectations |
A− | |
B+ | |
B | Achievement exceeds basic course expectations |
B− | |
B+ | |
C | Achievement adequately meets basic course expectations |
C− | |
D+ | |
D | Achievement falls below basic course expectations |
D− | |
F | Failure – achievement does not justify credit for course |