Information about

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:

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