Graduate Courses in Computer Science (CSCI)
5191 SEMINAR IN APPLIED COMPUTING Investigation of current development in applied computing by attending and giving presentations supervised by a graduate faculty member. May be repeated for credit with instructor's permission. Prerequisite: Consent of instructor.
5197/5297/5397 SPECIAL TOPICS This course will address a focused topic, particularly recent development, in the field of applied computing. Topics will vary from semester to semester. This course may be repeated for credit with the prior approval of the graduate advisor. Prerequisite: consent of instructor. On demand.
5300 OPERATING SYSTEMS Introduction to operating systems, historical development, serial batch systems, multiprogramming systems, time-sharing systems, real-time systems, control programs, job control language, job management, task management, data management, interrupt handling, and concepts of telecommunication. Prerequisite: CSCI 2440, 3350 or equivalent.
5305 LINUX/UNIX SYSTEMS An elective course for upper level Computer Science majors. Topics include Linux operating environment and architecture, command line Linux utilities, application development under Linux, virtualization, building and using libraries, POSIX threads programming, synchronization and semaphores, shared memory programming, advanced file handling, regular expressions, shells and shell scripting in various languages. Prerequisite: CSCI 2320. Offered once a year.
5310 INTRODUCTION TO SCIENTIFIC COMPUTING Topics in modeling scientific computing problem, algorithm development, numerical methods, software tools, and implementation. Prerequisite: Consent of instructor.
5315 INFORMATION SECURITY This course introduces the basic concepts, principles, and the state-of-the-art technologies in the realm of computer/network security and information assurance. It introduces topics ranging from cryptographic techniques to trusted systems to multilevel security to network security to ethics in the computing profession. Students will learn fundamental concepts of security that can be applied to many traditional aspects of computer programming and computer system design. Prerequisite: CSCI 3300 or permission from instructor.
5320 COMPILER CONSTRUCTION Mathematical foundations of compilers, grammars, trees, parsing fundamentals, finite-state automata, top-down parsing, bottom-up parsing, syntax-directed translation, symbols tables, run-time machine models, object code generation, and optimization techniques. Prerequisite: CSCI 3370 or equivalent.
5325 CONCURRENT PROGRAMMING A study of the algorithms, data structures, and programming techniques of concurrent computation. Topics covered include principles of parallel hardware, principles of concurrent system design, communication topologies, the development, measurement, and tuning of concurrent programs, design of concurrent algorithms, performance metrics for concurrent systems, and special problems with distributed concurrent systems. Prerequisite: CSCI 4300 or equivalent.
5330 THEORY OF COMPUTATION An elective course for graduate students. Topics include abstract basis of machines and programming, automata, context free grammars and Turing machines. Chomsky hierarchy, computability, and computational complexity.
5353 MULTIMEDIA COMPUTING This course covers the concepts, principles, and state-of-the-art technologies related to multimedia computing, including graphics, audio, image, video, animation, text, etc. Topics will include multimedia information capture, digitization, compression, network communication, and practical applications. Prerequisite: Consent of instructor.
5357 PROGRAMMING MOBILE DEVICES An elective course for Computer Science majors. This course covers the development of applications for network-enabled mobile devices. Topics include: memory management, custom user interface development, event handling, animation using 2-D/3-D graphics, audio and video application programming, and data storage/persistence. Prerequisite: CSCI 3381.
5370 DATA MINING This course introduces the basic concepts, principles, and the state-of-the-art technologies for Data Mining including Introduction of Data Mining, Data Preprocessing, Data Warehouse, Association Rules, Classification, and Clustering. Specific applications in financial data and Bioinformatics are included. Prerequisite: CSCI 3360 Database Systems. Every Spring or fall.
5385 ARTIFICIAL INTELLIGENCE Topics include deduction, reasoning, problem solving, knowledge representation, planning, machine learning, natural language processing, motion and manipulation (robotics), perception (machine perception, computer vision, and speech recognition), social intelligence (affective computing). Prerequisite(s) CSCI 3330. Once a year
6300 DISTRIBUTED OPERATING SYSTEMS I Topics include process synchronization, language mechanism for concurrency, deadlock, virtual memory, distributed systems concepts and architecture, layered systems, distributed process management, and associated algorithms. Prerequisite: CSCI 5300 or equivalent.
6305 DISTRIBUTED OPERATING SYSTEMS II Continuation of topics in CSCI 6300 covering distributed processes (synchronization, communication, and scheduling), distributed resources (files and memory), distributed computer security, and associated distributed algorithms. Prerequisite: CSCI 6300 or equivalent.
6330 TOPICS IN ALGORITHMS Topics include analysis of sequential and parallel algorithmic strategies, algorithms in compression, cryptology, geometric, approximation, NP-Completeness. Prerequisites: CSCI 3330 or equivalent.
6335 TOPICS IN NETWORKING Topics in advanced network architectures, packet switching and routing technologies, local area networks and medium access control, wide area networks and internetworking protocols, network design and performance analysis. Prerequisites: CSCI 3335 or equivalent.
6350 TOPICS IN COMPUTER GRAPHICS More advanced features of 3D computer graphics and OpenGL, including texture mapping, curved surfaces, and frame buffer manipulation. Prerequisites: CSCI 4350 or equivalent.
6355 EXPERT SYSTEMS This course covers the basic principles of expert systems development and studies prominent examples of successful commercial expert systems. Prerequisites: CSCI 3385 or equivalent.
6360 ADVANCED THEORY OF COMPUTATION Context-free languages and push-down automaton, Turing machines, formal languages, complexity theory, combinatorial and geometric algorithms, and computation complexity. Prerequisite: CSCI 4390 or equivalent.
6370 TOPICS IN DATABASE SYSTEMS Study of algorithms and performance in advanced databases. Systems include parallel, distributed, and client-server databases; applications include data mining and on-line analytical processing. Prerequisites: CSCI 4370 or equivalent.
6375 COMPUTER NETWORK PERFORMANCE ANALYSIS Methods for evaluating the performance of communication networks with emphasis on modeling, mathematical analysis, computer simulation, and measurement. Prerequisites: CSCI 6335 or equivalent.
6380 ADVANCED COMPUTER ARCHITECTURE Topics concerning very high performance computers including techniques exploiting parallelism in single and multiple processor systems, design methodology for advanced computer systems, and hardware description language. Prerequisites: CSCI 3380 or equivalent.
6381 TOPICS IN OBJECT-ORIENTED SOFTWARE DEVELOPMENT This course investigates the application of software development to large systems with the emphasis on object-oriented design. Students learn object-oriented principles from practical experience through the development group projects of large systems. Prerequisites: CSCI 3381 or equivalent.
6385 TOPICS IN ARTIFICIAL INTELLIGENCE Knowledge representation, machine learning, problem solving, pattern analysis, natural language processing, vision and robotics, neural networks. Prerequisites: CSCI 3385 or equivalent.
6390 TOPICS IN SOFTWARE ENGINEERING The process of developing software systems. Includes development of processes, their instantiation in actual product development, and techniques ensuring quality of developed products. Prerequisites: CSCI 4490 or equivalent.
6395 INDEPENDENT STUDIES A student may undertake a course of study under the supervision of a consenting graduate faculty member. Students who request to take the course should provide a written statement of the content of the course and a tentative reading list. A literature review, project report, or other written product is normally required. This course is offered only in areas of importance but insufficient demand to justify a regular course. May be repeated for credit with instructor permission.
6397 SPECIAL TOPICS The course will address a variety of topics in applied computer science, particularly those addressing recent developments in the field. Topics will vary from semester to semester. This course may be repeated for credit with the prior approval of the graduate advisor. Prerequisite: consent of instructor.
6X99 MASTER'S PROJECT/THESIS This course is intended to meet the project/thesis requirement for the degree. Topics are chosen in consultation with an advisor. Variable credit. Up to six credit hours maybe applied toward the degree. Prerequisite: 18 hours of credit applicable toward the degree.