ECS 140A Programming Languages – Spring 2021

Syllabus


1   General Information

Prerequisites: ECS 20; ECS 050; (ECS 060 or ECS 032B or ECS 036C); ECS 150

Instructor:

Cindy Rubio-Gonz´alez, [email protected]

Office Hours: TR 9:00am–11:00am, Sign-up Required

Teaching Assistants:

Course Information:

• Lectures: Lectures will be pre-recorded and posted on Canvas on Tuesday mornings.

• Discussion: Discussion materials will also be pre-recorded as needed.

• Canvas: https://canvas.ucdavis.edu/courses/570029

• Piazza: https://piazza.com/ucdavis/spring2021/ecs140a/home

• Office Hours Signup Link: Click here for Google Calendar Link

• Office Hours Google Form: https://forms.gle/NjmskTvwaYDcFocZA


2   Course Overview

• Syntax and semantics of programming languages

• Object-oriented programming and Go

• Functional programming and Lisp

• Logic programming and Prolog

• Concurrent programming in Go

• Miscellaneous topics such as dynamic data-race detection, garbage collection, etc.


3   Textbooks

(Optional) Kenneth C. Louden, Kenneth Lambert, Programming Languages: Principles and Practices (3rd Edition), Cengage Learning, 2011.

(Optional) Alan A. A. DonovanBrian W. Kernighan, The Go Programming LanguageAddison-Wesley, 2015.

(Optional) William Clocksin, Christopher S. Mellish, Programming in Prolog: Using the ISO Standard (5th Edition), 2003.

(Optional) Robert Wilensky, Common LISPcraft (First Edition), W. W. Norton & Com-pany, 1986.


4   Online Resources

• http://golang.org

• http://tour.golang.org

• https://www.golang-book.com/books/intro

• https://golang.org/doc/effective_go.html

• https://gobyexample.com/

• Concurrency in Go https://www.oreilly.com/library/view/concurrency-in-go/9781491941294/?ar

(Available online via the UC Davis Library.)

• Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp https://github.com/norvig/paip-lisp


5   Grading

5.1  Online Quizzes and Surveys (5%)

1. Online quizzes on various topics covered in lecture.

2. Approximately one quiz every week.

3. Quizzes can be taken multiple times before the due date.

4. Highest grade among all quiz attempts will be recorded.

5. Quizzes can be taken up to 24 hours after the deadline, with a 2% grade penalty applied per hour after the deadline.

6. Note that not taking a quiz will prevent you from seeing the quiz later. Quizzes will not be reopened after the due date.


5.2  Programming Assignments (30%)

1. Four programming assignments: two in Go, one in Lisp, and one in Prolog.

2. Approximately one every other week.

3. Programming assignments can be submitted up to 24 hours after the deadline, with a 2% grade penalty applied per hour after the deadline.

4. An extension of the assignment can be requested due to medical reasons. The request has to be made at least 48 hours prior to the assignment deadline. A doctor’s note should be provided.

5. Interactive grading over Zoom may be conducted for a subset of students chosen at random.


5.3  Exams (65%)

1. There will be three non-cumulative exams throughout the quarter.

2. The exams will be worth 20%, 20% and 25%.

3. The exams will be given online on Canvas. The first two exams will be held during lecture time. The last exam will be held during the final exam time for the class (Tuesday June 8th at 3:30pm).

4. Students are allowed to use notes handwritten on a single A4-sized sheet during the exam.


5.4  Participation, Professionalism, and Integrity

1. Students may receive bonus points for their participation on Piazza.

2. Students may receive point deductions for actions such as academic misconduct.

Note: Percent breakdown is subject to change depending upon class performance.


6   Expected Conduct

1. You are expected to follow the UC Davis Code of Academic Conduct (CAC): http://sja.ucdavis.edu/files/cac.pdf.

2. You are expected to follow the UC Davis Principles of Community (POC): http://occr.ucdavis.edu/poc/


6.1  Programming Assignments

1. Programming assignments are to be worked on individually, unless otherwise specified.

2. Discussion of homework assignments should be limited to general discussion of topics (including past students).

3. Viewing of past student submissions is strictly prohibited.

4. Resubmission of prior work from past courses is strictly prohibited.

5. Discussion of interactive grading with other groups (including past students) is strictly prohibited.

6. All coding projects will be compared with MOSS, including past submissions.

7. You are only allowed to use the subset of the programming languages that we discuss in class. Some of the assignment problems become trivial if you step outside this subset.


6.2  Exams

1. Exams are to be worked on individually.

2. Communicating with anyone from the class or outside the class while taking the exams is strictly prohibited.

3. Using any resources (internet, compilers, etc.) other than the notes handwritten on a single A4-sized sheet during the exam is strictly prohibited.

4. Students may receive a zero for violation of expected conduct, even if no academic misconduct is found.


6.3  Regrade Requests

1. A regrade request should only point out if a grader stated something specific about your submitted solution that is untrue.

2. The Code of Academic Conduct (CAC) specifically forbids “Pressuring an instructor or teaching assistant to regrade work, change a final grade, or obtain an exception such as changing the date of an exam, extending a deadline, or granting an incomplete grade.” Such pressure includes (but is not limited to):

(a) An explicit request to change your final grade.

(b) Stating that “you need at least a C in the course” for some reason (say because you are graduating soon).

(c) Asking what your course grade will be. If the coursework is not all graded, then we do not know the answer to this question. If it is graded, then you can determine the grade yourself.

(d) Stating that your incorrect solution deserves more partial credit.

(e) Asking whether the grading scale for the course or if a curve will be applied. The default answer is no.

(f) Pointing out that your score is close to a letter grade cutoff.

(g) Reacting to a warning about violations of this policy by arguing that it wasn’t a violation or that the policy is wrong.

3. You will usually have one week from the return of your graded work to request a regrade. This one-week window might be changed, for instance, for the final program-ming assignment or the last exam.


6.4  Office Hours

1. Office hours will be held virtually over Zoom. The links to join the virtual office hours can be found on Canvas under “Zoom” on the left menu.

2. Office hours will be held one-on-one and will not be recorded.

3. To reduce waiting time, students must sign-up in advance for a time slot during office hours using Google calendar. Use this Google Calendar Link to sign up for office hours. Please sign up using your UC Davis email address.

4. If you have signed up for office hours but wish to cancel the meeting, simply go to your UC Davis Google calendar and delete the event.

5. For questions on the homework or lecture materials, students are required to first post the questions on Piazza. If you are signing up for office hours to ask a question on the homework or lecture materials, please fill out this Google form: https://forms.gle/NjmskTvwaYDcFocZA to provide the links to your Piazza posts. This will help us to get prepared to meet with you and make the most effective use of the meeting time.


6.5  Piazza & Other Communication

1. You are training to be professionals; you are expected to communicate in a professional manner. As a general guideline: if you would not say it to the individuals face, you should not post it.

2. Piazza is not meant as a replacement for course materials (lecture videos, reading assignments, etc.) or virtual office hours. The instructors will do their best to answer questions on Piazza. If your question has not been answered it might be because the answer was discussed in class, is stated in the handout, already answered on Piazza, or it is something you are expected to figure out on your own.

3. Do not post code in public forum (only pseudo code), use private posts for help with debugging.

4. Before asking a question, please check that the question has not already been asked.

5. A Piazza post that is not relevant to understanding the course material will be deleted.


6.6  Student Judicial Affairs

1. Matters where collaboration appears to be excessive will be turned over to Judicial Affairs for resolution.

2. Once matters have been submitted to SJA none of the instructional staff may discuss the matter until it is resolved. Do not contact the instructor unless to confess the violation.

3. Those students referred to SJA that are in violation and confess prior to first SJA meeting may possibly receive partial credit on assignment/exam.

4. Those students found in violation that do not confess prior to first SJA meeting will receive zero on the assignment/exam.

5. Remember that matters submitted to SJA are for suspicion of violations of student conduct code, innocent students are found to be not in violation all the time.

6. If you are in violation of conduct code and have been referred to SJA, acknowledge your mistake, accept the punishment, learn from it, and let’s move on.


6.7  Course Material Copyright

1. Lectures and course materials, including PowerPoint presentations, video recordings, quizzes, exams, homework assignments and similar materials, are protected by U.S. copyright law and by University policy. I am the exclusive owner of the copyright in those materials.

2. You may take notes and make copies of course materials for your own use. You may also share those materials with another student who is enrolled in or auditing this course.

3. You may not reproduce, distribute or display (post/upload) lecture notes or recordings or course materials such as homework assignments in any other way — whether or not a fee is charged — without my express prior written consent. You also may not allow others to do so. If you do so, you may be subject to student conduct proceedings under the UC Davis Code of Academic Conduct.

4. Similarly, you own the copyright in your original papers and exam essays. If I am interested in posting your answers or papers on the course web site, I will ask for your written permission.