ICS 141

Programming Languages

Covers a variety of programming language concepts including: ....

Assessment

Your grade will be assigned according to a curve of total scores. Your score will be the sum of weighted scores: 6 quizzes (summing to 40%, after the lowest score is dropped), 8 or 9 homework assignments (summing to 30% and all count), and a comprehensive final exam worth 30%. Be sure to read my cheating policy here. It also discusses my policy on late homework and partial credit.

Submitting Homework

Each program file must include a comment template at the top. This comment should have the following form:
// NAME: Your full name
// STUDENT ID: Your UCI student ID
// EMAIL: Your email address
// TA NAME: Your TA's name
// SECTION NUMBER: Your Section Number
You should always submit all your source code and a sample run of your program with reasonable test input to help convince the TA that your program works correctly. All homework must be submitted via paper copy (in your discussion section on the due date) and via electronic submission to your section's NT drop box by the due date (don't wait until the last minute here). Your electronic and paper versions must match except that your electronic version need not have comments (other than the name template above). Use the following ID for each submission: your UCI ID number '_HW' homework number '_S' submission number (starting with 1). E.G., 12345678_HW3_S1. Only your highest numbered submission will be considered for grading although all copies will be checked for plagerism. Please only submit the .java source code files (not your .class files or .vep files or any other files generated by the compiler).

Late Homework

I do not accept late homework. You have a week to schedule your time so plan to finish early. If you run in to problems with a homework and you started early, you have a cushion to get help or to spend more time getting your program to work. If you don't get it done on time, you have only yourself to blame, so learn from this mistake and start earlier next time. There are plenty of homeworks to do.

Making Up a Quiz

I do not offer a make-up for any quizzes. The reason I drop your lowest quiz is to allow for potential disasters like over-sleeping, getting a visa, automobile accident on the way to school, or grandparent passing away (all excuses I've actually heard!). If all goes well and you take all quizzes, then you will be fortunate to drop the one on which you made the most errors. If you miss the final exam, you get a course grade of NR which turns into an F after one term. There are no make-ups of the final exam.
Course Related Links
Running lisp on open-lab Unix machines
Running Prolog on open-lab Unix machines
Java Instructional Examples
Success Tips
Java Coding Style Rules
Homework Starts

Recommended Books

You don't have to buy any of these books. I will cover most of what you need in lecture. These are good ones if you want a recommendation for which to buy.
  • "Concepts of Programming Languages" by Robert W. Sebesta (5th Edition)
  • Any good C++ language book such as "Essential C++ by Stanley B. Lippman" or "C++ Primer by Stanley B. Lippman"
  • Very useful for understanding how Object-Oriented languages work "Inside the C++ Object Model"
  • Any good Java language book such as "Core Java 2 Volume I & II"
  • Any good Common LISP language book such as "Common Lisp: The Language"
  • Any good Prolog language book such as "Programming in Prolog"

    Schedule of Lecture, Reading, Homework, and Quiz Topic

    Wk 1 2 3 4 5 6 7 8 9 10 Finals
    Lec Introduction Object-Oriented Languages Name Binding Functional Languages Data Types Expressions, Assignment Logic Programming - Prolog Unit-Level Control Structures Concurrency Statement-Level Control Structures Review
    Reading Ch. 1,2,3 Ch. 15,10 Ch. 4 Ch. 13 Ch. 5,6 Ch. 14 Ch. 8,9,12 Ch. 11 Ch. 7
    HW 1.html 2.html 3.html 4.html 5.html 6.html 7.html 8.html
    Qz Dynamic vs. Static Scoping, Dynamic Method Binding Storage Allocation, Simple LISP Data Types, Data Representations Prolog Subprograms, Parameter Passing Mechanisms Exceptions, Concurrency, Statements Final Exam