\input /Users/Shared/TeX/defs \input pictex \input /Users/Shared/TeX/ruled %\advance \voffset by 1true in \pageno -1 \parindent 0true in \datestartup{CS 3210 Fall 2018}{-1} % crucial for all later handouts \line{\bf CS 3210 Principles of Programming Languages \hfil Fall 2018} \medskip \hrule \bigskip Instructor: Jerry Shultz \medskip \hrule \medskip \line{Office: {AES Building, Room 200Z}\hfil Phone: {\bf 303 615 1161}} \medskip \line{Email: {\bf shultzj@msudenver.edu}\hfil Website: {\bf rowdysites.msudenver.edu/$\sim$shultzj}} \medskip \hrule \medskip \input schedule \medskip \hrule \medskip The times listed as ``Office Hours'' are times that I will be sitting in my office waiting to help you when you call or come by (barring emergencies and quick trips away and back, and travel time from and to classes). \medskip You are welcome to stop by any time on the chance that I'll be there and will be able to meet with you. Finally, if those times are not convenient for you, we can arrange a mutually convenient time to meet. \bigskip \vfil\eject \line{\bf Text:\hfil} Written materials provided by instructor and online resources \medskip \line{\bf Prerequisites\hfil} CS 2050, CS 2400, CS 3250, and MTH 3170, all with a grade of C or better, or permission of instructor \medskip %\line{\bf Official Syllabus\hfil} %You can find the official syllabus for this course at {\tt https://mcs.msudenver.edu/syllabi} %\medskip {\bf Withdrawal dates} for FULL-TERM courses are: \medskip \ruledtable 100\% refund: | Sunday, August 26 \nr 50\% refund: | Wednesday, September 5 \nr Last Day for W: | Wednesday, November 2 \endruledtable \medskip {\advance \leftskip .5true in For all full-term and part-term courses, you can confirm withdrawal dates on your $\underline{\hbox{Student Detail Schedule}}$ \medskip } {\bf Holiday information:} Labor Day: September 3 (campus closed) Fall Break: November 19--25 (no classes, campus open except on 11/22 and 11/23) \medskip {\bf University Policies} \medskip Students are responsible for full knowledge of the provisions and regulations pertaining to all aspects of their attendance at MSU Denver, and should familiarize themselves with the following policies: {\advance \leftskip .5true in \item{1.} GENERAL UNIVERSITY POLICIES \item{2.} GRADES AND NOTATIONS including WITHDRAWAL FROM A COURSE,\hfil\break ADMINISTRATIVE WITHDRAWAL, and INCOMPLETE POLICY \item{} Students should be aware that any kind of withdrawal can have a negative impact on some types of financial aid, including scholarships. \item{3.} ACADEMIC INTEGRITY \item{4.} POLICY STATEMENTS ON SEXUAL MISCONDUCT \item{5.} ACCOMMODATIONS TO ASSIST INDIVIDUALS WITH DISABILITIES \item{6.} CLASS ATTENDANCE \item{7.} ELECTRONIC COMMUNICATION (STUDENT EMAIL) POLICY \medskip } For a complete description of these policies go to {\tt msudenver.edu/math/policies} \border {\bf Additional Policies for this Course} \medskip If you must miss a class session, it is your responsibility to find out what you missed and make up work if possible. If you miss a test due to an appropriate cause (illness, unavoidable family or work conflicts, religious holiday, etc.), you are responsible for arranging with me a time to take a make-up exam. \border \vfil\eject \font \smallerfont cmr10 scaled 800 \font \smallertt cmtt10 scaled 800 \line{\bf Course Organization and Rules\hfil} \medskip In a typical class session I will present some new material---Mini-Lectures---with that material written up in the course notes. Then students will work on Exercises giving hands-on work with the new material. Some Exercises will involve hand-written solutions and should be done, ideally, working in groups of four or five using a section of whiteboard. Other Exercises will involve writing code on a computer and should be done, ideally, working in groups of two or three with at least one laptop computer brought in by a student. As students work on these Exercises, the instructor and two Learning Assistants will be available to discuss issues that come up. \medskip Note that these Exercises are designed to provide a more effective alternative to listening to lectures all the time. The Exercises are not graded, but if you do not complete them during class time (especially if you are not in class) you should complete them outside of class. If you are unable to do the Exercises, you will probably not do well on the corresponding questions on the Tests. It is strongly encouraged that you work in groups, because for most people this is helpful, but it is not required. \medskip At times we will discuss Exercises as a whole group after students have had time to work on them separately. \medskip I will post all course materials, including the written ``course notes'' corresponding to the mini-lectures, and any summaries of whole group discussions of Exercises, at\hfil\break {\tt rowdysites.msudenver.edu/$\sim$shultzj} \bigskip Your ``homework'' for this course will be to go over the new material and corresponding Exercises as needed, and to complete a number of programming Projects. \medskip You are encouraged to discuss the course material, the Exercises, and even the Projects with other students, me, the Learning Assistants, or whomever you wish, but you may not receive any help from anyone on the Tests. Also, while you are encouraged to discuss the Projects with others, you may not directly copy the work of others---any work that you submit should, at a minimum, be ``written in your own words.'' \medskip It is okay, even encouraged, to do the Projects as a group effort with at most three people participating fully. If your work on a Project is part of a group effort, the group must turn in one submission, with the two or three group members clearly identified. If you do this, be sure that it is an actual meaningful collaboration, not just giving the work of one person to the others. And, when one group member emails me the group submission, be sure to ``CC'' the other one or two group members so they also receive the feedback email from me. \medskip Each project will be worth some number of project points, varying somewhat from project to project to reflect the work involved in each one. If your project does not fully meet the specifications, you will be given feedback and will have the opportunity, with no penalty, to fix the problems and resubmit your work. Only very limited partial credit will be given for work that is not correct and complete, and this will happen only when you do not resubmit your work, typically at the end of the semester when you simply run out of time. \medskip Each Project will have a due date by which your first serious submission must be made. When a Project is specified its tentative due date will be given, but sometimes we will adjust that date to a later date. You will be allowed to fix/complete work on projects later as long as you make a first meaningful submission on time. Projects not submitted by the due date will not be accepted. \bigskip We will have three in-class Tests, each covering roughly the previous five weeks of material. You will be allowed to use any written materials during the Tests, but you will not be allowed to use any electronic devices. \medskip Here is the schedule for the tests: \medskip \ruledtable Test Number | Date | Class Periods Covered \cr Test 1 | September 26 | 1--8 \nr | (class period 11) | \cr Test 2 | October 29 | 9, 10, 12--17 \nr | (class period 20) | \cr Test 3 | December 10 or 12 | 18, 19, 21--27 \nr | (scheduled final exam time) | \endruledtable \bigskip} Here is how course grades will be figured: \medskip {\advance \leftskip 0.5true in Your {\tt testScore} will be computed by averaging your three test scores. Each test score is computed by dividing the points you got by the number of points possible (so test ``points'' have different values on each test---they are just a convenient way of doing the partial credit accounting on each problem). \medskip Your {\tt projectScore} will be the number of project points you got divided by the number of project points possible. \medskip Your course score is then computed as \smallskip {\tt 0.4 * projectScore + 0.6 * testScore} \medskip Your course grade is then computed according to this chart: \medskip } %\TightTables \def\tablespace{\hskip 0.05true in} \def\tw{.35true in} \font \tinytt cmtt10 scaled 500 \ruledtable \bf Score in: | \rtitem{\tw}{\tinytt [0,60)} | \rtitem{\tw}{\tinytt [60,63)} | \rtitem{\tw}{\tinytt [63,67)} | \rtitem{\tw}{\tinytt [67,70)} | \rtitem{\tw}{\tinytt [70,73)} | \rtitem{\tw}{\tinytt [73,77)} | \rtitem{\tw}{\tinytt [77,80)} | \rtitem{\tw}{\tinytt [80,83)} | \rtitem{\tw}{\tinytt [83,87)} | \rtitem{\tw}{\tinytt [87,90)} | \rtitem{\tw}{\tinytt [90,93)} | \rtitem{\tw}{\tinytt [93,100]} \cr \bf Grade: | \rtitem{\tw}{F} | \rtitem{\tw}{D-} | \rtitem{\tw}{D} | \rtitem{\tw}{D+} | \rtitem{\tw}{C-} | \rtitem{\tw}{C} | \rtitem{\tw}{C+} | \rtitem{\tw}{B-} | \rtitem{\tw}{B} | \rtitem{\tw}{B+} | \rtitem{\tw}{A-} | \rtitem{\tw}{A} \endruledtable \medskip {\advance \leftskip .5true in with the additional rule that I will improve your grade by one level (one column farther to the right) if you have good attendance and participation. \bigskip } \vfil\eject \bye