Resources
This page contains various 331-related resources on where to get help, UMBC's computing environments, and programming language content
Where to Get Help
- Course Staff — You are welcome to stop by any staff member's office hours.
-
Piazza Project Forums —
We will be using the Piazza
discussion forum site for providing help with projects.
This will replace the Blackboard discussion forums that we have used
in the past. In the next few days, we will be enrolling all of you
into the system--more information forthcoming.
Forums are available for both general topics and specific projects. Students are encouraged to ask and answer questions. This is your forum and a chance to help each other. It will be monitored periodically by one or more of the instructors. This is simply to make sure of things such as incorrect information being posted, "too much help" (e.g. code) being given, or a point that everyone seems to be misinterpreting or not understanding. This is your chance to help each other out, with a little help from instructors. Please make sure that you o not use the forums as the place to ask questions that you should be going to your instructor, TA, or a CS Help Center tutor for. Also note that we wish to keep the Piazza forums focused on technical matters–please refer to the syllabus for more on our Piazza policy.
-
Computer Science Help
Center — first-come first-serve tutoring for select CMSC
courses (including CMSC 202). The tutor calendar for the CS Help
Center is located here.
[NOTE: we are not sure yet whether the Help Center will be open this term] - UMBC Division of Information Technology (DoIT) — help with your GL account
- Linux User's Group (LUG) — the LUG typically has an installfest each semester to assist in installing Linux and maintains an active mailing list where people ask & answer Linux questions.
Programming Resources
- Help with the submit command
- Running the Scheme interpreter on GL — The Scheme interpreter on GL is called mzscheme.
Downloads
- Racket — the version os the Scheme programming language system we will use
- Python — get the latest version of the Python interpreter
- WinSCP — transfer files from your Windows PC/laptop to the GL severs
- TeraTerm Pro with SSH for Windows — a terminal emulator to connect your Windows PC/laptop to the GL servers
- PuTTY — another terminal emulator to connect your Windows PC/laptop to the GL severs
Remotely Accessing the GL Servers
- Working from Home — a talk presented by Dan Hood (Fall 2008)
UNIX/Linux Resources
- CMSC 121: Introduction to Unix webpage (Fall 2004)
- Basic UNIX commands
- Detailed UNIX commands
- Basic (X)Emacs commands
- Detailed (X)Emacs commands
- emacs reference card
- Complete emacs manual
- Help with pine
- Linux Shell Scripting Tutorial
Blogs
- Lambda the ultimate -- the programming languages weblog
- Planet Lisp -- a meta blog about Lisp
Papers
- The Paradigms of Programming, Robert W FLoyd. CACM v22:8, August 1979, pp 455-460. This classic paper was written by Floyd on winning the 1978 Turing Award.
- What is ObjectOriented Programming? (1991 revised version) Bjarne Stroustrup AT&T Bell Laboratories Murray Hill, New Jersey 07974
- On the Notion of Inheritance, ANTERO TAIVALSAARI, Nokia Research Center
- Logic Programming and Constraint Logic Programming, JACQUES COHEN Brandeis University
- On growing a language, Guy Steele, OOPSLA 98 talk.
- I Have a Feeling We're Not In Emerald City Anymore, Henry G. Baker, SigPLAN Notices 4, 1997.
- A Laboratory For Teaching Object-Oriented Thinking, Kent Beck and Ward Cunningham, OOPSLA, 1989.
- Why Functional Programming Matters, John Hughes, 1984
- Luca Cardelli, Peter Wegner: On Understanding Types, Data Abstraction, and Polymorphism. ACM Computing Surveys, Volume 17, Number 4, December 1985, 471-522
- Paul Graham, Beating the Averages, This article is based on a talk given at the Franz Developer Symposium in Cambridge, MA,on March 25,2001.
- Edsger W. Dijkstra, Go To Statement Considered Harmful, Communications of the ACM, Vol. 11, No. 3, March 1968, pp. 147-148.
- How to pick a programming language.
Origiinally a post to comp.lang.python
- ...for more papers, brose the papers directory
General
General Programming Languages
- Catalog of Free Compilers and Interpreters
- CMU's Programming Language Research page
- The Language Guide
- Hello World Programs
- 99 Bottles of Beer
- hello world in every known computer language
- Programming Language References
- LEO - Link Everything Online,Software Archives
- Computing Languages List
- Review of existing Languages
- Computing Review Classification System: Language Classification
- cui - Free Compilers and Interpreters
- CUI - The Language List
- Programming Language Research
- Programming and Computational Languages -- A Subject Catalogue
- Programming Language Links
- Undergraduate Courses About Programming Languages
- Author Index for Textbooks About Programming Languages
- The DARKSTAR Home Page: Info on many programming Languages, Shareware, and lots more
- CUI - The Language List
- Selecting a Programming Language
- Lee's Law of Computer Science
- Language Paradigms
- Programming Language Newsgroups
- THE PROGRAMMER'S QUICK GUIDE TO THE LANGUAGES
- Computer Programming Languages.
Language Description Forms
- ebnf
- EBNF
- BNF
- What is BNF notation?
- The BNF Web Club
- Language Description
- Theory and practice of computer programming
Recursive-Descent Parsers
- Creating a Recursive-Descent Parser
- A Recursive Descent Parser (in C)
- Lexical Analysis
- Syntax Analysis
- Demonstration of Parsing Algorithms
Java
- The Java Tutorial. A good introduction to Java.
- The Java Language Specification. A formal specification of the language.
- Thinking in Java,
Bruce Eckel, 2nd edition Published by Prentice-Hall, June 2000
We have a local copy at UMBC including the text, the code examples and also the zip files of both - Getting started with java. a good roadmap from Sun
- Essentials of the JavaTMProgramming Language: A Hands-On Guide, Each chapter defines a Java platform feature and provides easy-to-understand instruction on writing simple programs in many categories. Part two covers advanced topics.
- On To Java, Patrick Winston, Draft of the Third Edition.
- Common Java Mistakes
- BlueJ is an (open source) integrated Java environment specifically designed for introductory teaching.
Javascript
Functional Programming
- comp.lang.functional FAQ
- Lambda Calculus, L. Allison
Lisp
Humor
- The Parable of the Languages -- "If programming languages could speak, really speak, not just crunch bytes and stream bits, they would have much to say that is both wise and profound."
- The Evolution of a Programmer