Section 01: Tue. and Thur. 4:25pm -- 5:50pm, LH005
Section 02: Tue. and Thur. 1:15pm -- 2:40pm, LH005
Ping Yang
Office: T6, Engineering Building
Email: pyang[at]cs[dot]binghamton[dot]edu
Office Hours: Tue. Thur. 2:45pm -- 4:00pm, or by appointment (email)
Mikhail Gofman
Office: N1, Engineering Building
email: mgofman1[at]binghamton[dot]edu
Office Hours: Mon. Fri. 1pm-2pm
Ruiqi Luo
Office: N1, Engineering Building
email: rluo1[at]binghamton[dot]edu
Office Hours: Mon. Wed. 2pm-3pm
In this course, you will be introduced to the fundamental concepts in programming languages, including the imperative and object-oriented programming paradigms as well as functional and logic programming languages. At the end of this classes, you will have an in-depth understanding of different language features included in common languages such as C, C++, Java, Haskell and Prolog. You will also have a firm grasp of the different language paradigms, their benefits and drawbacks. The course would also help you understand how various language features are implemented and what the design choices and trade-offs in a language are. At the end of the semester, we will study some topics on language-based security.Topics:
- Introduction to compilers
- Basic semantics: variable, scope, overloading, allocation, binding, etc.
- Procedures and Parameter passing mechanisms.
- Functional Programming (Haskell)
- Logic Programming (Prolog)
- Object-Oriented Programming (C++, Java)
- Language-based Security
Kenneth C. Louden, Programming Languages Principles and Practice. Second Edition, Thomson Learning. ISBN:0-534-95341-7
Flex, bison, gcc, g++, java, hugs and XSB have been installed in bingsuns.binghamton.edu.
Course slides will be available on the blackboard
All assignments will be posted on the blackboard. All assignments will be done by a group of 2. No assignment will be accepted after 24 hours from the deadline. Late assignments will be penalized 10%.
Attendance and Participation: 5% Quizzes: 8% Assignments: 25% Midterm I (Oct. 2): 15% Midterm II (Oct. 30): 20% Final Exam (Dec. 17): 27%
Final grade will be curved over the entire class. TA will grade assignments and quizzes. If you have questions about the grading of assignments and quizzes, please first contact the TA. 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. Questions regarding the 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 the 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 700command to change the permissions of your working directories before you start working on the assignments.
In order to prevent the spread of the H1N1 Flu Virus, please do not attend lecture or lab if you have a fever, body aches, cough, and/or sore throat -- even if you don't think it's the flu. The university recommends that you remain at home or in your room and follow instructions from the University's Health Services (http://www2.binghamton.edu/health/). Please notify your instructor of your absence as soon as reasonably possible. Excluding scheduled exams, you will not be asked to validate your illness with a note from a medical professional. It is considered a violation of the academic honesty code if you abuse this policy for non-medical reasons.
Binghamton University maintains an updated H1N1 webpage at http://www2.binghamton.edu/news/updates/index.html For recommendations on what to do if you get sick, see the CDC site at http://www.cdc.gov/h1n1flu/sick.htm