CSC388 Syllabus
CSC388 Syllabus
Fall 2019
Online
Instructor: Brian-Thomas Rogers.
Office: UHB 3107.
Office Hours: By appointment only.
Email: [email protected]
Course Description
The goal of this course is to introduce the major principles and concepts underlying all
programming languages without concentrating on one language. The emphasis is on evaluating
alternative ways of providing various programming language features, and studying the trade-off
involved.
We will use C, Java, C++, Fortran, Pascal, Ada, Cobol, Scheme, Prolog, Perl, Python,
Ruby, and F# to illustrate programming language concepts covered in the course. The discussion
is about the important issues in the specification, design and implementation of programming
languages.
Course Objectives
Upon completion of this course, students will
Prerequisites
Students are not expected to know all programming languages covered in class. However,
experience with at least one programming languages is necessary plus some knowledge of data
structures and basic programming techniques.
Page 1
Course Format
The course is organized around the following pattern:
1. You read the assigned chapter in the textbook.
2. You read the PowerPoint slides corresponding to the chapter.
3. You take an online, open book quiz on the chapter.
4. You do a homework assignment for the chapter, submitting your answers through
Blackboard.
At the end of the semester, a review guide for the final exam will be posted. The final
exam will be open-book, open notes. It will last one hour and 30 minutes and must be taken by
all students at a specific date and time. There will be two offerings of the final exam: one at
12:00 noon CST on Sunday, December 8th, and a second one at 8:00 pm CST on Monday,
December 9th. You must take your final on either one of these two days. If you are not able to
make these times then you must notify the instructor BEFORE the first giving of the final.
Assignments which are not properly named according to the homework description will
receive zero points.
When you prepare your assignments do not try to make them super fancy. The focus is
not on the form, but on the content. "Typewriter graphics" are fine. You can scan handwritten
diagrams or figures as far as they are readable. Scanned handwritten text is not acceptable. If I
cannot read something, I will assume that it is wrong.
Page 2
Academic dishonesty in an online learning environment may include the following scenarios:
Having a tutor or friend complete a portion of your assignments
Having a reviewer make extensive revisions to an assignment
Copying work submitted by another student to a public class meeting
Using information from online information services without proper citation
Posting any work as your own that has been written by another author(s)
The first violation to academic integrity will receive a zero for the assignment. The next time will be
failure from the course with no recourse.
Plagiarism
All academic work must be your own. Plagiarism, defined as copying or receiving materials
from a source or sources and submitting this material as one's own without acknowledging the
debts to the source (quotations, paraphrases, basic ideas), or otherwise representing the work of
another as one's own, is never allowed. Collaboration, usually evidenced by unjustifiable
similarity, is never permitted in individual assignments. Any submitted academic work may be
subject to screening by software programs designed to detect evidence of plagiarism or
collaboration.
Group work is not allowed. All assignments in this course are individual.
Getting outside help on your homework: it is not allowed. Unless it is otherwise stated in an
assignment, you are not to get help on your homework from anyone except me (Brian-Thomas
Rogers, your instructor). You also aren't supposed to use email or the web to find someone else's
answers to these questions, or to copy material which is posted on the web. If you are using
external material, you must make it clear by explicitly marking the external material and
acknowledging the source. Copying material from the web without making it clear is considered
cheating.
Academic Accommodations
If you are a student with a documented temporary or ongoing disability in need of academic
accommodations, please contact the Office of Disability Services at 217-206-6666.
Disabilities may include, but are not limited to: Psychological, Health, Learning, Sensory, Mobility, ADHD,
TBI and Asperger’s syndrome. In some cases, accommodations are also available for shorter term
disabling conditions such as severe medical situations. Accommodations are based upon underlying
medical and cognitive conditions and may include, but are not limited to: extended time for tests and
quizzes, distraction free environment for tests and quizzes, a note taker, interpreter and FM devices.
Students who have made a request for an academic accommodation that has been reviewed and
approved by the ODS will receive an accommodation letter which should be provided by the student to
the instructor as soon as possible, preferably the first week of class.
For assistance in seeking academic accommodations please contact the UIS Office of Disability Services
(ODS) in the Human Resources Building, Room 80, phone number 217-206-6666.
Illness
In the event of an illness or other mishap, get proper documentation.
Page 3
Textbook (Required)
C: Brian Kernighan and Dennis Ritchie, The C Programming Language, second edition, Prentice
Hall, 1988.
C: Sam Harbison and Guy Steele Jr, C: A Reference Manual, fourth edition, Prentice Hall, 1995.
C: Peter van der Linden, Expert C Programming: Deep C Secrets, Prentice Hall, 1994.
Scheme: R. Kent Dybvig: The Scheme Programming Language, 4th Edition. The MIT Press,
2009, (online book).
Scheme: H. Abelson, G. Sussman, J. Sussman, Structure and Interpretation of Computer
Programs, MIT Press 1996.
Prolog: Clocksin and Mellish, Programming in Prolog, 4th ed., Springer-Verlag, 1994.
Prolog: Bratko, PROLOG, Programming for Artificial Intelligence, 3rd ed., Addison-Wesley,
2001.
Prolog: Sterling and Shapiro, The Art of Prolog: Advanced Programming Techniques, 2nd ed.,
MIT Press,1994.
Python: Allen B. Downey, Python for Software Design: How to Think Like a Computer
Scientist, Cambridge University Press, 2009.
Ruby: David Flanagan, Yukihiro Matz Matsumoto, The Ruby Programming Language, 2008.
Ruby: Programming Ruby: The Pragmatic Programmer's Guide - http://www.ruby-
doc.org/docs/ProgrammingRuby/.
Perl: Randal L. Schwartz, Tom Phoenix, Brian d foy, Learning Perl, O'reilly, Fifth Edition, 2008.
F#: Syme, Don; Granicz, Adam; Cisternino, Antonio (2007). Expert F#. Apress.
Page 4
Expected Topics
The Dybvig's book is available online. We will cover only the first two chapters.
UIS Resources
University of Illinois at Springfield
Information Technology Services (ITS) (Blackboard and other technology support for students)
University Webmail
Blackboard
Brookens Library
Course Announcements
You should always check Blackboard for course announcements. The announcements
page for this course will always be the landing page for this courses Blackboard.
You should also check your UIS email frequently, preferably each week day. UIS sends
you official mail at that email address. When I send the class an email using Blackboard, the
default email address it uses for you is that official UIS email address. Do not forget to check
your course announcements and the course calendar on a day-by-day basis. You can also forward
your email from your UIS account to any email you choose.
Course Requirements
1. Use UIS email and Blackboard for communicating with the instructor and peers.
2. Complete all assigned readings covered in the materials.
3. Adhere to assignment deadlines, which are firm unless a student is given special permission by
the instructor. Late submissions are subject to no credit.
4. Contact the instructor immediately if special circumstances cause interruption of course
activities.
5. Keep backup copies of all of work.
6. Submit only original work. Any form of plagiarism is strictly prohibited, as required by
University policy. Violation of this rule will result in "no credit" for an assignment or "no credit"
for the course and may result in dismissal from the program.
Page 5
Course Communication
Please contact me via email if you have questions at any time. Online chat sessions or telephone
consultations can be arranged. Specific details about communication within our course follow.
Email
Students may also use email to communicate with the instructor and one another about matters they
wish to be kept private. You must use your @uis email. No response will be made to an account that
uses 3rd party email such as gmail, yahoo!, etc. Please copy the instructor on all communications using
email.
Instructor Feedback
As your instructor, I am committed to providing a quality learning experience through thoughtful
planning, implementation, and assessment of course activities. I am also committed to being readily
available to students throughout the semester by returning e-mails within 24 to 48 hours.
Grading Scale
Percent Range Letter Grade
100-93 A
92-90 A-
89-86 B+
85-83 B
82-80 B-
79-76 C+
75-73 C
72-70 C-
69-66 D+
65-63 D
62-60 D-
59 and below F
Page 6
Late Policy
Late homework and missed quizzes will not be accepted, unless the student is ill. If you are
traveling, you need the instructor permission for late quiz or homework. I usually grant short assignment
extensions if a student contacts me before the assignment deadline. If a student misses an exam or a
quiz, he/her will receive a zero for that portion of the grade. There are no makeup exams or
assignments.
Course Calendar
Week/Topic Assignments/Due Dates
Chapter 1: Preliminaries
1. Introduction Buy the Book and start reading chapter 1 and the syllabus
Quiz 1
Chapter 3: Describing Syntax and Semantics
2. Syntax and Semantics
Quiz 2
Chapter 4: Lexical and Syntax Analysis
3. Lexical and Syntax Analysis
Quiz 3
Chapter 5: Names, Bindings, and Scopes
4. Names, Bindings, and Scopes Quiz 4
Homework 1 released and Due in 2 weeks
Chapter 6: Data Types
5. Data Types Quiz 5
Continue working on Homework 1.
Chapter 7: Expressions and Assignment Statements
6. Expressions and Assignment
Statements Quiz 6
Homework 1 Due.
7. Statement-Level Control Chapter 8: Statement-Level Control Structures
Structures
Quiz 7
Chapter 9: Subprograms
8. Subprograms Quiz 8
Homework 2 released and Due in 2 weeks.
Page 7
Chapter 10: Implementing Subprograms
9. Implementing Subprograms Quiz 9
Continue working on Homework 2.
Start reading online book by Dybvig, Chapter 1
10. Introduction to Functional
Programming with LISP Quiz 10
Homework 2 Due.
Continue reading online book by Dybvig, Chapter 2
11. Continuation of Functional
Programming and LISP Quiz 11
Homework 3 is released and due in 3 weeks.
Read lectures on Logic programming
12. Introduction to Logic
Programming Quiz 12
Continue working on Homework 3.
13. Thanksgiving Week (No new
material given) November 19th - 23rd
All quizzes will be given on the Monday the week of and due on Sunday following that Monday.
Page 8