Instructor: Dr. Nancy
Green
Email: nlgreen@uncg.edu
Phone: (336) 334-5836
Office Hours: Tu/Th 2-3 pm (and by appointment)
Office: 322 Bryan
Course web page: http://www.uncg.edu/~nlgreen/csc339/csc339.html
(It is your responsibility to check the course
home page and announcements web page regularly.)
Announcements/Frequently
Asked Questions
Course Description
Prerequisites: Grade of at least C in CSC330 and basic knowledge of UNIX operating system and editors.
Brief Description: This course surveys basic concepts of several important families of high-level programming languages: imperative (like C), object-oriented (like C++), functional (like Lisp), logic-programming (like Prolog), concurrent-programming (like Java), and network-oriented (like Java). For each of these, the course will examine key questions such as, What was the motivation for designing this type of language?, and What are the key technical issues in implementing interpreters or compilers and runtimes for it? By answering these questions, it will be easier for you to learn new programming languages or more advanced features of the languages that you already know. The course will have a lecture format.
Assignments: Programming assignments in Java, Lisp, and Prolog; and possibly homework problems.
Required textbook: Ravi Sethi, Programming Languages:
Concepts and Constructs, 2nd Edition.
Recommended textbook: R. Decker and S. Hirshfield,
Programming.Java: An Introduction to Programming Using Java,
2nd ed., Brooks/Cole, 2000, ISBN 0-534-37109-4.
Programming Assignment Information
Administrivia
Missed exams may be made up if (1) the absence is excused by the instructor before the exam is graded, (2) appropriate written documentation (specified by the instructor when the excuse is approved) is provided when the exam is made up, and (3) the exam is made up by the date specified by the instructor for make up exams. Note that it is the student's responsibility to satisfy these 3 conditions on-time.
Regular class attendance is expected.
Collaboration on assignments, the project, exams (including make-up exams) is not allowed!! Collaboration is considered to be a violation of the UNCG Academic Integrity Policy.
All assignments are due on the dates given on the course calendar. Late assignments will not be accepted!!
Grading:
Week (Tues./Thurs.) | Lecture Topic | Reading in textbook | Note |
Jan 9/11 | Introduction, Programming Language Description | Sethi, ch. 1-2 | |
Jan 16/18 | Imperative Languages | Sethi, ch. 3-5 (except 3.6) | |
Jan 23/25 | continued | ||
Jan 30/Feb 1 | Object-oriented Languages | Sethi, ch. 6-7 (except 7.7-7.8) | |
Feb 6/8 | continued, Test 1 Feb. 8 | Test 1 on lectures, readings, and study questions for ch.1-7 | |
Feb 13/15 |
Java |
Java text ch. 1-2, 5.
Java Lab 1 (ex. 1), Lab 2 (ex. 1, 2, 4F) |
Note: the Java Labs are optional to help you get started on your Java assignment |
Feb 20/22 | continued | Java text ch. 3-4, 6, 9
Java Lab 3 (ex. 1), Lab 4 (ex. 1), Lab 6 (ex. 1a), Lab 9 (ex. 1a) |
Feb 22: last day to turn in design for Java
assignment
Note: the Java Labs are optional |
Feb 27/Mar 1 | continued | Java ch. 11
Lab 11 |
Note: the Java Labs are optional |
Mar 6/8 (Spring Break) | |||
Mar 13/15 | Concurrent-programming Languages | Sethi, ch. 12 | Mar. 20 (final extension): last day to turn
in Java assignment
Mar 14: Last day to drop without penalty |
Mar 20/22 | Java continued | ||
Mar 27/29 | Test 2 Mar. 27 | Sethi, ch. 10 | Test 2 will cover Java and Concurrent-programming |
Apr 3/5 | Functional Languages: LISP | ||
Apr 10/12 | continued | ||
Apr 17/19 | Logic-programming Languages: Prolog | Sethi, ch. 11 (except 11.4) | Lisp assignment due in class April 19 (note change! no late assignments will be accepted) |
Apr 24/26 | continued, Test 3 April 26 | Prolog assignment due in class April 24 | |
May 1 (no class) | |||
Course Resources
Other programming languages and tools:
Send comments and requests about this web site to nlgreen@uncg.edu