Skip to content
This organization was marked as archived by an administrator on Apr 17, 2024. It is no longer maintained.
@CS-381-nilsstreedain

CS 381

Programming Language Fundamentals

Programming Language Fundamentals

OSU catalog course description including pre-requisites/co-requistes

An introduction to the concepts found in a variety of programming languages. Programming languages as tools for problem solving. A brief introduction to languages from a number of different paradigms.

Prerequisites

  • CS 261
  • MTH 231 or CS225

Instructor

Julianne Coffman (coffmaju@oregonstate.edu)

Email should be a secondary with the primary contact being Canvas messaging.

Meetings

TR 2:00 – 3:50pm in LINC 210 (4/3 to 6/9)

Textbooks:

  • Concepts of Programming Languages by Robert W. Sebesta, 12th Edition.
  • CS 381 Class Notes by Dr. Martin Erwig

Canvas

Announcements, office hours, weekly homework assignments, readings and other course information will be placed on Canvas.

Learning Objectives

On completion of the course, students should be able to perform the following tasks.

  1. Create functional programs using algebraic data types and recursive functions.
  2. Produce and explain the type and result of an expression in the context of functional programming.
  3. Produce an abstract syntax for a language given its concrete syntax.
  4. Create a denotational semantics for a language given its abstract syntax and an informal specification of its behavior.
  5. Produce and explain the behavior of a program under static vs. dynamic typing, and discuss the benefits and drawbacks of each approach.
  6. Produce and explain a program’s output under static vs. dynamic scoping of names.
  7. Produce and explain a program’s output under different parameter passing schemes, such as call-by-value vs. call-by-name vs. call-by-need.
  8. Create logic programs and express queries using predicates.

Course Policies

Makeup Exams

Makeup exams take a considerable effort to schedule, so they will not be given under normal circumstances. Any requests for makeup exams must occur in the first week of classes to be considered.

Incompletes

I will only consider giving an incomplete grade for emergency cases such as a death in the family, major disease, or child birth, while also having a passing grade. If you have a situation that may prevent you from completing the coursework, let me know as soon as you can.

Grading

Scores for coursework items will be posted on Canvas as they are graded. Feedback will be provided when available. You will turn in all coursework items through Canvas and/or TEACH before 23:59 (TEACH server time, Pacific Time Zone) on the date they are due, be sure you give yourself an hour or more to submit coursework.

Grade Evaluation

Your course grade will be based on the following:

Assignment Percentage
Homework 50%
Quizzes 30%
Final Exam 20%
TOTAL 100%

Homework

There are seven homework assignments. Assignments will submitted to Canvas

  • Homework submitted up to 24 hours late will receive a 10% penalty.
  • Homework submitted from 24 to 48 hours late will receive a 20% penalty.
  • Any disagreement in scoring must be addressed within one week of the work being graded. All questions about grading must be placed in the “Assignment Comments” section of the Canvas submission for that assignment. If a response to your comment is not posted within 48 hours you can email a TA requesting that they review the comments.

Quizzes

There are seven quizzes for this course, Quizzes administered in Canvas and contain multiple choice. True/False, matching and fill in the blank questions. Each quiz attempt has a 90 minute time limit and is not proctored. You will get two attempts at each quiz and your highest score is kept. Some quizzes contain randomly selected question so you may receive different questions on each attempt at the quiz. Quizzes are open book. Late quizzes are not allowed.

Final Exam

The cumulative final exam will be given in class during finals week at the time scheduled for this class, Wednesday June 14th at 9:30am

Grading Scale

Note: Average score ranges given in interval notation

Grade Average Score
A [93, 100]
A- [90, 93)
B+ [87, 90)
B [83, 87)
B- [80, 83)
C+ [77, 79)
C [73, 77)
C- [70, 73)
D+ [67, 70)
D [63, 67)
D- [60, 63)
F [0, 60)
  • REMINDER: A passing grade for core classes in CS is a C or above. A C-, 72 or below, is not a passing grade for CS majors.

Attendance

Be respectful of your classmates’ right to learn and my right to teach by following these rules:

  • Class attendance is not required, but it is STRONGLY ENCOURAGED.
  • There will be ungraded in-class activities (ICAs) that will help with Homework assignments.
  • When a class is missed, it is the STUDENT'S responsibility to obtain any notes, assignments.
  • Please be on time for lecture because it can be disruptive to other students, as well as the instructor.
  • If the instructor is late for a lecture, please remain in the classroom for 10 minutes.

University Policies

Academic Calendar

All students are subject to the registration and refund deadlines as stated in the Academic Calendar: https://registrar.oregonstate.edu/osu-academic-calendar.

Statement Regarding Students with Disabilities

Accommodations for students with disabilities are determined and approved by Disability Access Services (DAS). If you, as a student, believe you are eligible for accommodations but have not obtained approval please contact DAS immediately at 541-737-4098 or at http://ds.oregonstate.edu. DAS notifies students and faculty members of approved academic accommodations and coordinates implementation of those accommodations. While not required, students and faculty members are encouraged to discuss details of the implementation of individual accommodations.

Face Covering Guidance & Public Health Policy

The University’s guidance for face coverings will be upheld in the classroom. Since the policy may change as the situation evolves please refer to the following link: https://covid.oregonstate.edu/face-covering-guidance-public-health-policy

Expectations for Student Conduct

https://beav.es/codeofconduct

Reach Out for Success

University students encounter setbacks from time to time. If you encounter difficulties and need assistance, it’s important to reach out. Consider discussing the situation with an instructor or academic advisor. Learn about resources that assist with wellness and academic success at oregonstate.edu/ReachOut . If you are in immediate crisis, please contact the Crisis Text Line by texting OREGON to 741-741 or call the National Suicide Prevention Lifeline at 1-800-273-TALK (8255)

Student Bill of Rights:

OSU has twelve established student rights. They include due process in all university disciplinary processes, an equal opportunity to learn, and grading in accordance with the course syllabus: https://asosu.oregonstate.edu/advocacy/rights

Popular repositories Loading

  1. .github .github Public archive

  2. hw1 hw1 Public archive

    Homework 1 - Languages

  3. hw2 hw2 Public archive

    Homework 2 - Haskell

    Haskell

  4. hw3 hw3 Public archive

    Homework 3 - Syntax

    Haskell

  5. hw4 hw4 Public archive

    Homework 4 - Semantics

    Haskell

  6. hw5 hw5 Public archive

    Homework 5 - Types

    Haskell

Repositories

Showing 8 of 8 repositories
  • hw7 Public archive

    Homework 7 - Prolog

    CS-381-nilsstreedain/hw7’s past year of commit activity
    Prolog 0 0 0 0 Updated Jun 15, 2023
  • hw6 Public archive

    Homework 6 - Scope & Parameter

    CS-381-nilsstreedain/hw6’s past year of commit activity
    0 0 0 0 Updated Jun 15, 2023
  • hw5 Public archive

    Homework 5 - Types

    CS-381-nilsstreedain/hw5’s past year of commit activity
    Haskell 0 0 0 0 Updated Jun 15, 2023
  • hw4 Public archive

    Homework 4 - Semantics

    CS-381-nilsstreedain/hw4’s past year of commit activity
    Haskell 0 0 0 0 Updated Jun 15, 2023
  • hw3 Public archive

    Homework 3 - Syntax

    CS-381-nilsstreedain/hw3’s past year of commit activity
    Haskell 0 0 0 0 Updated Jun 15, 2023
  • hw2 Public archive

    Homework 2 - Haskell

    CS-381-nilsstreedain/hw2’s past year of commit activity
    Haskell 0 0 0 0 Updated Jun 15, 2023
  • hw1 Public archive

    Homework 1 - Languages

    CS-381-nilsstreedain/hw1’s past year of commit activity
    0 0 0 0 Updated Jun 15, 2023
  • .github Public archive
    CS-381-nilsstreedain/.github’s past year of commit activity
    0 0 0 0 Updated Apr 6, 2023

Top languages

Loading…

Most used topics

Loading…