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 MAJOR

    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

    MINOR IN COMPUTER SCIENCE

    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.

    MINOR IN MANAGEMENT INFORMATION SYSTEMS

    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.

    GUIDELINES FOR ACCEPTANCE OF MAJORS

    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.

    HONORS IN COMPUTER SCIENCE

    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

    1300 Essential Computing Skills

    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.

    1101 Laboratory for Great Ideas in Computer Science

    Laboratory experiments in computer science. Techniques for constructing experiment software and analysis of experimental data.

    Prerequisite: None. Must be taken concurrently with CSCI 1301.

    1301 Great Ideas in Computer Science

    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.

    1302 Introduction to Computing: Business Applications

    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.

    1303 Introduction to Computing for Scientists

    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.

    1304 Computers and Society

    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.

    1320 Principles of Algorithm Design I

    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.

    1321 Principles of Algorithm Design II

    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.

    1323 Discrete Structures

    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.

    2194 Professional/Ethical/Design Seminar

    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.

    2318 Computers in Music

    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.

    2320 Principles of Data Abstraction

    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.

    2321 Principles of Computer Design

    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.

    2322 Principles of Functional Languages

    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.

    2324 Numerical Calculus

    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.

    UPPER DIVISION

    3-90 Directed Study

    Credit will vary depending on work done.

    Prerequisites: Consent of department chair and instructor.

    3-94 Seminar

    Topics will vary depending on student interest. May be taken for a maximum of six (6) semester hours credit.

    Prerequisite: Consent of instructor.

    3-98 Honors Reading

    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.

    3194 Professional/Ethical/Design Seminar

    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.

    3291 Current Topics in Computer Science

    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.

    3320 Principles of Theoretical Computer Science

    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.

    3321 Principles of Software Engineering

    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.

    3342 Computer Networks

    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.

    3343 Database Systems

    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.

    3344 Artificial Intelligence

    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.

    3351 Numerical Analysis

    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.

    3352 Simulation Theory

    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.

    3353 Graphics

    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.

    3361 Analysis of Algorithms

    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.

    3366 Introduction to Parallel Processing

    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.

    3368 Principles of Programming Languages

    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.

    4194 Professional/Ethical/Design Seminar

    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.

    4285 Senior Software Project I

    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.

    4286 Senior Software Project II

    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.

    4295 Senior Thesis

    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.

    4320 Principles of Operating Systems

    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.

    4353 Advanced Graphics

    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.

    4365 Advanced Theoretical Computer Science

    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.

    4398, 4399 Honors Thesis

    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.