Languages and Machines:
An Introduction to the Theory of Computer Science, Third Edition
by Thomas A. Sudkamp Addison-Wesley Publishing Co., 2006 |
Assignments (Group 1) | 20% |
Midterm Exam 1a | 10% |
Midterm Exam 1b | 10% |
Midterm Exam 2 | 25% |
Midterm Exam 3 | 25% |
Assignments (Group 2) | 10% |
The exams are not cumulative. There is no final exam. Exam 1 will be given in two parts to have a gentle start to the semester while the students are bringing the knowledge from prerequisite classes to the foreground.
You will get an assignment every Monday and it will be due the following Saturday at 9:00pm. Note that the deadline is not midnight. I recommend starting the assignments as soon as possible. Starting the assignment close to the deadline is risky because it does not leave any time to revisit the topics and ask questions. Many times, all that is needed by a student is a simple clarification and not having the time to ask a question results in a lower grade.
There are two groups of assignments. The first group includes questions that prepare you for the exams. There will be a total of 11 assignments in Group 1. I will delete the assignment with the lowest grade. Their total weight is 20% The assignments in Group 2 will be due after the last exam. Their total weight is 10%. No assignments will be dropped from Group 2. These policies are shown in Canvas.
The assignments are the heart of this course and have contributed to the success of many students. They keep you in sync with the course material, therefore it is important that you reserve time each week to study the material and do the assignments. I strongly recommend that you do not skip assignments. Their individual point share is low but they give you the experience in dealing with a variety of problems.
There might be times where you are not able to complete the assignment fully by the due date. This is understandable, and dropping the assignment with the lowest score prevents a single low grade from affecting your total grade. Always turn in what you have by the due date. If you were not able to turn in answers to all the questions, make sure to complete the assignment without looking at the answers as soon as possible. This will contribute greatly to your learning.
The final grade will be calculated using a sliding scale using the percentages above. The lowest grade you will get is as follows:
93-100 A 88-92 AB 82-87 B 76-81 BC 70-75 C 65-69 CD 60-64 D 00-59 F
The following are the topics that will be covered this semester:
Topic | Sections from the textbook |
Mathematical preliminaries | 1.1, 1.2, 1.6 |
Regular Languages | 2.1 - 2.4 |
Finite Automata | 5.1 - 5.7, 6.1 |
Context-Free Grammars | 3.1 - 3.6 |
Normal Forms for Context-Free Grammars | 4.1 - 4.7 |
Pushdown Automata | 7.1 |
Turing Machines | 8.1 - 8.2 |
Formal specification of floating point numbers and accuracy | Not in the textbook, slides are provided |
It is very important to note that the recordings are not meant to replace class attendance. This class was not designed as an asynchronous online course. Over the many years I have taught classes, I have observed that skipping classes is detrimental to student success. You need to attend classes because being there gives you a multidimensional experience, an opportunity to ask questions and to see the big picture. It also gives me an opportunity to interact with you, assess your background, establish relevance to other topics of interest to you, and adjust the pace of the course. Another great advantage is that you get to know others in the class, establish frienships, and get answers to quick questions. You are expected to attend class regularly. Please see below for further information.
The assignments should be typed using a word processor of your choice. The diagrams should be drawn using a drawing software of your choide. Pictures or scans of handwritten answers are not acceptable.
If you wish to write programs to test any of the ideas, you are welcome to do so, but there is no such requirement.
While discussion with others is permitted and encouraged, the final work should be done individually. You are not allowed to work in groups for any of the assignments. If someone asks for help on a question, you are encouraged to discuss the general concepts but you are not allowed to show them your work or solutions.
The answers, comments, and programs (if any) must be the original work of the author.
You are allowed to build on material supplied in the class. If you use any other source, you should specify it on your assignment. You may use it by clearly acknowledging the source and its contribution to your work. For instance, "I found an answer to a similar question at http://www.xxx.yyy and used it to write my answer." Copying, plagiarism, unauthorized collaboration, and the like are not acceptable and will be reported to the Dean of Students' office. Please see the "Academic Integrity" paragraph below.
If you have conflicts with the exams on Thursdays or want to use your accommondations, please send me a message with the course and exam number in the subject line, e.g., "CS3311 exam 1a conflict".
The exams are not cumulative. However, the topics build on each other. Even though there will not be direct questions related to prior topics, you are expected to remember the main concepts throughout the semester.
There will be no make-up exams. In the case of very unusual circumstances (e.g., death in the family, severe illness with a doctor's written note), please come to see me and we can work something out.
It is your responsibility to return legible answers. Unfortunately, I do not have the resources to decipher bad handwriting and might have to assume that no answer was given.
Collaboration, dishonesty, and the like during the exams are not acceptable and will be turned in to the Dean of Students' office. Please see the "Academic Integrity" paragraph below.