COMPSCI 354: Programming Languages 3-credit course with 3 lecture hours per week Course Coordinator: Alark Joshi Textbook(s) and Supplemental Material Concepts of Programming Languages, 9th ed., Robert W. Sebesta, 2010. Catalog Description Principles of programming languages: design, syntax, semantics, information binding, strings, arithmetic, input/output, recursion and extensibility. PRE/COREQ: COMPSCI 342. Required Goals for the Course Successful students will be expected to: • identify characteristics of procedural, object-oriented, functional, and scripting languages • describe the phases of program translation • explain different forms of binding, visibility, scoping, and lifetime management • demonstrate the differences between various parameter passing methods • explain the concepts of encapsulation, abstraction, inheritance, and polymorphism • write programs in languages based on several different programming paradigms • evaluate a language on the basis of the various features which it supports Outcomes Addressed b. c. f. h. an ability to analyze a problem, and identify and define the computing requirements appropriate to its solution an ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs an ability to communicate effectively with a range of audiences recognition of the need for and an ability to engage in continuing professional development Outcomes Assessed: b, f, and h Topics Covered Syntax and Semantics Parameter Passing Techniques Scope and Extent Type Systems 135 Implementation of Procedures Functional Languages Grading At the end of the course, a letter grade is assigned to each student which is determined from numerical scores assigned for performance of the following activities: Activity Weight Written Homework 15% Programming Assignments 15% Written Report 10% Interpreter Program 20% Midterm Exams (2) 20% Final 20% Curriculum Category Content (Credits) Area Core Advanced Algorithms Software Design Computer Architecture Data Structures Programming Languages 3 136