MAURICE L. EGGEN, Ph.D., Associate Professor
THOMAS E. HICKS, Ed.D., Associate Professor
JOHN E. HOWLAND, Ph.D., Professor
AARON H. KONSTAM, Ph.D., Professor
J. PAUL MYERS, JR., Ph.D., Associate Professor
GERALD N. PITTS, Ph.D., Professor; Chair
RONALD E. PRATHER, Ph.D., Caruth Distinguished Professor of Computer Science
The requirements for the degree of Bachelor of Science with a major in
Computer Science are as follows:
I. The common curriculum
II. Departmental requirements:
42 semester hours of computer science including:
A. The undergraduate core:
CSCI 311, CSCI 312, CSCI 314, CSCI 316, CSCI 320, CSCI 324,
CSCI 325, CSCI 364, CSCI 374
B. One course chosen from each of the following areas:
SYSTEMS: CSCI 341, CSCI 342, CSCI 346, CSCI 349
APPLICATIONS: CSCI 351, CSCI 353, CSCI 357, CSCI 358, CSCI 373
THEORY: CSCI 361, CSCI 363, CSCI 365, CSCI 367, CSCI 368
C. Senior Thesis (CSCI 378) or Senior Software Project (CSCI 376).
D. Sufficient computer science electives to total 42 semester hours.
III. Additional requirements include MATH 411 and two of the following
courses: MATH 312, MATH 320, MATH 323, PHIL 310.
IV. ELECTIVES SUFFICIENT TO TOTAL 124 SEMESTER HOURS.
For the liberal arts student, the department offers a minor in
Computer Science. This minor is designed to provide students with entry level
career skills in computer science, as well as prerequisite preparation for
graduate study in applied areas of computing science.
This minor consists of at least 21 hours of Computer Science and at least 7
hours of Mathematics. The Computer Science requirements are: CSCI 311, CSCI
312, CSCI 314, CSCI 316, CSCI 320, and CSCI 325, plus at least one additional
upper division Computer Science elective. The Mathematics requirements are MATH
411 and at least one of MATH 312, MATH 320, MATH 323, or PHIL 310.
For the business oriented student, the department offers a minor in
Management Information Systems. This minor is designed to provide students with
some knowledge of business principles and the necessary background to permit
them, through the use of computer operations, to efficiently manage and
transmit information.
The requirements are as follows:
I. Those courses required for the B.A., B.S., or minor in Business
Administration;
II. CSCI 305, CSCI 311, CSCI 312, CSCI 314, CSCI 325, and one of CSCI 353,
CSCI 357, or CSCI 346.
FULL ACCEPTANCE is granted if the following requirements are met at
the time of application:
1. Completion of CSCI 311, CSCI 312, CSCI 314 and CSCI 316 with grades of C or
better.
2. Completion of MATH 411 with a grade of C or better.
3. Good academic standing at the university.
PROVISIONAL ACCEPTANCE may be granted if it is apparent that the applicant can
meet the requirements for full acceptance by the end of the semester in which
application is made. If provisional acceptance is not removed in the semester
following application, the application will be cancelled. The student may
reapply in a future semester.
TRANSFER STUDENTS will be accepted provisionally pending completion at Trinity
of at least one upper division Computer Science course with a grade of C or
better, and transfer hours equivalent to CSCI 311, CSCI 312, CSCI 314, and CSCI
316.
Requirements:
1. Overall grade point average of at least 3.3.
2. Grade point average of at least 3.3 in Computer Science.
3. Two faculty letters of recommendation.
4. Application for admission to the honors program in the fall semester of the
junior year. Application is made to the chair of the Computer Science
department.
5. Applications must be approved by majority vote of the faculty of the
Computer Science department.
6. Identification of the faculty committee and submission of the thesis
proposal during the spring semester of the junior year. The thesis committee
consists of three Trinity faculty members, two of which must be from Computer
Science. (The third may also be from Computer Science.)
7. Register for CSCI 366H, Honors Reading, during the spring semester of the
junior year.
8. Register for CSCI 379H, Honors Thesis, during the fall semester of the
senior year.
9. Register for CSCI 379H, Honors Thesis, during the spring semester of the
senior year.
10. The requirement of CSCI 376 or CSCI 378 is met for those students
successfully completing the Honors Thesis, CSCI 379H.
11. Students must make formal presentation and defense of the Honors Thesis
during the spring semester of the senior year.
12. If the student successfully completes each of the above requirements, then
the student is a candidate for Honors in Computer Science, and is recommended
to the Vice President for Academic Affairs for graduation with Honors.
13. Successful thesis will be bound and placed in the library. Binding costs
will be paid by the student.
Introduction to computer science topics for students majoring in disciplines
other than computer science. Topics include computer organization, computer
arithmetic, computer circuits, algorithms, data structures, programming
methodology, software engineering, language translation, program execution
time, computer networks, parallel computation, computability and artificial
intelligence. Impact of computer science on modern society.
Prerequisite: None. Must be taken concurrently with CSCI 101L.
An introduction to computers and programming with special emphasis on
applications for nonscientists, including business and data processing.
Introduction to programming in BASIC. Applications packages including
spreadsheet, database and word processing. Computer solution of several
business and data processing applications and interpretation of results.
Prerequisite: None.
An introduction to computers and programming with special emphasis on
applications in the sciences and mathematics. Programming in a high level
programming language. Computer solution of several science and mathematics
applications and interpretation of results. No credit after completion of CSCI
305 or 307.
Prerequisite: None.
An examination of the impact of computer technology on issues of society and
culture. The course will contain three components: an introduction to software
and hardware concepts, an introduction to programming in a high level
programming language, and discussions of the various uses of computers in our
society. The discussions will focus on how these uses have impacted our society
and its values. No credit after completion of CSCI 305 or 306.
Prerequisite: None.
Introduction to the notion of an algorithm. Survey of algorithmic problem
solving principles in relation to computer solutions: divide and conquer,
searching and sorting strategies, recursion, and structured programming. Top-
down
design and analysis of algorithms. Computer organization. Computer programming
solutions to several laboratory exercises. May be taken concurrently with CSCI
314 or CSCI 316.
Prerequisite: None.
Algorithm development, program logic, program design strategies, program
implementation strategies. Program correctness and program verification,
algorithm analysis and computational complexity. User defined structures, data
types, specification requirements, sequential and direct access files, sorting,
searching, and computer organization. Abstract data types including stacks,
queues, and linked lists. Computer programming solutions to several laboratory
exercises. May be taken concurrently with CSCI 314 or CSCI 316.
Prerequisite: CSCI 311 or consent of instructor.
Algebra of sets including mappings, relations and functions. Algebraic
structures including semigroups, groups and propositional logic. Boolean
algebra. Elements of the theory of directed and undirected graphs. Application
of these structures to various areas of computer science. May be taken
concurrently with CSCI 311 and CSCI 312.
Prerequisite: None.
An introduction to functional language programming. Functions and function
composition in a programming language used to solve problems in computer
science. Special emphasis on the use of functional language as a notation.
Laboratory solution of several computational problems in computing science. May
be taken concurrently with CSCI 311 and CSCI 312.
Prerequisite: None.
Laboratory experiments in computer science. Techniques for constructing
experiment software and analysis of experimental data.
Prerequisite: None. Must be taken concurrently with CSCI 301.
Software tools for music applications. Historical development of musical
encoding systems, including DARMS, MUSTRAN, SML, and MIDI. Musical applications
programming. Chronological survey of the uses of computers in music. Common
themes in the development of music programming languages. Examples of the use
of sophisticated software in the development of solutions to elementary musical
analysis tasks.
Prerequisites: Sophomore standing, computer literacy and music literacy.
Computer System Organization. Machine language, symbolic assembly language,
program linkage, segmentation, linkers and loaders. Addressing modes and
instruction formats. Integer arithmetic, character manipulation, bit
manipulation, floating point arithmetic and decimal arithmetic. Macros.
Input/output, virtual memory, interrupts and operating systems. Several
laboratory programming problems.
Prerequisites: CSCI 312, CSCI 316.
Introduction to the numerical algorithms fundamental to scientific computer
work. Elementary error analysis, interpolation, quadrature, linear systems of
equations, and introduction to the numerical solution of ordinary differential
equations. Also listed as Mathematics 324.
Prerequisites: CSCI 311, MATH 411.
Survey of advanced abstract data types, dynamic memory management, lists,
trees, advanced sorting, key tables, graphs and object-
oriented
data types. May be taken concurrently with CSCI 314 or CSCI 316.
Prerequisites: CSCI 312.
Fundamental issues concerning knowledge representation and cognitive processes,
studied by considering the intellectual connections among cognitive psychology,
artificial intelligence, philosophy of mind, linguistics, and neuroscience.
Prerequisite: Sophomore standing.
First-
order
predicate logic and its relationship to the programming process, and how logic
programs can be written and executed. Issues of knowledge representation and
resolution-
based
inference leading to the use of logic programming for the design of expert
systems. Introduction to programming in Prolog.
Prerequisite: A course in logic or consent of instructor.
Introduction to operating systems, batch systems, multiprogramming systems,
multiprocessor systems, input-
output
systems, interrupt handling, language processors, file management systems,
concurrency, teleprocessing systems.
Prerequisite: CSCI 320.
Topics and application laboratories shall be taken from standards, equipment,
interfaces, architectures, transmission alternatives, communications
environment, regulatory issues involved in the design and use of data
communications systems, developments involving the design and use of data
communications systems and networking computers including local area networks,
and major national/international protocols.
Prerequisite: CSCI 320.
The goals of DBMS including data independence, relationships, logical and
physical organizations, schema and subschema. Entity relationship diagrams.
Hierarchical, network and relations models. Data definition and data
manipulation languages. Query languages, relational algebra and relational
calculus. Data normalization techniques, data security integrity and recovery.
Case studies of several existing systems.
Prerequisite: CSCI 325.
The purpose of this course is to update the student on state of the art
artificial intelligence concepts, such as heuristic programming, state-
space
search techniques, and/or graphs for problem solving, game playing techniques,
theorem proving procedures for propositions and first-
order
logic, knowledge representation and examples of knowledge-
based
systems.
Prerequisites: CSCI 320, CSCI 325.
Methods of solution of algebraic and transcendental equations, simultaneous
linear algebraic equations, numerical integration and differentiation, initial
and boundary value problems or ordinary differential equations. (Also listed as
MATH 351.)
Prerequisites: CSCI 312, MATH 336.
Introduction to simulation, discrete simulation models, queuing theory and
stochastic processes. Survey of simulation languages. Simulation methodology
including generation of random numbers, design of simulation experiments and
validation of simulation models.
Prerequisites: CSCI 311 or CSCI 306 and Knowledge of Statistics.
Survey of display devices, display data structures, graphics input, 2D
transformations, windowing, clipping, viewing, 3D transformations, perspective,
depth, hidden line removal. Graphics programming techniques and several
laboratory problems using available graphics devices.
Prerequisites: MATH 411, CSCI 325.
Geometric modeling, algorithms for hidden surface removal, shading models,
rendering, texture mapping, reflectance mapping, ray tracing and radiosity.
Introduction to animation. Several laboratory programming problems using
available graphics devices.
Prerequisite: CSCI 357.
Complexity of algorithms, time and space requirements and trade-
offs.
Searching and sorting, mathematical algorithms, graph and combinatorial
algorithms. Divide and conquer, branch and bound, dynamic programming,
exhaustive search. Limitations, intractability and NP-
completeness,
approximation algorithms.
Prerequisites: CSCI 312 and CSCI 314.
Abstract finite machines and their associated grammars. Emphasis on finite-
state
machines and push-
down
automata: non-
determinism,
minimization. Formal languages with emphasis on regular and context-
free
grammars: Chomsky hierarchy, closure properties, parsing, ambiguity, recursion,
decidability.
Prerequisites: CSCI 314 and Junior standing.
Computer organization. Storage elements, switching elements, addressing
operation formats, data representation and computer arithmetic. Adders,
multipliers, and dividers. Data path and system control. Microprogramming.
Input/output devices. Several laboratory programming problems which illustrate
hardware.
Prerequisite: CSCI 320.
Models of computation including Turing machines, recursive functions, r.e.
grammars, foundational languages. Godel encoding, universal machines, Church's
thesis, unsolvability and undecidability. Computational complexity speed-
up,
intractability and NP-
completeness.
Prerequisites: CSCI 314 and Junior standing.
Introduction to the theory of construction of programming language translators
and compilers. Topics include the structure of compilers, grammars and their
representations, lexical scanners, symbol tables, alternative parsing
techniques, code generation and code optimization.
Prerequisites: CSCI 325 and Junior standing.
An introduction to the syntax and semantics of programming languages. This will
include a study of data structures and control structures, proof of programs, a
comparison of functional and imperative programming languages, parameter
passing, storage allocation schemes and concurrent language features.
Prerequisite: CSCI 320.
The construction of a compiler for a non-
trivial
programming language using the theoretical principles learned in CSCI 367.
Prerequisite: CSCI 367.
Problems involved in development of large software systems. The software life
cycle. Techniques and tools of structured analysis and design. Coupling,
cohesion, morphology and other design guidelines. Design and management of the
software project.
Prerequisite: 21 hours of Computer Science.
Systems design, software testing, software maintenance, legal issues, and
implementation of a significant software project.
Prerequisite: CSCI 374.
A significant research project chosen by the student and completed under the
direction of a thesis advisor (a Computer Science department faculty member).
The purpose of a research project is to introduce the student to research
methods and investigative techniques sufficient to produce research results
which are a recognized contribution to the body of knowledge encompassing a
Computer Science area. Each thesis will be bound with copies being placed in
both the university library and the department.
Prerequisites: Senior level status and acceptance by a thesis advisor.
Credit will vary depending on work done.
Prerequisites: Consent of department chair and instructor.
Topics will vary depending on student interest. May be taken for a maximum of
six (6) semester hours credit.
Prerequisite: Consent of instructor.
Independent study in selected areas in preparation for Honors Thesis. May be
taken up to three hours of credit.
Prerequisites: Consent of instructor and Commission on Honors Studies.
Individual research and scholarly investigation under faculty supervision
leading to the preparation of an Honors Thesis. To be taken only by Senior
Honors students in both terms of their Senior year. Includes participation in
Senior Colloquium where students present reports on their Thesis work.