
MAURICE 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, 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 Principles:
CSCI 1320, 1321, 2320, 2321, 2322, 3320, 3321, 4320
B. Additional Requirement:
CSCI 1323
C. Professional/Ethical/Design Seminar (3 hours)
D. Senior Software I, CSCI 4285 and Senior Software II, CSCI 4286; or Senior
Software I, CSCI 4285 and Senior Thesis, CSCI 4295; or Honors Reading, CSCI
3398 and Honors Thesis, CSCI 4398 and 4399
E. Sufficient computer science electives to total 42 semester hours
III. Additional requirements include MATH 1311 and two of the following
courses:
MATH 1312, 1320, 2324, PHIL 2340, CSCI 2324
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 6 hours of Mathematics. The Computer
Science requirements are CSCI 1320, 1321, 1323, 2322, and 2320, plus at least
three additional upper division Computer Science electives. The Mathematics
requirements are MATH 1311 and at least one of MATH 1312, 1320, 2324, PHIL
2340, or CSCI 2324.
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 1302, 1320, 1321, 1323, 2320, and one of CSCI 3352, 3353, or 3343.
FULL ACCEPTANCE is granted if the following requirements are met at the time of
application:
1. Completion of CSCI 1320, 1321, 1323 and 2322 with grades of C or better.
2. Completion of MATH 1311 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 canceled. 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 1320, 1321, 1323, and 2322.
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 3398, Honors Reading, during the spring semester of the
junior year. Note: Only 3398 may be used as a Computer Science Major Elective,
counting toward the required 42 hours.
8. Register for CSCI 4398, Honors Thesis, during the fall semester of the
senior year. Note: 4398 is required in addition to the 42-hour requirement.
9. Register for CSCI 4399, Honors Thesis, during the spring semester of the
senior year. Note: 4399 is required in addition to the 42-hour requirement.
10. The requirement of CSCI 4286 is met for those students successfully
completing the Honors Thesis, CSCI 4398 and 4399.
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.
LOWER DIVISION
An introduction to computer skills. Computing hardware, software, files and formats. Text
processing. Numbers and quantitative analysis. Information structure and retrieval. Graphics
and visualization. Communication, networking and the World Wide Web. Computer ethics,
privacy and legal use of software and data. Solution of several problems illustrating
each of these skill areas.
No prerequisites.
Laboratory experiments in computer science. Techniques for constructing
experiment software and analysis of experimental data.
Prerequisite: None. Must be taken concurrently with CSCI 1301.
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 1101.
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. No
credit after completion of CSCI 1303 or 1304.
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
1302 or 1304.
Prerequisite: None.
An examination of the impact of computer technology on issues of society and
culture. The course will contain several components: an introduction to computing (software
and hardware concepts); an introduction to problem-solving using one or more high-level languages /
software applications to include information retrieval and processing (numeric, text, and graphics);
computer communications; and discussions of the uses and ethical issues
surrounding computers in our society.
No credit after completion of CSCI 1300, 1302, or 1303.
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 1323 or 2322.
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 1323 or 2322.
Prerequisite: CSCI 1320 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 1320 and CSCI 1321.
Prerequisite: None.
Emphasis changes each semester. Topics include professional concerns (legal
issues including software licensing, warranties, patents, copyrights, etc.) and
history of the field, ethical issues in computing, introduction to large-
scale
design through examples of good versus bad design.
Prerequisite: Consent of instructor.
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.
Abstract data types and their implementation in an object-
oriented
environment. Axiomatic systems describing the classical computer science data
structures: stacks, queues, lists, trees, graphs, and the like. Analysis of the
computational complexity of alternative implementation strategies in the
context of the typical algorithmic applications.
Prerequisite: CSCI 1321.
A study of computer organization and design including emphasis on logical
design, the role of performance, the structure of instructions, computer
arithmetic, processor control and methods of performance enhancement. Some
attention will also be given to assembly programming.
Prerequisite: CSCI 1321.
An introduction to functional programming. Functional composition, recursion
and iteration. Procedure and data abstraction using functions. Managing state,
streams, delayed evaluation and continuations. Using functional languages as an
analytic notation for reasoning about programs. Solution of several laboratory
problems.
Prerequisite: None; may be taken concurrently with CSCI 1320 or 1321.
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 MATH 2324.)
Prerequisites: CSCI 1320, MATH 1311.
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.
Emphasis changes each semester. Topics include professional concerns (legal
issues including software licensing, warranties, patents, copyrights, etc.) and
history of the field, ethical issues in computing, introduction to large-
scale
design through examples of good versus bad design.
Prerequisite: CSCI 2194 or consent of instructor.
New developments in the field of computer science, beyond the scope of standard
courses, of interest to faculty and students. May be taken more than once, as
long as course content changes.
Prerequisite: CSCI 2320; others determined by course content.
Core topics from finite Automata, languages and the theory of computation. The
Chomsky hierarchy, abstract machines and their associated grammars. Models of
computation (e.g., Turing machines), Church's thesis, unsolvability and
undecidability. Computational complexity, intractability and NP-
completeness.
Prerequisites: CSCI 2320, 1323, and junior standing.
Issues involved in developing large-
scale
software systems. Models for the software lifecycle; techniques and tools of
analysis, design, programming, testing, debugging, and maintenance. May include
formal methods, CASE, expert systems, case-
studies.
Prerequisites: CSCI 2320, 1323, and junior standing.
Local area networks, high-
speed
networks and bridges. Wide area networks and internetworking. Network protocols
including OSI protocols. Network security, reliability and performance.
Laboratory experience with one or more network protocols.
Prerequisite: CSCI 2320.
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 2320.
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 1323, 2320.
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 3351.)
Prerequisites: CSCI 1321, MATH 2336.
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 1320 or 1303 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 1311, CSCI 2320.
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 1321 and 1323.
An introduction to parallel processing with particular emphasis on algorithm
development. Comparison between sequential and parallel algorithm development.
Survey of hardware and software for parallel processing. Comparison of
symmetrix multiprocessors and parallel processors. Discussion of architectures
and mappings of virtual to physical machines. Models of parallel computation
including parallel random access machines, circuits and networks. Students will
be expected to implement several projects in a suitable parallel programming
environment.
Prerequisites: CSCI 2320 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 2320.
Emphasis changes each semester. Topics include professional concerns (legal
issues including software licensing, warranties, patents, copyrights, etc.) and
history of the field, ethical issues in computing, introduction to large-
scale
design through examples of good versus bad design.
Prerequisite: CSCI 3194 or consent of instructor.
The analysis and design of an actual large scale software system. Application
of the analysis and design tools within the software life cycle presented in
CSCI 3321 (Software Engineering). Students work in teams under direct
supervision of the faculty.
Prerequisites: 21 hours of Computer Science, including CSCI 3321.
The implementation, testing and maintenance of the large scale software systems
designed in CSCI 4285. Students working in teams under direct supervision of
faculty implement and demonstrate the deliverable software package.
Prerequisite: CSCI 4285.
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.
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 2321.
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 3353.
Advanced topics in theory. Closure properties, ambiguity, contact-
sensitive
and recursively enumerable languages, alternate models of computation, non-
determinism,
decidability, Ackermann's function, computational complexity speed-
up.
Prerequisite: CSCI 3320.
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.