Return to Computer Science | Courses Index
[1] Graduate Courses in Computer Science (CSCI)
5V75 INTERNSHIP (Variable credit, 1-6 credit hours.) An elective course for graduate students in the Applied Computing program. The student enrolled in this course will engage in work related to computer science for an industry, business, or government entity for at least 10 hours per week for a semester. May be repeated for credit with a change in internship responsibilities.
5V97 SPECIAL TOPICS (Variable credit: 1-3 credit hours.) 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.
5191 SEMINAR IN APPLIED COMPUTING Investigation of current development in applied computing by attending and giving presentations supervised by a graduate faculty member. Prerequisite: Consent of instructor.
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 Assembly Language and Computer Organization and CSCI 3330 Algorithms or consent of instructor.
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 Data Structures.
5310 NUMERICAL METHODS FOR DATA SCIENCE This course introduces numerical methods for data modeling, data visualization, algorithm development and implementation, software tools, and applications. Prerequisites: MATH 3320 or 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 2320 Data Structures or consent of 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 Principles of Programming Languages 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 3330 Algorithms.
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. Prerequisite: MATH 2330 Discrete Structures I or equivalent.
5352 INTRODUCTION TO GAME PROGRAMMING This course focuses on the fundamentals of game programming. The course will cover the application of basic concepts such as 3 D transformations, virtual camera manipulations, lights, texturing, and more complex topics such as interactive physics simulation and physics-based visual rendering. In addition to basic theory in visualization, physics, and animation, the design and development of games will be emphasized. The course will also introduce game development on specific platforms such as smartphones, tablets, and gaming consoles. Prerequisite: CSCI 3330 or consent of the instructor.
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 Object-Oriented Software Development with Java or equivalent.
5365 WEB TECHNOLOGY This course is designed to familiarize students with concepts and techniques surrounding the building of distributed internet web-based applications. The course will introduce interactive client-server web applications that can be built using various types of Internet technologies. The demonstration of database-driven web sites is performed with the software architecture involved in each tier explored in detail. Common-Gateway-Interfaces are implemented for processing both client and server output data. Security issues and strategies pertaining to an enterprise-wide web-based application are examined and implemented. Prerequisite: CSCI 3330 Algorithms or equivalent.
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 or equivalent.
5371 MACHINE LEARNING An introduction to machine learning. Topics include pattern recognition, computational learning theory, classification and clustering algorithms, data visualization, neural networks, deep learning with big data. Applications in areas such as Computer Vision and Biomedical/Bioinformatics will be emphasized.
5372 DATA CLUSTERING An introduction to data clustering. Topics include proximity functions, attribute normalization, hierarchical algorithms, partitional algorithms, initialization, and validation.
5381 ADVANCED JAVA PROGRAMMING This course covers the development of network-enabled applications, website deployment, and mobile applications built using the Android Platform. Topics include advanced client-server techniques using Java networking features, website deployment using the Java Server Programming Interface, and Android mobile application development consisting of custom user interfaces, 2-D animations, and multimedia integration. Prerequisite: CSCI 3381 Object-Oriented Software Development with Java or equivalent.
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 Algorithms or equivalent.
6V99 MASTER’S THESIS (Variable credit: 1-6 credit hours.) This course is intended to meet the thesis requirement for the degree. Topics are chosen in consultation with an advisor. Up to six credit hours may be applied toward the degree. Prerequisite: 18 hours of credit applicable toward the degree.
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 Operating Systems 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 Distributed Operating Systems I or equivalent.
6310 ADVANCED DATA MINING An elective course for the MS in Applied Computing degree program. Topics include data mining tools, cost-sensitive learning, active learning, semi-supervised learning, ensemble techniques, multi-instance learning, multi-label learning, noise handling, and multiple noisy label learning in advanced data mining. Prerequisite: CSCI 3330 Algorithms 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 Algorithms 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 Networking 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 Computer Graphics and MATH 3320 Linear Algebra 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 Artificial Intelligence 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 3330 Algorithms and MATH 3330 Discrete Structures II 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 Data Mining or equivalent.
6371 APPLIED DATA MINING An elective course for the MS program in Applied Computing. Topics include data analytics, data science and problems solutions, neighbors and clusters, predictive models and fitting a model to data, and business strategies. The application of data mining in different domain areas, such as Bioinformatics and Business Informatics, will also be emphasized. Prerequisite: CSCI 4370 or 5370; or consent of instructor.
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 Topics in Networking 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 Computer Architecture 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 Object-Oriented Software Development with Java 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 Artificial Intelligence 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 Software Engineering or equivalent.
6395 INDEPENDENT STUDY 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.