Some Undergraduate Courses

A more complete and up-to-date version is available from the Undergraduate>Course Synopses section of this site.


Introduction to Computers and Their Applications (3)
Not for major credit. Students planning further study in CS should take 01:198:111.
A general survey about what computers are and how they are used, including an introduction to computer programming. 


Introduction to Computer Science (4)
An intensive introduction to computer science. Writing, debugging, and analyzing programs. Algorithms for sorting and searching. Introduction to data structures. For students in science, mathematics, and engineering.


Data Structures (4)
Prerequisite: 01:198:111.
Queues, stacks, trees, lists, graphs, and recursion; sorting and searching; comparison of algorithms.


Introduction to Discrete Structures I (4)
Prerequisites: 01:198:111 and CALC.
Sets, propositional and predicate logic, relations and their properties, and definitions and proofs by induction with applications to the analysis of loops of programs.


Introduction to Discrete Structures II (4)
Prerequisites: 01:198:205.
Credit will not be given for both 01:198:206 and 01:640:477.

Counting (binomial coefficients, combinations), methods of finding and solving recurrence relations, discrete probability, regular expressions and finite automata, basic graph theory.


Computer Architecture and Assembly Language (4)
Prerequisite: 01:198:112. Credit not given for both this course and 14:330:337.
The levels of organization in digital computer systems; assembly language programming techniques; comparative machine architectures; assemblers, loaders, and operating systems. Programming assignments in assembly language.


Numerical Problems and Computer Programming (4)
Prerequisites: CALC2 or the equivalent.
An introductory numerical analysis course similar to 01:198:323, but designed for nonmajors. FORTRAN taught in recitation.


Introduction to Information Systems (4)
Prerequisite: 01:198:110 or 111.
Not for Major credit. Introduction to databases and file structures, and to network access tools for information storage and retrieva.


Principles of Programming Languages (4)
Prerequisites: 01:198:112, 205.
Syntax, semantics, names and values, control structures, data types, procedures and parameters, scope rules; procedural, functional, pnkect-oriented and logic-programming paradigms.


Numerical Analysis and Computing (4)
Prerequisites: 01:198:111, CALC2, and 01:640:250.
Credit will not be given for both 01:198:323 and 01:640:373.
Approximation, interpolation, numerical differentiation, integration; numerical solution of nonlinear equations, linear algebraic systems, and ordinary differential equations.


Numerical Methods (4)
Prerequisites: 01:198:323 or 01:640:373.
Credit will not be given for both 01:198:324 and 01:640:374.
Computational methods for linear algebraic systems, eigenvalues and eigenvectors, approximation of functions, splines; numerical solution of initial and boundary value problems for differential equations.


Principles of Database Management Systems (4)
Prerequisites: 01:198:112 and 01:640:205
Provides an introduction to the concepts and design principles used in database management systems.


Design and Analysis of Computer Algorithms (4)
Prerequisites: 01:198:112 and 01:198:206.
Study of algorithms. Techniques for efficiency improvement. Analysis of complexity and validity for sorting (internal, external), shortest path, spanning tree, cut points, connected components, and pattern matching. NP completeness.


Internet Technology (4)
Prerequisites: 01:198:211
Provides a practical understanding of computer networks with respect to system architectures, protocols, and client-server interaction. These objectives are accomplished through extensive laboratory exercises.


Seminar in Computers and Society (3)
Prerequisites: At least one computer science course and one course in sociology, political science, anthropology, or philosophy.
Study and discussion of the impact of computers on man and society. For all students interested in exploring the social consequence of computer developments.