Computer Science Courses
Semester
specific course desciptions
140. Introduction to Computer Programming.
This course gives students an introduction to programming using
a high-level language, with emphasis on problem solving and algorithm
development. Computer programming skills are enhanced through individual
student projects.
219. Techniques of Computer Science.
An in-depth look at computing and programming using high-level languages.
Topics include advanced programming techniques and efficient algorithms
for the solution of problems on a computer. Students complete a large
programming project. Prerequisite: Computer Science 140 or the equivalent.
220. Computer Organization.
Topics include data representations, digital circuits, the organization
of CPUs, machine language and an introduction to assembly language programming.
Prerequisite: Computer Science 219. Offered spring semester.
289,290. Independent Projects in Computer
Science.
Permission required.
317. Mathematical Logic.
An introduction to modern mathematical logic, including the
most important results in the subject. Topics include propositional
and predicate logic; models, formal deductions and the Gödel Completeness
Theorem; applications to algebra, analysis and number theory; decidability
and the Gödel Incompleteness Theorem. Treatment of the subject
matter is rigorous, but historical and philosophical aspects are
discussed. Prerequisite: Mathematics 280. Also offered as Mathematics
317 and Philosophy 317.
318. Graph Theory.
Graph
theory deals with the study of a finite set of points connected by
lines. Problems in such diverse areas as transportation networks, social
networks and chemical bonds can be formulated and solved by the use
of graph theory. The course includes theory,
algorithms, applications and history. Prerequisite: Mathematics
217 or 280. Also offered as Mathematics 318.
319. Data Structures.
Techniques and algorithms for the organization, representation
and processing of data on the computer. Topics include strings, lists,
stacks, queues, trees and graphs, as well as their applications. Prerequisite:
Computer Science 219. Offered fall semester.
324. Numerical Analysis.
Topics covered include finite differences, interpolation, numerical
integration and differentiation, numerical solution of differential
equations and related subjects. Prerequisites: Mathematics 217. Also
offered as Mathematics 324.
332. Web Programming.
The course will introduce students to the terminology of the
Web and the Hypertext Markup Language (HTML) as well as concepts of distributed
computing including client-side and server-side programming. Prerequisite:
Computer Science 219 or permission of the instructor.
362. Algorithm Analysis.
Students learn techniques and methods for designing, analyzing
and testing the efficiency and performance of computer algorithms.
The course also includes an introduction to the theory of polynomial
reducibility. Prerequisites: Computer Science 319 and Mathematics 280.
364. Programming Languages.
This course consists of two parts: a comparison of various computer
languages and their uses and a study of the concepts and organization
of computer languages. Prerequisite: Computer Science 220 or 319.
370. Systems Programming.
An introduction to computer system design and use. Topics may
include assemblers, interpreters, compilers, loaders, macro-processors
and operating systems. Prerequisite: Computer Science 220.
374. Artificial Intelligence.
This course introduces the concepts and uses of artificial
intelligence. Possible topics include search strategies, natural language
processing, expert systems, neural nets and robotics. Prerequisite:
Computer Science 319.
380. Theory of Computation.
This course covers the basic theoretical underpinnings of computer
organization and programming. Topics include the Chomsky hierarchy of
languages and how to design various classes of automata to recognize
computer languages. Application of mathematical proof techniques to the
study of automata and grammars enhances understanding of both proof and
language. Prerequisite: Computer Science 319 and Mathematics 280. Also
offered as Mathematics 380.
389,390. Independent Projects in Computer
Science.
Permission required.
489. SYE: Senior Project
for Majors.
498. SYE: Senior
Honors Project for Majors
Permission Required
Permission required.