Curriculum: Computer Science
The Computer Science curriculum is also traditional, at least in the early courses. The first two courses in the major are taught in Java, which is an excellent language for introducing object-oriented concepts.
The following list of courses represents current or recent course offerings. See the course catalog for updated information.
-
54-001 SELECTED TOPICSMay be repeated with change in topic.
-
54-002 SELECTED TOPICSMay be repeated with change in topic.
-
54-003 SELECTED TOPICSMay be repeated with change in topic.
-
54-004 SELECTED TOPICSMay be repeated with change in topic.
-
54-143 INTRODUCTION TO PROGRAMMINGAn introduction to computer programming in an object-oriented style for practical application. Topics include class definition, basic program constructs, basic data structures, interactive user interfaces and encapsulation. This course does not fulfill the Area One Mathematics requirement. (NS)
-
54-183 COMPUTER SCIENCE IComputer programming in an object-oriented style. Topics include primitive types and operations, assignment, selection, iteration, arrays, classes, methods, recursion, encapsulation, type extension, inheritance and reasoning about programs. Prerequisite: Previous programming with departmental approv...
-
54-191 SEMINAR IN ELEMENTARY SOFTWARE ENGINEERINGProject-based (one credit hour) course emphasizing current tools and methodologies. Students may work in groups on projects chosen in conjunction with the instructor. Prerequisite: Permission of the instructor. This course may be repeated for credit. (NS)
-
54-283 COMPUTER SCIENCE IIA continuation of 54-183 Computer Science I, with an emphasis on abstract data objects such as lists, stacks, queues, trees and graphs. Topics include algorithms for searching, sorting, traversing, inserting and deleting, and reasoning about these algorithms. Prerequisite: Computer Science 54-183 or...
-
54-291 RAPID APPLICATION DEVELOPMENTThis course will develop skills needed for the rapid development of programming solutions to problem specifications. This course (or, prior enrollment in this course) is required for students wishing to attend the South Central Programming Contest. This course may be repeated for credit. May not be ...
-
54-301 SELECTED TOPICSMay be repeated with change in topic. Prerequisite: Permission of instructor.
-
54-302 SELECTED TOPICSMay be repeated with change in topic. Prerequisite: Permission of instructor.
-
54-303 SELECTED TOPICSMay be repeated with change in topic. Prerequisite: Permission of instructor.
-
54-304 SELECTED TOPICSMay be repeated with change in topic. Prerequisite: Permission of instructor.
-
54-383 DISCRETE MATHEMATICSConcepts for modeling discrete phenomena. Topics include: logic, set theory, order theory and lattices, graphs, induction and recurrence relations. Prerequisites: Mathematics 52-254 and Computer Science 54-283, or permission of instructor. Also Mathematics 52-383. (Fall) (NS)
-
54-393 COMPUTER ORGANIZATIONComputer architecture, internal representation of data, assembly language programming, subroutines and parameter passing, design of machine language instruction sets, bus structure, datapath and command interpreter. Prerequisite: Computer Science 54-283 or permission of instructor. (Fall) (NS)
-
54-453 ALGORITHMSAlgorithms for finding paths and spanning trees in graphs, analysis of algorithms for sorting, searching, and merging files, complexity of algorithms, hashing methods. Prerequisite: Computer Science 54-283 or permission of instructor. (Spring) (NS)
-
54-473 PROGRAMMING LANGUAGESPrinciples and practice in the design and implementation of imperative, functional and object-oriented programming languages. Prerequisite: Computer Science 54-393 or permission of instructor. (Fall) (NS)
-
54-513 DATABASE MANAGEMENTLogical and physical organization of data in conventional database systems. Topics include functional dependencies and normal form, relational and other data models, indexing and concurrency control. Prerequisite: Computer Science 54-283 or permission of instructor. (Fall, odd years) (NS)
-
54-523 INTRODUCTION TO NUMERICAL ANALYSISSee Mathematics 52-523. (Fall, odd years) (NS)
-
54-533 FUNCTIONAL PROGRAMMINGIntroduction to functional programming. Topics include functions, lists, types, induction and recursion, pattern matching, infinite lists and trees. A functional programming language such as Lisp, ML or Gofer will be used in the course. There will be a large number of programming projects. Prerequis...
-
54-553 COMPUTER GRAPHICSIntroduction to 2D and 3D graphics. Topics include: display hardware, graphics primitives and data structures, geometric transformations and modeling, 2D display algorithms, 3D viewing, clipping, hidden line and surface removal, illumination and shading. Prerequisite: Mathematics 52-673, Computer Sc...
-
54-573 ARTIFICIAL INTELLIGENCEIntroduction to a functional programming language; study of tree and graph searching, heuristics, knowledge representation schemes, predicate logic, resolution theory, natural language and vision processing and expert systems. Prerequisite: Computer Science 54-283 and 533, or permission of instructo...
-
54-643 COMPUTER SYSTEMSIntroduction to operating systems and computer networks. Process control and scheduling, threads, concurrency, memory management and virtual memory, network protocol layers, packets and routing and network security. Prerequisite: Computer Science 54-393. (Spring) (NS)
-
54-683 THEORY OF COMPUTATIONFinite state systems, finite automata, formal language theory. Context-free grammars, regular expressions, pushdown automata, Turing machines, decidability, switching theory. Prerequisite: Mathematics or Computer Science 52/54-383. (Fall, even years) (NS)
-
54-843 SEMINAR IN SPECIAL TOPICSA limited enrollment seminar not generally covered in other courses. May be repeated for credit as topics vary. Prerequisites: nine hours of 200-level courses or higher and permission of instructor. (NS)
-
54-894 SENIOR SEMINAR IN SOFTWARE ENGINEERINGIntroduction to techniques and theories for the development of large software systems. This course will fulfill the capstone requirement in Computer Science. Topics include: software design and quality, ethics, professional issues, and the study of current software engineering trends, theory and pra...
-
54-901 TUTORIAL
-
54-902 TUTORIAL
-
54-903 TUTORIAL
-
54-904 TUTORIAL
-
54-951 INDEPENDENT STUDYMay be repeated with change in content.
-
54-952 INDEPENDENT STUDYMay be repeated with change in content.
-
54-953 INDEPENDENT STUDYMay be repeated with change in content.
-
54-954 INDEPENDENT STUDYMay be repeated with change in content.
-
54-983 HONORSBy invitation only.



