CSCI 203 Introduction to Computer Science II. Taught in Python.
CSCI 204 Introduction to Computer Science II. Freshman or sophmore level course.
Introductory data structures
including Lists, Stacks, Queues, and Trees. Basic Big-O worst case analysis.
Searching and sorting.
Taught in Python. This is a project based course. Pre-requirement of CSCI 203 or
Instructor permission. There is a required lab with this course.
CSCI 208 Programming Language Design. Sophmore or Junior level course.
Study of modern programming language paradigms (procedural, functional, logic,
object-oriented). Introduction to the design of programming languages including
syntax, semantics, data types and structures, control structures, and run-time
environments. Students learn a scripting language (Bash), an object oriented
language (C++), a functional language (Haskell), and a logic language (Prolog).
Additionally, students apply the course material to learning one more language
that they select. Pre-requirement of CSCI 205 or
Instructor permission. (Students need to have 2 or more languages already and
we assume Python and Java). There is a required lab with this course.
CSCI 331 Compiler Optimization. Junior or Senior level course. Strict
pre-requirement of CSCI 208 (Programming Languages). Does not assume prior
knowledge of compilers. Basic introduction to compilers. Focus is on
optimization. This is a project based course. Students have some choice which
programming langues they use. This course involves heavy programming,
understanding and editing code written by someone else, problem solving, and
a few presentations on your project. This course does not include a large
writing component and does not have a lab.