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:
Describing syntax and semantics
Imperative programming: constructs, data types, statements, procedures
Object-oriented programming: abstract data types, inheritance, object-oriented programming in C++, C#, and Java
Concurrent programming: threads in Java, principles of concurrency
C++ features
Functional programming
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.