Section 1: Tue Thur. 4:25pm -- 5:50pm, S2 143 (Science II)
Section 3: Tue Thur. 6pm -- 7:25pm, S2 143 (Science II)
Office: P11, Engineering Building
Office Hours: Mon. 1pm-2:30pm
Office:G25, Engineering Building
Office Hours: Tue Thur 1pm-2pm
Office: P17, Engineering Building
Office Hours: Mon Fri noon-1pm
In this course, students will be introduced to the fundamental concepts in programming languages, including imperative, object-oriented, functional, logic, and scripting programming languages. At the end of this class, students will have an in-depth understanding of different language features included in common languages such as C, C++, Java, Haskell, Prolog, Perl, PHP, and JavScript. Students will also have a firm grasp of different language paradigms, and their benefits and drawbacks. This course would also help students understand how various language features are implemented and what design choices and trade-offs in a language are.
- Introduction to compilers
- Basic semantics: variables, scope, overloading, allocation, binding, etc.
- Procedures and parameter passing mechanisms.
- Functional programming (Haskell)
- Logic programming (Prolog)
- Object-oriented programming (C++, Java)
Kenneth C. Louden, Programming Languages Principles and Practice. Second Edition, Thomson Learning. ISBN:0-534-95341-7
Flex, bison, gcc, g++, java, hugs, XSB, and perl are installed on bingsuns.binghamton.edu.
Course slides will be available on the blackboard
All assignments will be posted on the blackboard. No assignment will be accepted after 24 hours from the deadline. Late assignments will be penalized 10%.
Assignments: 42% Exam I: 20% Exam II: 18% Exam III : 20%
Final grades will be curved over the entire class. The TAs will grade assignments. If you have questions about the grading of assignments, please first contact the TAs. This is used to ensure consistent grading. If the issue has not been resolved by the TA, then talk to the instructor, preferably during office hours or after the class. Questions regarding exams and final grades should be addressed to the instructor.
All students should follow Student Academic Honesty Code (if you have not already read it, please read it carefully). All forms of cheating will be treated with utmost seriousness. You may discuss problems with other students, however, you must write your OWN codes and solutions. Discussing solutions to the problem is NOT acceptable. Copying an assignment from another student or allowing another student to copy your work may lead to an automatic F for this course. You need ensure that your code and documentation are protected and not accessible to other students. Use chmod 700
command to change the permissions of your working directories before you start working on the assignments.