![]() |
![]() |
|
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. Note that Friday's hour is zoom-only. Any changes to these hours will be announced on the D2L discussion board.
Mon | 11:30–13:00 | bit.ly/ibarland-zoom ONLY | |
Tue | 15:30–16:30 | Da230 | |
Wed | 14:00–15:15 | Da230 | |
Fri | 10:30–11:45 | Da230 | |
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 would require giving away part the answer (e.g. part of your solution), just email me; please include “CS380” 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. Here are 9 sample puzzlers. | ||||
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% |
Final Exam: 2025-May-06 (Tue) 10:15, as per the final exam schedule. In case of inclement weather, the university may postpone the exam to Friday.
Homeworks may be spot-graded -- some problems graded in detail, others with a cursory ✓+ / ✓ / ✓- / 0. Some problems might be auto-graded by a script (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 including helper functions should have a purpose-statement, signature, and unit tests. A program which does not compile/run might summarily get 0 points for running. Beware making a last-moment change right before submitting, without verifying that it still passes your unit tests.
Late Policy: 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, quaranting, or emotional crisis without advance notice, contact the professor as soon as possible to arrange to catch up on the work, and do not access any posted solutions or discuss with others if you are planning to ask to submit late work. Include a pledge statement to that effect at the top of any submitted-late work.
You may not:
You may:
Search the web/AI for solutions to small coding tasks (1–3 lines)
which are not a main 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 D2L discussion board).)
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 checking texts during lecture, and use a computer only for taking notes and looking up material related to or inspired by lecture (e.g. look up how foldl differs from foldr). Please do not: text, browse other sites, check social media, etc.. Other students can be distracted by your screen, and your inattentiveness diminishes the class experience overall.
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 ibarland ![]() |