CSc 135 -- Fall 2018
Computing Theory and Programming Languages

| Syllabus | Schedule | Instructor | Homework | Collaboration Policy |

Course Syllabus

Instructor
Scott Gordon
RVR 5040, phone: 278-7946
gordonvs@ecs.csus.edu

Office Hours
Wed 2-4 (RVR 3018)
Thu 3-5 (RVR 5040)

Please feel free to drop by my office at other times.


Canvas will be used for submitting assignments.

Class Meetings
Section 1: Tue/Thu 01:30-02:45 -- RVR-1006
Section 4: Tue/Thu 10:30-11:45 -- BRH-114

Course Overview
Introduction to computing theory with examples and applications. Automata and formal languages; regular expressions; deterministic and non-deterministic finite automata; pumping lemma for regular languages; push-down automata and context-free grammars; language recognition; parsing techniques including recursive-descent; Turing machines; computable and non-computable functions. Design and implementation of selected features of programming languages, particularly parameter-passing methods, and approaches for scope and binding. Functional and Logic programming paradigms.

This course has been approved for GE Area B5. This designation requires that there be a 1500-word writing component, which will be included in the course. Although officially the GE approval will start in the Fall 2019 catalog, this course can be counted towards GE area B5 for those utilizing the 2018-2019 GE catalog as well, by submitting a GE substitution form. See the instructor, or ask in the department office, if this applies to you.

Course Materials
Handouts and online materials provided as necessary.
There is no textbook required. Students are expected to read and study the posted materials.

Students will also need to dowload and acquaint themselves with two programming language environments: Racket, and SWI-Prolog. Links to those systems are provided on the homework page.

Prerequisite
CSc-28, CSc-35, and CSc-130 (all with a C- or better).

Students who have not met the prerequisites of the course will be automatically dropped, unless arrangements are made directly with the instructor. It is the students' responsibility to discuss any questions or unusual situations regarding prerequisites with the instructor during the first week of class, or face being administratively dropped from the course.

Important Dates


Monday September 3 Labor Day (no classes - but doesn't affect us)
Monday November 12 Veterans Day (no classes - but doesn't affect us)
Thurs-Fri November 22-23 Thanksgiving Holiday (campus closed - no classes)
Thursday December 13 Section 1: Final Exam 12:45-02:45pm Section 4: Final Exam 10:15-12:15am

Coursework
Lecture
The proposed outline of material to be covered appears in the course schedule. Students are expected to attend all lectures. Students are responsible for making arrangements to get notes from other students if they are absent.

Programming Assignments
There will be three programming assignments, which will be turned in, and will be graded. Most likely, all of the assignments will be individual, but there may also be team assignments. Refer to the Schedule and the Homework Guidelines for important information on due dates/times, and the late policy.

Quizzes
There will be four 20-minute quizzes during the semester. Quizzes will be given on the Thursday section of the weeks scheduled, at the start of class. Each quiz will include material covered in lecture from the prior three weeks, and related material in the associated readings. The lowest quiz score will be dropped.

Final Exam
The final exam will be comprehensive. There will not be a midterm.

Taking quizzes or the final exam at times other than scheduled is only done under extreme circumstances and must be arranged in advance with the instructor.

All exams and quizzes are closed book. One 8.5x11 sheet of handwritten notes (handwritten by you, NOT photocopied from other sources) will be allowed for the FINAL EXAM ONLY, and must be submitted along with the exam (it can be returned to you after grades have been submitted).

Grading
Coursework and exams will all factor into a student's grade, weighted as follows:

Programming Assignments (3) 33% (11% each)
Quizzes (best 3 of 4) 33% (11% each)
Final Exam 34%

At the end of the semester, a final percentage will be calculated according to the above criteria. It will then be rounded to the nearest integer value. Then, two grades will be assigned: first, a straight percentage grade according to the following scale:

   93-100   A
   90-92    A-
   87-89    B+
   83-86    B
   80-82    B-
   77-79    C+
   73-76    C
   70-72    C-
   67-69    D+
   63-66    D
   60-62    D-
   below 60 F
   
The second grade assigned will be based on a curve of the final point scores of all students.

The final grade will be the higher of the two assigned grades. That is, the percentage scale listed above is the minimum grade that a student will receive based on his/her percentage.

Incomplete Grades
University guidelines regarding the grade of Incomplete will be strictly adhered to. Incomplete grades will only be given under extraordinary conditions beyond a student's control. Inability to keep up with the work due to an excessive course load, for example, is insufficient to warrant an Incomplete. A student who does not have a passing grade based on the work completed thus far at the time of the request is ineligible for an Incomplete.

Exception: students on military reserve whose units go on active duty during or around the final exam period are eligible for an Incomplete regardless of the circumstances mentioned in the previous paragraph.


| Scott Gordon | CSUS | CSc Dept | CSc 135 |