Course Coverage Assessment Report

Download 28.07 Kb.
Size28.07 Kb.
College of Science and Health

Department of Computer Science

Course Coverage Assessment Report
Course: ___CS 3820: Programming Languages_____________________________________________________________________________

Instructor: __________________________________________________________________________________________________________

Semester: _________ __________________________________________________________________________________________________


Course Learning Outcome

How is topic Covered?

How is Knowledge accessed?


About Learning Outcome and/or Topics (please use additional sheets if necessary)







  1. Programming/Application domains;


  1. Language implementation: lexical elements, syntax and semantics; Language implementation methods; structure of a compiler.


  1. Language categories: Imperative languages; Functional languages; Logic programming languages; Object-oriented programming languages.


  1. Fundamental semantic issues of variables in an imperative language:

  • Attribute of variables; issues of aliases; Binding and binding times for variable attributes; classification of variables into categories (according to their binding times).

  • Type checking, strong typing, and type compatibility rules.

  • Scoping rules for names: static and dynamic; Referencing environment of a statement.

  • Named constants and variable initialization techniques.

L8, L9, L10, L11

  1. Data types: Primitive data types; character string types; user-defined ordinal types; array types; record types; union types; pointer and reference types.


  1. Expressions and assignment statements: arithmetic expressions; operand evaluation order; type conversions; logical expressions; conditional expressions; assignment statements; compound assignments; conditional target; multiple assignments; mixed mode assignments.

L14, L15, L16

  1. Control structures: Two-way selection, one-way selection, and multiple-way selection structures, Counter-controlled loops, logically-controlled loops, user-located loop control mechanisms; Unconditional branching and guarded commands.


  1. Subprograms: Fundamentals of subprograms; local referencing environments; Parameter-passing methods; Parameters that are subprogram names; Overloaded subprograms; Generic subprograms; User-defined overloaded operators; Coroutines.


  1. Implementing subprograms: semantics of function call and return; side effects; and memory management.


  1. Describing the elements of a programming language: Application with Java, PHP, JavaScript, C#, Objective C, Lua, . . ., etc.

L8 – L18

  1. Describing the lexical elements of a programming language

  • Lexical elements of a programming language: character set, tokens, comments, rules for grouping characters into words, white spaces.

  • Regular sets and regular expressions

  • Using regular expressions to specify the tokens of a programming language.

  • Language recognizers and scanners.

L4, L5

  1. Describing the syntax of a programming language

  • Context Free Grammars (Bakus Naur Forms), Extended Bakus Naur Forms and derivations.

  • Errors in Context free grammars: useless symbols and ambiguous grammars

  • Operator precedence and associativity of operators.

  • Parsing strategies: top-down parsing and bottom-up parsing.

  • Recursive descent parsers.

L6, L7

Comments/Suggestions about Prerequisites and Co-requisites:

General Comments/Suggestions about the Course:

Learning Outcomes

  1. I am able to describe the major programming domains.

  2. I am able to describe the different programming methodologies.

  3. I am able to describe the major programming language implementation methods.

  4. I am able to use regular expressions to specify the tokens of a programming language.

  5. I am able to specify simple language recognizers of the tokens of programming languages.

  6. I am able to use context free grammars to specify the syntactic units of programming languages

  7. I am able to specify language recognizers for simple syntactic units of programming languages.

  8. I am able to specify the attributes of a variable.

  9. I am able to specify the binding and the binding time of attributes to programming language entities.

  10. I am able to evaluate the static and the dynamic scopes of variables.

  11. I am able to specify the referencing environments of statements.

  12. I am able to describe the data types used in most programming languages.

  13. I am able to specify the memory layout of a C/C++ program.

  14. I am able to evaluate arithmetic expressions, given the precedence of the operators and the associativity rules.

  15. I am able to evaluate boolean expressions (using short circuit evaluation).

  16. I am able to specify assignments (including compound assignments).

  17. I am able to specify the different control structures in one or more programming languages.

  18. I am able to specify and call subprograms in one or more programming languages.

Download 28.07 Kb.

Share with your friends:

The database is protected by copyright © 2022
send message

    Main page