Organization of programming languages (fall 2020)

Course staff

Nic Herndon (instructor), Storm Davis (TA), Luis Vazquez-Lazaro (TA), and Ethan Bautista (TA)

Office hours and course communications

Tue & Thu 1:00 – 2:00 PM MS Teams, or make an appointment

Course description

This is an applied course in programming language constructs. Its emphasis is on run-time behavior of programs. It provides appropriate background for advanced-level courses involving formal and theoretical aspects of programming languages and compilation process. Topics covered include programming language syntax; names, scopes and bindings; control flow; data types; subroutines and control abstraction; data abstraction and object orientation; and functional and logic languages. Programming languages used are Python, Prolog, and Haskell.

Reference books

  1. Scott, M. L. (2015). Programming Language Pragmatics (4th ed.). Morgan Kaufmann Publishers.

Course objective

Students will demonstrate an understanding of the fundamental principles underlying programming languages and demonstrate an ability to design and implement applications in a variety of language paradigms.

By the end of the semester students will:

By the end of this course students should be able to transfer the knowledge gained, and apply it outside of the context of the course to:

Prerequisites

CSCI 2540 Data Abstraction and Object-Oriented Data Structures, or CSCI 3200 Data Structures and Their Applications. Although not required, it helps to have taken CSCI 4602 Automata, Computability and Complexity.

How to succeed in this course

Your success in this class is important to me. We all learn differently and bring different strengths and needs to the class. If there are aspects of the course that prevent you from learning or make you feel excluded, please let me know as soon as possible. Together we’ll develop strategies to meet both your needs and the requirements of the course. There are also a range of resources on campus, including:

I would also encourage every student to submit anonymous feedback throughout the semester on how to improve this course.

Equality statement

I am dedicated to establishing a learning environment that promotes diversity of the students including race, class, culture, religion, gender, sexual identity, and physical ability. It is important that this is a safe classroom environment. We will practice being generous and respectful members of our class and computer science community. Please let me know immediately if you notice discriminatory behavior in this class or feel discriminated against.

Accommodations

East Carolina University seeks to comply fully with the Americans with Disabilities Act (ADA). Reasonable accommodations will be made for students with verifiable disabilities. In order to take advantage of available accommodations, students must be registered with the Department for Disability Support Services located in Slay 138, 252-737-1016. Accommodation Information & Processes.

Additional DSS student resources can be found at: https://accessibility.ecu.edu/students/.

Office hours

Office hours are an important part in supporting you throughout this course. Even if you don’t have specific questions, needs, and concerns, I would love to meet up with you at least once during this semester. There are a couple of options to meet up: meet with me using MS Teams during the office hours, or, if these times don’t work for you, please email me and I will find another day and/or time.

Attendance and participation

Missed instructional time in the event of a disruption

Making up missed instructional time in this course will follow ECU’s Policy for Making Up Missed Instructional Time Due to Suspension of Instruction.

COVID-19 health/safety standards

All students are required to comply with the University Regulation on Face Coverings, including the wearing of face coverings in classrooms, lecture halls, and any other instructional areas and campus locations. Students with disabilities and medical conditions, as documented with the Department for Disability Support Services, may seek alternate accommodations. For additional information please consult the Office of Students Rights and Responsibilities Website.

Communication

We will be using Piazza discussion forum system for communication, since this allows anonymous posts. The discussion forum should be your first choice for asking questions. I expect you to do a reasonable amount of thinking to try to solve your problems before posting for help. You should also check the discussion forum before asking your question to see if the same question has already been posted. I will likely not answer questions that have already been answered in the discussion forum. You should post questions related to assignments early rather than wait until last minute. If you post a question too close to an assignment deadline, you may not receive an answer before that deadline. I will make every attempt to answer questions within two business days.

Rules for success (student responsibilities)

This course has six important rules. If you choose to follow these rules, your odds of learning the material and achieving a good grade in this course will improve greatly.

Course staff responsibilities

You can expect from me:

Grading and course assignments

Participation (5%): There will be one or more in-class exercises (ICEs) during each lecture. For each exercise, students will have to write down their solution, then share it and discuss it with one or more students. The solution does not have to be correct, nor complete. However, you are encouraged to correctly complete, as much as possible, the solution to each exercise. The instructor will then ask random students to share their solutions. At the end of each lecture, each student will have to take a picture/screenshot of their work and upload it to Canvas (for most lectures, text submissions will also be accepted). The deadline is 11:59 PM on the day of the lecture. Each submission is up to 1 point (for example, if there are 3 ICEs during a lecture, and you submit solutions for 2 exercises, you’ll get 2/3 = 0.66 points for that lecture). Lowest three submissions are dropped. Total points for ICEs: 10 ICEs x 1 = 10 points.

Quizzes (5%): Each week, for the first six weeks, there will be a cumulative quiz in Canvas (with material covered so far in the course). The quiz will be available on Fridays from 12:00 PM until 11:59 PM. Once you start the quiz you have 15 minutes to complete it. The questions will be true/false, multiple choice, and/or short answers, picked at random from a pool of questions. Students can submit questions to be considered for quizzes, using this form. The deadline for question submissions is 11:59 PM on Thursdays. For each of your questions included in the quiz, you will receive an extra credit point for that quiz. If multiple students submit the same question, only the first student receives extra credit.

Homework (45%): There will be five homework assignments on topics covered in class (theoretical and programming problems), and one homework assignment on practice interviews. Each of the five homework is 100 points. The practice interview homework is 25 points. Students have three late days to be used throughout the semester. The homework assignments will be posted on the course page in Canvas, and have to be submitted via Canvas. They are due on the dates listed in the tentative schedule by 11:59 PM. The grading rubric for the homework assignments is as follows:

Presentation (5%): By the end of the first week of class you have to form a group. Your group will pick one of the topics covered in class, prepare a review of the material on that topic, and present it in class during the last lecture. This assignment has two components that have to be submitted:

Your grade for the class presentation is the average of:

Final exam (40%): The class has one final exam. It will have questions like the ones encountered in ICEs, quizzes, and homework. Students can submit questions to be considered for final exam (the extra credit is same as for quiz questions). The deadline for question submissions is 11:59 PM on Sunday, September 27. The exam will be closed books, closed notes. The exam must be completed via Canvas with Respondus LockDown Browser, in the time allotted – on Tuesday, September 29 from 3:30 to 4:45 PM. Permissions to take exam on other dates than scheduled will not be given, except for extreme medical emergencies.

Regrade requests: For any assignment, you can submit a regrade request within a week from the grade release for that assignment, by emailing the TAs and CC-ing me. If no request was received within a week, the grade remains final for that assignment.

Final grades

To evaluate your understanding of the course content I will use scores achieved on each of the above assessment components. Your final grade will convey what you know from the course and how well you know it. Missing and late assignments can have a dramatic impact on your final grade so it is important that you are attentive to submission deadlines and avoid any missing work. The typical breakdown of percentages and final grades for this course are:

F D D+ C- C C+ B- B B+ A- A
0-59 60-66 67-69 70-72 73-76 77-79 80-82 83-86 87-89 90-92 93-100

This grading scheme may be adjusted based on the overall performance of students in the course.

Course incompletes

Students who are unable to complete course requirements within the allotted time because of severe medical or personal problems may request a grade of Incomplete from the instructor of the course. Incomplete grades are warranted only if a student is passing the course at the time of the request and if the course requirements can be completed by the end of the following semester.

Note: an incomplete means you are on your own to complete the material agreed upon by the instructor of this course. Do not expect additional help or one-on-one teaching of the material past the course completion date. It is your responsibility to complete the remaining material.

Academic honesty

It is very important in all courses that you are honest in all the work that you complete. You may discuss assignments with other students, in fact I encourage this as a learning experience. But again, the writeup must be your work. Copying is not allowed, and collaboration so close that it looks like copying is not allowed. Remember to tell me who you worked with as well.

If you copy on project assignments or exams you are doing a disservice to yourself, the instructor for the course, the Department of Computer Science, the East Carolina University, and your future. We design our courses to provide you the necessary understanding and skill that will make you an excellent computer scientist. Assignments are designed to apply and test your knowledge and understanding of the material.

I will carefully review your submissions automatically and manually to verify that “cheating” has not taken place. If you are suspected of plagiarism, I will follow an informal path to determine if academic dishonesty has taken place, and you may receive an F for the course and have a mark on your permanent record at ECU. This will disrupt your schedule for completing courses and may lead to you not completing your degree in a timely fashion. Please review carefully the Academic Integrity to understand what academic dishonesty is, how you can avoid it, and the procedure I will follow if you are under suspicion. If you have questions or unsure if something constitutes plagiarism, please reach out to me.

Every assignment implicitly includes a “contract” that you sign virtually by submitting your assignment. By “signing” this contract you indicate that you have read all the documents on this website and any links to academic honesty associated with the university. Your signature indicates that you completely understand the policies in place and that you have not plagiarized.

Final note

Occasionally, it may be necessary to revise this syllabus due to extenuating circumstances. I reserve the right to revise this syllabus if the need arises. If I do so, I will provide you with advance notice.


Back to course home