Concepts of Programming Languages

Course Description

Concepts of block-structured, object-oriented, functional, logic, and concurrent programming languages. Comparative study of syntactic and semantic features of these languages and writing programs using them. Prerequisite: Grade of at least C- in CSC 330.

Syllabus

Student Learning Outcomes, Goals, Objectives:

Students successfully completing this course will be able to:

  • describe different paradigms through a comparative study of syntactic and semantic features.

  • develop C++ programming skills by understanding pointers, memory management, and special C++ features such as templates and multiple inheritance.

  • obtain a flavor of programming in other paradigms like functional and logic programming (Lisp and Prolog) which are quite different from "usual" imperative ones (like C++ or Java)

  • The topics that we will cover during the course of the semester include:

    1. Describing syntax and semantics

    2. Imperative programming: constructs, data types, statements, procedures

    3. Object-oriented programming: abstract data types, inheritance, object-oriented programming in C++, C#, and Java

    4. Concurrent programming: threads in Java, principles of concurrency

    5. C++ features

    6. Functional programming

    7. Logic programming

Course Grading Information:

Activity/Performance Measure

Percentage/Points

Assignments

15%

Project

35%

Tests

40%

Attendance

10%

Grading Scale:

Percentage

Letter Grade

94-100

A

90-93

A-

87-89

B+

84-86

B

80-83

B-

77-79

C+

74-76

C

70-73

C-

67-69

D+

64-66

D

60-63

D-

<59

F

Attendance/Participation:

Attendance is a key component in learning. Attendance is required for all the class meetings and tests. If you will be absent for an exam due to circumstances beyond your control, let me know in advance so that we can arrange a make-up test. Students who miss an exam without informing me prior to the exam will receive a 0 on that exam.

Attendance will be recorded. Every absence after the first two leads to a loss of 2% until the total 10% limit is reached.

The instructor reserves the right to drop any student who misses three class meetings/tests without prior approval.

The university allows for a limited number of excused absences for religious observances --- students who plan to take such an absence should notify the instructor two weeks in advance so that accommodations can be made.

It is your responsibility to obtain notes from another student if you miss a lecture. The instructor will not give private instruction for missed lectures nor will the instructor provide personal lecture notes. Get the notes from another student, review the material, and then seek assistance for topics that are not clear.

Course Materials Purchased by the Students:

  • Robert W. Sebesta, Concepts of Programming Languages, 12th Edition. Pearson, 2019. ISBN: 978-0-13-499718-6.

  • C++ How To Program, by Deitel & Deitel, Edition 10th, ISBN: 0-13-444823-5. Ed. 9th may be fine. There are online versions.

Scholarly Perspectives

This course engages diverse scholarly perspectives to develop critical thinking, analysis, and debate and inclusion of a reading does not imply endorsement.