CS571: Programming Languages

Spring 2021


Content


Course Information

Class Time and Place:

Tue. Thurs. 4:25pm-5:50pm (online)

Instructor:

Ping Yang
Office: P11, Engineering Building
Email: pyang[at]binghamton[dot]edu
Office Hours (online): Mon. Fri. 9:30am-10:30am

Teaching Assistant:

Priti Prabhakar Wakodikar
Email: pwakodi1[at]binghamton[dot]edu
Office Hours (online): Wed. 9:30am-10:30am

Course Objective

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, Python, Perl, PHP, and JavaScript. 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.

Topics:

Text Book (Recommended):

Kenneth C. Louden, Programming Languages Principles and Practice. Second Edition, Thomson Learning. ISBN:0-534-95341-7

Online Resources

Course Software:

Flex, bison, gcc, g++, java, hugs, perl, and prolog software are installed on remote.cs.binghamton.edu and bingsuns.binghamton.edu.

Course Material:

Slides, lectures, assignments, and zoom link will be posted on mycourses

Assignments:

All assignments will be posted on mycourses.

Grading:

Assignments: 60%
Exam I (online): 18%
Exam II (online): 22%

Final grades will be curved over the entire class. The TA will grade assignments. If you have questions about the grading of assignments, 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 or through emails. Questions regarding exams and final grades should be addressed to the instructor.

Academic Honesty

All students should follow Student Academic Honesty Code. 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 F in the 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.

Students with Special Needs:

If you have a physical, learning, or other disability that may impact on your ability to carry out assigned course work, please contact the staff in Services for Students with Disabilities (SSD). SSD will review your concerns and arrage necessary accommodations.