|
ITEC380 is an introduction to the study of programming languages. Topics include:
Office hours:
You don’t need an appointment to drop by during scheduled office hours.
These hours (if printed) are subject to change;
see the class web page for the most up-to-date times.
MWF | 16:00–17:00 | |
H | 10:00–12:00 | |
or email me some times that work better for you (incl. weekend zoom/discord chat, possibly). |
You are encouraged to post (and answer) questions on the D2L discussion board, since you might get another student’s ideas within a few minutes, instead of my response perhaps a day or more later. If your question requires giving away part the answer (e.g. part of your solution), feel free to email me; please include “ITEC380” in the subject, thanks.
Author: | Michael Scott | ||||
Title: | Programming Language Pragmatics | ||||
Publisher: | Morgan Kauffman (Elsevier) | ||||
Edition: | (see Note below) | 4th ed | 3rd ed | 2nd ed | |
ISBN: | |||||
Note: | You are welcome (even encouraged) to get a used copy the textbook. Newer editions are improvements (mostly with more examples and self-exercises), but if your budget is tight you can get an older edition. | ||||
optional text | How well do you know Java? The following has nearly 100 one-page puzzles, each illustrating how language design choices can have unintended consequences. Fun bedtime reading. | ||||
Author: | Joshua Bloch and Neal Gafter | ||||
Title: | Java Puzzlers: Traps, Pitfalls, and Corner Cases | ||||
Publisher: | Addison Wesley | ||||
ISBN: |
Evaluation:
Exams (2) & Quizzes | 40% |
Homeworks | 60% |
Clarity counts in all work for this class (including spelling, grammar, and layout). All submitted material (hardcopy or electronic) must contain both your name and the hw/quiz/exam-number near the top. Any hardcopy submitted must be stapled. If something is due both on-line and hardcopy, the hardcopy must be turned in by the start of first lecture on/after the electronic deadline.
Homeworks may be spot-graded -- some problems graded in detail, others with a cursory ✓+ / ✓ / ✓- / 0. Some problems might be auto-graded (and perhaps not further examined), so be sure to use any function/program/type names specified in the homework. Programs will be graded not only for the extent to which they produce the required results, but also for good style. In particular, the code should be well designed, straightforward and use meaningful identifier names. Every function should have a purpose-statement, signature, and unit tests. A program which does not compile/run might summarily get a 0. (Beware making a last-moment change right before submitting, without verifying that it still passes all unit tests.)
There will be some short quizzes in class; fair game for these quizzes include definitions and examples from the assigned reading, as well as any previous homework problems.
Final Exam: 2019.Dec.11 (Wed) 14:45, as per the final exam schedule. In case of inclement weather, the university may move the exam-slot to Friday, Dec.13.
Late Policy: Any hardcopy is due at the start of class on the due-date. No late homework is accepted, except that hardcopy ≤10min late will be assessed a 5% penalty. If you know in advance you won’t be able to turn in homework on time (e.g. military duty, or university sports) you must get permission in advance to turn the homework in late. For significant illness, family crisis without advance notice (but with later documentation), contact the professor as soon as possible to arrange to catch up on the work.
You cannot make up any missed in-class quizzes.
You may not:
You may:
Search the web for solutions to small coding tasks (1–3 lines) which are not the gist of the assignment.
(Even if finding code snippets on the web,
you must type them in yourself from memory, not copy/paste them.
This is to (a) help you process/think about the code you are typing,
and also (b) help keep you from inadvertently copying so much that you’d violate the honor policy.
If you think an exception is reasonable, check with the instructor (perhaps via the message-boards).)
For example, if the assignment is to write a CPU simulation, and happens to involve reading/writing a preferences file, you can certainly search up a sample program which opens a file, reads or writes the words "hello file", and then closes the file (catching any exceptions).
However, if one of the assignment’s problems is to write code which copies one file to another while filtering out all punctuation, up-casing all words, and adding a "#" in front of each numeral you should not search up a program which does all/most of that. (Combining samples that do each of these independently is fine.)
Again, the ultimate requirement is that everything you end up writing should be coming from your own understanding, (not just writing from short-term memory, what somebody else said would work).
If you aren’t sure whether a certain level of help is acceptable, or feel that an exception to these rules is reasonable, stop—don’t give/receive such help until you've clarified it with the instructor. (Starting assignments early enough can give you better opportunity to get help/clarification, should it be needed.)
Class Courtesy
Please refrain from texting during lecture,
and use a computer only for taking notes and looking up material related to lecture
(e.g. looking up how
Other University Resources: Radford has many resources to help you in different ways, including the student counseling services (x5226), and the Harvey Knowledge Center (“HKC”, formerly “LARC”, x7704, radford.edu/hkc ) including access to tutorTrac.
Students seeking academic accommodations under the Americans with Disabilities Act must register with RU's Center for Accessibility Services (CAS) in Russell Hall 301. Qualifying students should meet with me to arrange accommodations. For more information, call the CAS at 540-831-6350.
This page licensed CC-BY 4.0 Ian Barland Page last generated | Please mail any suggestions (incl. typos, broken links) to ibarlandradford.edu |