CSCI 361
Programming Language Design and implementation
Course
Description:
Programming languages are a key component of all aspects
of computer science. As with natural languages, our
ability to express ideas is limited by the language
that we use. In this course we start with language concepts
that you think you understand very well, and show you
that they are much more complex than you think. This
includes concepts like variables, loops, arrays, parameters,
and pointers. Not only do we dig deeper into these concepts,
but we look at languages that take very different approaches
than the ones you’ve seen in Java and C++. This
expands your ability to think about how to solve problems
and adds to the set of languages that you can choose.
What makes one programming language different than another? What aspects of languages allow them to be grouped into categories of similar languages? What is the difference between an object-oriented language and a functional language? What kinds of problems are logic-oriented languages best suited to solve? What type of language should you use to write an artificial intelligence application?
These and many other burning questions will be answered in this course. You will experience programming in lesser known languages such as Smalltalk, Snobol, Lisp, and others.
This course is guaranteed to expand your mind and increase your understanding of how computing is done.
Offerings:
Offered spring semester in even numbered years.
Instructor:
This course is usually taught Dr. DeJongh.
Prerequisites:
CSCI 112 or 114, CSCI 235, and CSCI 245. See the department
policy on prerequisites.
Comments from Previous Students:
- "Essentially taught me how to learn new languages. I found that after this course, I could pick up new languages and concepts with much more ease than before."
- "Glad for the exposure to lots of languages."
- "The constantly switching topics made this class interesting."
Catalog
Description:
This course introduces
the basic concepts of imperative and object-oriented
programming languages including control structures,
data aggregates, and procedural abstraction. Scripting
languages will be examined as examples of these principles.
Four Credits Staff Spring Semester