Hope College Computer Science students at work View of VanZoeren Hall    
hope college > academic departments > computer science    

 
Current Students <
Prospective Students <
Alumni <
Courses <
Research <
Faculty <
 

CSCI 361

Programming Language Paradigms

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 fall semester in even numbered years.

Instructor:
This course is usually taught by all computer science faculty.

Prerequisites:
CSCI 112 or 114, CSCI 235, CSCI 241 and CSCI 260. 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. Prerequisites: Computer Science 112 or 114, 235, 241, and 260. Offered odd years.
Four Credits Staff Fall Semester