| Instructor: | Reed. | |
| Office: | SEO 917 | |
| Phone: | (312) 413-9478 | |
| email: | reed @ uic.edu | |
| On the Web: | http://logos.eecs.uic.edu/reed | |
| Office Hours: | See above web page | |
| Prerequisites: | CS 340 - or - MCS 261 & MCS 275 | |
| Texts: |
Required: Additional reading assignments will also be given. | |
TA:
|
| Wenxuan Gao: wgao5 @ uic.edu Office Phone: 312 413-2278 Office Hours in SEL 2260: Thurs 2-4 |
Make sure that you are on the class email list. Please send email to the TA requesting to be added to the list if you are not on it. I'm assuming students check email every day. All critical announcements, changes to assignments, etc. will be distributed via email.
You will be given the opportunity to take a make-up exam only in cases of medical or personal emergencies, which must be verified. If such an emergency occurs, call me or leave a note (or phone message) with the department secretary as soon as possible. If you will be out of town when an exam is scheduled, I must be told in advance and may require you to take the exam early. Otherwise, if you miss an exam you will receive 0 points.
You are responsible for all information (handouts, announcements, notes, etc.) covered during class. You should ask fellow classmates for missed information, not the instructor or the T.A.
No incompletes will be given for poor performance in the course. An incomplete can only be given if there are extenuating circumstances and the student has at least a 'C' average in the course. No extra work or extra credit will be given.
If you feel that you deserve more points than you have been given on a quiz, assignment, or test, you must see the instructor about this within one week of the time the work in question is first returned to the class. After this deadline, no claims will be considered, justifiable or not.
Be sure to check the course web page for further information, handouts, programming assignment descriptions, and hints.
As a three-hour class, I assume that you will spend an average of 6 hours a week outside of class working on readings and assignments.
| Pop Quizzes |
20%
|
| Class Participation / Position Papers |
20%
|
| Programs (Maybe ML, Prolog, Perl) |
20% |
| Presentation on some Programming Language | 20%
|
| Midterm (By default this will count additionally for the quizzes you take. Whether or not we have this exam depends on how the quizzes are going.) |
10%
|
| Final (By default this will count additionally for the quizzes you take. Whether or not we have this exam depends on how the quizzes are going.) |
10%
|
| Total: |
100% |
Letter grades are assigned on a curve at the end of the semester. Current grades will be posted on the grades page.
Pop quizzes will be given at the beginning of class, perhaps even every class. Those who arrive late will likely miss the quiz, which will last around 5 minutes. Quizzes will be based primarily on assigned readings, but may also include material from previous lectures and programming assignments. No makeup quizzes will be given, but the lowest quiz grade will be dropped.
Class participation: Discussion is a critically important component of this class. This means being actively involved in discussions and asking questions, demonstrating you have read the material and thought about it ahead of time. Class participation also involves answering questions verbally in class, based on the assigned readings. Each class one or more of you will be asked to explain, in your own words, aspects of the assigned readings for the day. A grade of 2 is considered average, and a 3 will only be given for work that shows unusual insight or extra thought. A grade of 0 is given if you are absent or if you elect to "pass" when called upon.
Similarly,
Position Papers will be graded on a scale of 0 to 3. Note that you will be graded on the final result, not on how much work you put into it. As a guideline, each paper should be 1 - 2 pages long if it were typed double-spaced. You papers need to show evidence that you have done the reading. They must have your own thoughts and reactions to the readings along with your logically supported thoughts.
Position papers must be turned in to the Blackboard discussion forum that corresponds to that paper. Make sure it is a file format (e.g. MS Word) that students can easily access from ACCC lab or home machines. You may also be asked to read one of your classmate's papers, adding your response to that paper as a reply to that post in Blackboard. No late papers will be accepted, but the lowest position paper grade will be dropped.
Position Papers should be roughly one to two pages in length if they were
printed out (betwen 500 and 1000 words). I will not necessarily assign a grade
for every set of position papers, but may randomly select sets to grade. No
late position papers will be accepted.
Programs will be assigned to help familiarize you with different programming paradigms.
Presentations may be done individually or with a partner, and should demonstrate thorough research and preparation. For each presentation you must choose some historical or current programming language that is not otherwise covered in this course. Your presentation on this language should take ~30 minutes. You must create an accompanying set of web pages that contains the contents of your presentation, that must be burned on a CD and turned in, which will then be posted as a class resource. You must provide:
Your presentation will be graded out of 30 points (and prorated for the percent it is worth towards your final grade), using the following criteria:
| Topic is selected and approved on time | 1 |
Provides historical context, language explanation, tutorial, resources |
2 |
Online content is available ahead of time and includes required elements |
10 |
Presentation is interesting and well organized |
4 |
Presentation uses appropriate visual aids |
4 |
Presenter(s) communicate effectively |
4 |
Total |
25 |
Some presentation language ideas are: Python, COBOL, RPG, Haskell, Visual Studio/VB, PL/I, Ada, Pascal, Modula-2, C#, Scheme, Ruby, Perl, etc.
When writing programs, you may consult with me or the TA at any stage of your program development. Bring a current print-out. You may only consult others after you have attempted to run your written program. Such consultation is limited to brief (less than 15 minutes) discussions with computer advisors, students, and others. You may seek help about the system or the editor from anyone at any time.
To avoid cheating via collaboration, do not show any other classmates your code. If a classmate consults you for help after attempting to run his or her program, briefly (less than 15 minutes) assist in determining why his or her code doesn't work, but refrain from suggesting specific new code. Do not lead your classmates into temptation: guard your print-outs. We intend to use an automatic cheating-verification program called MOSS that is capable of detecting partial logical similarities. Don't even take the risk.
You may not get help of any kind from anyone else for the midterm and final exams. These exams must be exclusively your own work.
Each program will be graded out of 100 points as follows (some criteria will not necessarily apply to some languages, depending on the assignments given):
| 55% | Runs correctly: conforms to assignment description for input and output, follows instructions given. Make sure to test your program thoroughly. | ||||||||||
| 45% | Programming style, further broken down as follows: | ||||||||||
| |||||||||||
| 100 | Total Points |
Each program should include a descriptive header at the top of the first page such as the following:
(* --------------------------------------------- Description: Recursively reverse a list Author: Dale Reed Date: 8/15/01 Class: Assignment # 1 for CS 476 System: ML/NJ on ernie.cs.uic.edu Input: a list of characters Output: the characters in reversed order --------------------------------------------- *)Additionally your program must print out your name, assignment number and name, TA name and lab information. For instance, if your first program assignment was called "Reverse List," then when you run your program the first thing that should appear on the screen is something like:
Author: Dale Reed Program: #1, Reverse List
Do not modify your program after it has been turned in. In case of a turnin problem, the last modification date of your original program can still be verified. If you want to change it, make a copy first.
Experience has shown that many students try to print their programs at the
last minute, which causes long delays and sometimes causes the printer to jam.
Students who develop their programs on PC's and then port them over also encounter
mysterious problems, so plan ahead.
[CS Dept.] [UIC]
[Prof. Reed]