联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-23:00
  • 微信:codehelp

您当前位置:首页 >> Java程序Java程序

日期:2021-05-04 02:35

CS 381 ? Programming Language Fundamentals
Syllabus for Spring 2020
CS 381, Programming Languages, is a four-credit course for undergraduate students. This course gives an
introduction to the concepts found in a variety of programming languages and to languages from a number of
different paradigms. Topics to be covered are: Haskell, Prolog, scoping, parameter passing, types, polymorphism,
exception handling, semantics.
Instructor:
Dr. Martin Erwig
Email:
URL: oregonstate.edu/~erwig
Office Hours (via Zoom):
Mon 11am-noon https://oregonstate.zoom.us/j/959030437
Wed 2pm-3pm https://oregonstate.zoom.us/j/305099643
Teaching Assistants:
Dhruv Jawalkar
Parisa Ataei
Chendi Zhang
Office Hours (via Zoom):
Mon 10am-11am https://oregonstate.zoom.us/j/155943334
Tue 4:30pm-5:30pm https://oregonstate.zoom.us/j/551612998
Thu noon-1:00pm https://oregonstate.zoom.us/j/154363027
Mon Tue Wed Thu Fri
10:00-11:00 DJ
11:00-12:00 ME
12:00-01:00 CZ
02:00-03:00 ME
04:30-05:30 PA
Background reading material (optional):
Concepts in Programming Languages
John C. Mitchell, Cambridge University Press 2003
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.
Tentative Lecture Syllabus (subject to change):
Learning Thursday
Week Topic Objective Quiz
1 Introduction, Haskell 1, 2
2 Haskell 1, 2 3
3 Haskell, Abstract Syntax 3
4 Semantics 4 3
5 Types 5, 2
6 Review, Midterm Midterm
7 Runtime Stack, Scoping 6
8 Parameter Passing, Programming Paradigms 7, 1, 8 3
9 Prolog 8 3
10 Prolog 8
Important dates
Quizzes Apr 9, 23 Thu 2:00pm - 2:20pm
Midterm Exam May 7 Thu 2:00pm - 3:00pm
Quizzes May 21, 28 Thu 2:00pm - 2:20pm
Final Exam June 11 Thu noon - 1:50pm
Grading
20% Quizzes
20% Homework
25% Midterm Exam
35% Final Exam
Note on Quizzes Exams: Quizzes and exams are open book.
Note on Homework: Teamwork on homework is allowed. Teams of up to five students can submit a common
homework. All team members must be clearly identified on the submitted homework. All team members will
receive the same points for that homework. All students in a team must contribute to a team solution. All team
members must be able to explain their homework contribution to the instructor.
Note on Zoom Recordings: Please be aware that the lectures will be recorded and made available to other
students. If you don’t want to be recorded, you should turn off your video camera when asking a question.
Discussions in breakout rooms will not be recorded.
Students with documented disabilities whomay need accommodations, who have any emergency medical information
the instructor should know, or who need special arrangements in the event of evacuation, should make an appoint-
ment with the instructor as early as possible, however, no later than the first week of the term. In order to arrange
alternative testing the student should make the request at least one week in advance of the test. Students seeking
accommodations should be registered with the Office of Services for Students with Disabilities.

相关文章

版权所有:留学生编程辅导网 2021,All Rights Reserved 联系方式:QQ:99515681 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。