COMPUTER SCIENCE (CSCI) David L. Andrews * PROFESSORS BERGHEL, BREWER, STARLING * ASSOCIATE PROFESSORS FULLER, LI * ADJUNCT ASSOCIATE PROFESSORS ANDREWS, BERLEANT * ASSISTANT PROFESSORS APON, BADIA, BLANK * ADJUNCT ASSISTANT PROFESSORS SIMONSON, THORNTON * INSTRUCTORS WIGGINS, HOLMES Requirements for a Major in Computer Science, Bachelor of Science degree: At least 45 hours in computer science including CSCI 1023/1021L or 1023H/1021M, 1033/1031L, 2003, 2013, 2023, 3303, 3503, 3603, 4003, 4203, 4991; twelve hours of electives (at least nine at the senior level) to be selected from CSCI 390V, 4013, 4103, 4113, 4403, 4413, 4603, 4613, 490V, 4912H, 498V; CSEG 3743, 2533 (can substitute for CSCI 2003 but both cannot be taken for credit), 4513 (can substitute for CSCI 4203 but both cannot be taken for credit) 4933, 4563 (can substitute for CSCI 4103 but both cannot be taken for credit); and ELEG 3923, 4683, 4943; MATH 3353. The mathematics, statistics, and science requirements for the Bachelor of Science degree in computer science are: MATH 2103, 2554, 2564, 3083, 3103 and STAT 4003/4001L or STAT 3013 and a two-course sequence in a laboratory science. The courses used to satisfy the science requirement must be chosen from the natural sciences and must be approved by the Department; only courses which may be used to satisfy the requirements for a B.S. degree in the department offering the course will be approved. Requirements for a Major in Computer Science, Bachelor of Arts Degree: At least 30 hours in computer science including CSCI 1023/1021L (or 1023H/1021M), 1033/1031L, 2013, 2023, 3503, 4991 plus twelve hours of electives to be selected from a list of CSCI courses numbered 3000 or higher. The mathematics requirements for the degree are MATH 2043, 2103, 3103. Writing Requirement: The Fulbright College research paper requirement for either degree program may be fulfilled in CSCI 3503. Requirements for Departmental Honors in Computer Science: The Departmental Honors Program in Computer Science is designed for the superior student and is intended to help the student develop a more comprehensive view of the nature of computer science. The program provides a vehicle for the recognition of the achievements of work beyond the usual course of study. Acceptable performance in the program will earn the student the distinction "Computer Science Scholar Cum Laude" at graduation. Higher degree distinctions are recommended only in truly exceptional cases and are based upon the candidate's whole program of honors studies. The Department considers the following requirements as necessary for graduation with honors: (1) The candidate must satisfy the requirements set forth by the Honors Council, and (2) A student must obtain at least a 3.50 grade-point average in the required computer science courses for the chosen degree program. In addition, a grade of "D" or "F" in any of the departmental offerings disqualifies a student for honors in computer science. Candidates must take two semesters of honors seminar, CSCI 4912H, in their senior year. This course will require an acceptable paper and will carry two hours of credit per semester. Requirements for a Minor in Computer Science: CSCI 1023/1021L or 1023H/1021M, 1033/1031L, 2013, 2023 and either CSCI 2003 or 3503. A student should notify the Depart-ment of his or her intention to minor. For requirements for the M.S. degree in computer science, see the Graduate School Catalog. COMPUTER SCI (CSCI) COURSES: CSCI1003 Survey of Computer Concepts (FA, SP, SU) Vocabulary of computers, covering terminology and concepts of large and small computers. Uses of computers in science, business, and government. Introduction to use of a computer, but students wishing to learn programming language should take CSCI 1023/1021L. Credit will not be given for both this course and CSCI 1012. CSCI1012 College Computing Skills (FA, SP, SU) Introduction to the computer; basic computing skills including operating systems, word processing, spreadsheet and data base management applications; Internet applications including electronic mail, remote computing via Telnet, file transfer via ftp, World Wide Web navigation and publication. No prior computing experience necessary. CSCI1023 Programming I (FA, SP) Teaches how to design, implement, and document computer programs using techniques of good programming style. Pre- or Corequisite: CSCI 1021L. CSCI1023H Honors Programming I (FA) This course is taken instead of CSCI 1023 by honor students. Introduction to computer languages, information structures, and the solution of numerical and non-numerical problems using a computer. Pre- or Corequisite: CSCI 1021M. CSCI1021L Programming I Laboratory (FA, SP) Laboratory exercises appropriate to Programming I. Pre- or Corequisite: CSCI 1023 or CSCI 1023H. CSCI1021M Honors Programming I Laboratory (FA) Laboratory exercises appropriate to Programming I, Honors. Pre- or Corequisite: CSCI 1023H. CSCI1033 Programming II (FA, SP) Continuation of CSCI 1023. Sorting and searching, pointers and linked lists, files, object-oriented programming, units and program design, recursive programming. Pre- or Corequisite: CSCI 1031L. Prerequisite: CSCI 1023 and CSCI 1021L (or CSCI 1021M). CSCI1031L Programming II Laboratory (FA, SP) Laboratory exercises appropriate to Programming II. Pre- or Corequisite: CSCI 1033. CSCI2003 Assembler Language Programming (SP, SU) Study of the connection between hardware and machine language and between assembler and high-level languages. Topics include: binary and hexadecimal number systems and information representation; assembling, linking, loading and execution; DOS and BIOS; addressing schemes, macros, subroutines, conditional assembly, multitasking, and interrupts. (Same as CSEG 2533) CSCI2013 Foundations of Computer Science I (FA, SP) The mechanization of abstraction; interaction, induction, and recursion; analysis of run-time performance; data models; the tree data model, the list data model, the set data model. Pre- or Corequisite: MATH 2103. Prerequisite: CSCI 1023 and CSCI 1021L. CSCI2023 Foundations of Computer Science II (FA, SP) Data models: the relational data model, the graph data model; patterns, automata, and regular expressions; recursive description of patterns, propositional logic, using logic to design computer components, predicate logic. Prerequisite: CSCI 2013. CSCI2812 Introduction to Internet/World Wide Web (FA) Introduction to Internet and World Wide Web tools and resources, including Web browsers, robots and search engines, multimedia authoring systems, electronic publishing systems, virtual reality systems, network- compatible CD-ROMs, network telecommunication and security systems, digital watermarking, Web censors, internet authoring and programming languages. Corequisite: CSCI 2811L. Prerequisite: CSCI 1012 or equivalent computer experience. CSCI2811L Introduction to Internet/World Wide Web Laboratory (FA) Laboratory to accompany CSCI 2812. Students develop practical skills in, and learn to apply industry-wide standards and practices for, Web page design and layout, electronic publishing, network communications, cybermedia authoring systems, and such bandwidth-limiting enhancements as animation and applets. Corequisite: CSCI 2812. CSCI3303 Introduction to Computer Organization (SP) Computer organization and architecture; assembly language implementation; parallel and distributed architectures. Prerequisite: CSCI 2023. CSCI3412 Internet Programming (SP) HTML authoring to IETF and non-IETF standards, use of environment and SSI variables, CGI-Bin programming concepts with both scripting languages and interpreted and compiled languages, creating cybermedia documents, advanced form applications, search/index utilities, Web databases. Course presumes programming proficiency in one network language: Basic, C, C++, Perl. Corequisite: CSCI 3411L. Prerequisite: CSCI 2023. CSCI3411L Internet Programming Laboratory (SP) Lab will help student develop practical skills in , and learn to apply industry-wide standards and practices for, Web page design and layout, electronic publishing, network communications, cybermedia authoring systems, and such bandwidth-limiting enhancements as animation, applets, etc. Course presumes programming proficiency in one network language: Basic, C, C++, Perl. Corequisite: CSCI 3412. Prerequisite: CSCI 2023. CSCI3503 Introduction to Programming Languages (SP) Comparison of the structure, features, compile and run-time characteristics of LISP, SNOBOL4, PASCAL, PL/1, FORTRAN, ALGOL, and APL. Syntax of programming languages, programming language structures, control structures, operators and operations, and language extensibility. The research paper in this class may fulfill the Fulbright College research paper requirement for computer science majors. PREREQUISITE: CSCI 2023 CSCI3603 Artificial Intelligence (FA) Representation of information and knowledge search strategies and heuristics for problem solution. Concepts of computer vision and natural language understanding. Current work in robotics, medicine, psychology. Introduction to Al languages (SAIL, LISP, DENDRAL). Prerequisite: CSCI 2013. CSCI390V Topics in Computer Science (1-6) (IR) Topics not offered in depth in other computer science courses. Prerequisite: junior standing. CSCI3923H Honors Colloquium (IR) Covers a special topic or issue, offered as part of the Honors Program. May be repeated. Prerequisite: honors candidacy (not restricted to candidacy in computer science). CSCI4003 Software Design and Development (FA) Top-down design of systems including structured programming techniques, stepwise refinements, segmentation of programs. Iterative enhancement, organization, and management of large software projects whose methods include milestones, estimation of progress, chief programmer teams, program libraries and documentation. Prerequisite: CSCI 3503 and senior standing in computer science. CSCI4103 Database Management Systems (IR) What a database management system is; different data models used to structure the logical view of the database; relational, hierarchical, and network. Implementation techniques for database systems: concurrency control, rollback and recovery, integrity and consistency, and view implementation. Prerequisite: CSCI 2023. CSCI4203 Operating Systems (SP) Structure, design, and implementation of operating systems. Topics include: Real and virtual memory management, process scheduling, multiprogramming, multiprocessing, and concurrent/parallel programming, deadlock, interrupt processing, disk scheduling, performance evaluation, security, and specific OS examples. (Same as CSEG 4513) Prerequisite: CSCI 2003 or CSEG 2533 and senior standing. CSCI4403 Computer Networks (IR) The Internationals Standards Organization layered model; network topology; public and proprietary networks. Prerequisite: CSCI 2013 and CSCI 3303. CSCI4413 Concurrent Computing (IR) Programming concurrent processes; computer interconnection network topologies; loosely coupled and tightly coupled paralleled computer architectures; designing algorithms for concurrency; distributed computer architectures. Prerequisite: senior standing in computer science or engineering. CSCI4513 Intelligent Robot Control (IR) Examines software issues surrounding the creation and control of autonomous robots. Techniques include: genetic programming, artificial neural networks, reinforcement learning, and symbolic methods. Programs are run in simulation and on actual robotic controllers. Topics discussed include visual processing, spatial mapping, and learning. Prerequisite: CSCI 3603. CSCI490V Topics in Computer Science (1-6) (IR) Current research topics, state of the art, or advanced methodology in one of the major computer science areas, programming languages, hardware and operating systems, theoretical aspects of computer science, artificial intelligence, and database design. May be repeated. CSCI4912H Honors Seminar (IR) Topics for students in the honors program. May be repeated for 4 hours. Prerequisite: acceptance into the honors program and senior standing. CSCI498V Senior Thesis (1-6) (IR) CSCI4991 Computer Science Review (FA, SP) A course to review and appraise the knowledge of the fundamental concepts of computer science. A standardized, comprehensive examination is administered at the end of the course. Prerequisite: senior standing with 18 semester credit hours of graduation. CSCI5003 Advanced Programming Languages (SP) Abstraction, proof of correctness, functional languages, concurrent programming, exception handling, dataflow and object oriented programming, denotational semantics. Prerequisite: graduate standing. CSCI5023 Architecture of Computer Systems (FA) An advanced study of both classical and recent computer hardware and software systems. Prerequisite: CSCI 3303 and CSCI 4203. CSCI5033 Design and Analysis of Algorithms (SP) Design of computer algorithms, with primary emphasis on the development of efficient implementation. Prerequisite: graduate standing. CSCI5043 Artificial Intelligence (FA) Provides students with an introduction to the major subjects and techniques of artificial intelligence. Topics include: machine learning, computer vision, natural language understanding, and AI languages. (Same as CSEG 5003, ELEG 5103) Prerequisite: CSEG 3603 and graduate standing. CSCI5123 Databased Management systems (IR) This course is an introduction to database systems for graduate students with no background on databases. We cover data modeling, basic concepts of the relational model, relational languages(algebra, SQL), databased design and database implementation. Prerequisite: CSCI 2023 and graduate standing. CSCI5203 Advanced Database Systems (IR) Data and storage hierarchies, database models, user language designs, database manipulations. Prerequisite: CSCI 2013 and graduate standing. CSCI5233 Principles of Compiler Construction (IR) Lexical analysis, parsing, symbol table construction, intermediate code generation, run-time simulation. Prerequisite: graduate standing. CSCI5243 Formal Languages (IR) An advanced continuation of CSCI 4603. Prerequisite: CSCI 4603 and graduate standing. CSCI5263 Computational Complexity (IR) Turing machines, recursion theory and computability, complexity measures, NP-completeness, analysis on NP-complete problems, pseudo-polynomial and approximation. algorithms. Prerequisite: graduate standing. CSCI5283 Graph and Combinatoric Algorithms (IR) A study of algorithms for graphs and combinatorics with special attention to computer implementation and runtime efficiency. Prerequisites: Math 2103 and a programming language. CSCI5303 Parallel Programming (IR) An analysis of parallel computer systems with respect to software engineering. Practical programming experience on pipelined, array, and multi-processor computers. Credit can be earned in only one of these three courses. CSCI 5303 or CSEG 5303 or ELEG 5913. (Same as CSEG 5303, ELEG 5913) Prerequisite: working knowledge of 'C' language and CSEG 4513 or equivalent. CSCI5313 Advanced Operating Systems (IR) Concurrent processes and process communication; mutual exclusion and synchronization principles; kernel philosophy; resource allocation and deadlock; case studies of specific operating systems. Prerequisite: CSCI 4203 and graduate standing. CSCI5513 Intelligent Robot Control (IR) This course is designed to examine software issues surrounding the creation and control of autonomous robots. Techniques include: genetic programming, artificial neural networks, reinforcement learning, and symbolic methods. Programs are run in simulation and on actual robotic controllers. Topic discussed include visual processing, spatial mapping, and learning. Prerequisite: graduate standing CSCI5713 Multimedia Systems Design (IR) Overview of digital unified multimedia. Programming methodology involved in integration of all forms of digitized information (e.g., text, sound, graphics, animation, and process control) in a single computer-based interactive environment. CSCI5723 Client-Server Computing (IR) Distributed computing paradigms: client-server, peer-to-peer, nomadic; client and server-side components, communications interface technology, interprocess- communications, development hardware and software. Prerequisite: graduate standing. CSCI5733 Information Agency (FA, SP, SU) The study of software agents and their deployment on the internet: precursors to agents - viruses and worms, origins of software agents, delegate vs. representative agents, agency of the Internet and Web, operational guidelines for agents, HTTP, transaction security, MUD agency, intelligent agency, applications of agents: indexers, resource managers, search utilities, commercial applications. CSCI590V Advanced Topics in Computer Science (1-3) (IR) Topics not covered in depth in other courses. Prerequisite: graduate standing. CSCI5953 Real-time Systems (FA, SP, SU) A study of real-time system design. The development of real-time systems will be examined from the standpoint of academia, government, and industry. Scheduling, operating systems, and architecture considerations are among other topics to be covered. (Same as CSEG 5953) CSCI610V Master's Thesis (1-6) (FA, SP, SU) CSCI620V Research in Computer Science (1-18) (IR) Prerequisite: graduate standing. CSCI690V Graduate Seminar (1-6) (IR) Concentrated study in selected areas of computer science research. May be repeated for 12 hours. Prerequisite: advanced graduate standing CSCI700V Doctoral Dissertation (1-18) (FA, SP, SU) May be repeated for 5 hours.
|