CSC 339 – Concepts of Programming Languages

Course Syllabus, Spring 2013

Course and Contact Information

Credits:   3
Prerequisite:  Grade of at least C in CSC 330
Meeting Times:  MW 5:30-6:45pm
Location:   Petty 227

Instructor: Lixin Fu
Office: Petty 162
Tel.: (336) 256-1137
E-mail: lfu@uncg.edu
Home page: http://www.uncg.edu/~l_fu/
Office hours: MW 10:00am -- 12:00pm or by appointment

Course Learning Outcomes and Topics

This course covers concepts of imperative, object-oriented, functional, logic, and concurrent programming languages. After taking the class, students should be able to

  • develop a solid understanding of these 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 template 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, concurrency in Ada
  • C++ features
  • Functional programming
  • Logic programming

 

Textbook and Readings

Required textbooks:
Robert W. Sebesta, Concepts of Programming Languages, 10th Edition. Addison-Wesley, 2009. ISBN: 978-0-13-139531-2.  

Optional text for C++:

C++ How To Program, by Deitel & Deitel, 5th edition, 2005. Here is a free book download:

http://books.sharedaa.com/2008/02/c-how-to-program-deitel-free-book-download.html

Grading Policy

1. Exams
There will be two closed notes, closed books exams.

2. Homework and Project
Four homework assignments and one project are due before class of the scheduled date. No late homework is accepted. Each student should complete all the assignments independently.

3. Grading Scheme
Exam I:   25%
Exam II:  25%
Homework:  30% (10%, 10%, 5%, 5%)
Project: 20%

4. Attendance Policy
Attendance is required for all the class meetings and tests. If you will be absent for an exam due to circumstances beyond 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.

5. Academic Honesty
The instructor will deal strictly with any violations of academic honesty and integrity in this course. See Academic Integrity Policy  for more details. Any student who violates this policy receives zero point for the work and is subject to a reduction of the final grade of this course (up to "F"). The instructor will report the case to the university.

Please read the textbook sections in advance, attend all the lectures and start on homework early. If you need any help, please see me during my office hours, email me, or make an appointment. I am more than happy to help you.

Lixin Fu