Masters Degree in Computer Science

Computer Science Courses (COSC)

5100 Graduate Seminar 1:1:0
Topics include the scientific method and research process, library utilization and components and organization of various types of research papers. Writing exercises on the latter topics. Preparation, formal written report and presentation on a research topic. 
Prerequisite: Admission to the M.S. program in Computer Science. 

5302 Advanced Topics in Operating System 3:3:0
Current research issues and advanced topics involving both the principles and pragmatics of operating systems specification, design and implementation. Study of concurrent processes, support structures for modular programming, resource allocation and protection, telecommunications, networks and distributed processing. 
Prerequisite: CS 4302 or equivalent. 

5307 Compiler Construction
A general approach to the design of language processors is presented independently of the target machine architecture and the source language. All phases of compilation and interpretation are investigated. Typical projects include implementation of a small compiler or a special purpose language. 

5310 Advanced Topics in Computer Architecture 3:3:0
Advanced topics in computer architecture such as RISC v/s CISC, pipelined processors, vector processors, HDLs, language directed architectures and neural nets. 
Prerequisite: CS 4310 or equivalent. 

5311 Advanced Database Design
Introduction to basic concepts behind data mining. A survey of data mining applications, techniques and models. Topics may include decision tables, classification rules, association rules, clustering, statistical and linear models. 

5312 Advanced Topics in Artificial Intelligence 3:3:0
Topics include, but are not limited to, knowledge representation, distributed cooperative AI, intelligent tutoring systems and semantic representation in natural language processing. 
Prerequisite: CPSC 5370 or equivalent. 

5313 Analysis of Algorithms 3:3:3
Topics on what can and cannot be proven about computational complexity including algorithm design methodologies. 
Prerequisite: COSC 2371 or COSC 4307 or equivalent. 

5314 Logic and Discrete Structures in Computer Science
Topics from logic and discrete mathematics relevant to computer science are presented in order to introduce students to abstraction and formal proofs. The topics include sets, graphs, monoids, groups, discrete probability theory, and predicate calculus. 

5315 Foundations of Computer Science
The foundations of computer science are studied in order to give a better understanding of the discipline. Topics include: logic, computational models, formal languages, computability and complexity theory. 

5318 Design and Implementation of Expert Systems 3:3:0
Problems in knowledge acquisition, knowledge representation issues, representation of meta-knowledge, use of statistical measures to limit search of the knowledge base, and knowledge verification. 
Prerequisite: CPSC 2371 or equivalent .

5319 Advanced Compiler Construction 3:3:0
An introduction to the major methods used in compiler implementation. The parsing methods of LL(k) and LR(k) are covered as well as finite state methods for lexical analysis, symbol table construction, internal forms for a program, run time storage management for block structured languages and an introduction to code optimization. 
Prerequisite: COSC 4307 or COSC 3302 or equivalent. 

5320 Formal Languages 3:3:0
Data and control abstractions are considered. Advanced control constructs including backtracking and non-determinism are covered. The affects of formal methods for program description are explained. The major methods for proving programs correct are described. 
Prerequisite: COSC 4307 or COSC 3302 or equivalent. 

5321 Computer Graphics
Introduction to computer graphics programming. Topics include graphics programming standards, two-and three-dimensional rendering pipelines, geometric models (including primitives, fonts, curves, and surfaces), affine transformations, orthogonal and perspective views, shading and lighting models, images and texture mapping, interactions and animations. A major project is given encompassing some or all of these concepts.

5324 Computer Game Development I
This course introduces techniques for 3D game development with an emphasis on programming.  Content creation methodologies are also covered.

5325 Computer Game Development II
A continuation of COSC 5324 with an emphasis on advanced techniquest for 3D game development including indoor rendering, animation techniques and networking. 

5328 Computer Networks 3:3:0
A study of networks of interacting computers. The problems, rationales and possible solutions for distributed databases will be examined. Major national and international protocols including SNA, S.21 and X.25 will be presented. 
Prerequisite: (CPSC 3310 or ELEN 3331), COSC 5341, and COSC 4302 or equivalent. 

5330 Theory of Computation 3:3:0
A survey of formal models for computation. Includes Turing Machines, partial recursive functions, recursive and recursively enumerable sets, and the recursive theorem, abstract complexity theory, program schemes and concrete complexity. 
Prerequisite: COSC 3302 or COSC 4307 or equivalent. 

5331 Advanced Software Engineering 3:3:0
Topics not limited to software development methodology, verification and reliability, software quality assurance and productivity, software engineering economics, models and metrics for software management and engineering, human performance engineering and software configuration management and control. 
Prerequisite: CPSC 5360. 

5332 Object Oriented Database Management Systems 3:3:0
Introduction to object oriented databases. Topics including introduction to object oriented programming, the object-oriented data model, interface for defining and manipulating object oriented databases and other databases. Semantics and changes to the schema, query model, authorization model, architecture and implementation issues. Survey of current object oriented database systems. 
Prerequisite: CPSC 5340. 

5333 Distributed Computer Systems 3:3:0
The study of the characteristics of a collection of autonomous computers linked by a network, with software designed to produce an integrated computing facility that intends to present a transparent virtual machine to application programmers. 
Prerequisite: COSC 5328 and CPSC 5340 or equivalent or advisor approval. 

5335 Advanced Computer Graphics 3:3:0
The course focuses on topics current to the field and includes, but is not limited to, areas such as design and construction of computer graphics systems, both software and hardware, the theory and use of color and shading, and algorithms for solid object modeling. 
Prerequisite: COSC 5321 or equivalent. 

5336 Advanced Simulation and Modeling 3:3:0
Current topics in both simulation methodology and applications. Distributed simulation, simulation support tools, object oriented simulation and artificial intelligence and simulation. 
Prerequisite: COSC 4309, (MATH 1342 or MATH 3370), and MATH 2414 or equivalent. 

5340 Special Topics 3:3:0
Special topics in all areas of Computer Science with emphasis on topics not covered in other courses. May be repeated for credit when topics vary. 
Prerequisite: consent of department chair. 

5341 Problem Solving in High-Level Language 3:3:0
Algorithms, pseudo code, structured techniques of problem solving and program design using high-level programming languages. Data sorting and searching techniques. Object-oriented design. 
Prerequisite: A first programming language, MTH 1345, and MTH 234 or MTH 3370. Leveling course not for graduate credit in MSCS degree. 

5342 System Design and Programming 3:3:0
Principles of computer systems analysis and design, system hardware and software characteristics. Data representation and programming in assembly language. Computer storage structures, storage allocation and management. Design of typical system programs such as assemblers, compilers and operating systems, addressing techniques and core management, file system design and management. 
Prerequisite: COSC 5341. Leveling course not for graduate credit in MSCS degree. 

5350 Parallel Algorithms 3:3:0
Taxonomy of parallel computers, shared-memory vs. message-passing architectures, theoretical models, parallel algorithm design strategies, parallel data structures, automatic parallelization of sequential programs, communication, synchronization and granularity. 
Prerequisite: COSC 5313 or equivalent. 

5360 Intern-Grad Students 3:3:0
This course provides practical experience with a company engaged in work related to a career in computer science. The purpose is career development before graduation. The course requires that the student obtain permission for Curricular Practical Training (CPT) from the International Student Office. 
Prerequisite: Approval of department chair. 

5361 Internship 2 3:3:0
A continuation of COSC 5360 for a second semester. 
Prerequisite: Approval of department chair. 

5369 Graduate Project 3:3:0
Independent study and research of a specific problem in a field of computer science or its application. A report is required defining the problem and developing a solution. The work may be supervised by any member of the graduate faculty. 
Prerequisite: 10 hours of graduate computer science credit including COSC 5100 with grades of A or B; prior approval of written plan by the faculty supervisor and by the computer science department chair. May not be repeated for credit.

5402 Pattern Recognition and Image 4:3:3
Principles and pragmatics of pattern recognition, digital image processing and analysis. Statistical pattern recognition: complete vs. incomplete approach (via supervised vs. unsupervised learning). Structural pattern recognition. Image processing: image acquisition and digitization, making decisions based upon the available features. Image segmentation (by clustering, textured images, range images and multispectral images) and registration. 
Prerequisite: CPSC 5370 and advanced statistics. 

5390-5391 Thesis 3:3:0
Independent research of a specific problem in a field of computer science. The work will be supervised by a member of the graduate faculty of the Computer Science Department. To be scheduled only with the consent of the department. Six hours credit required. No credit assigned until thesis has been completed and filed with the graduate dean. Continuous enrollment required once work on thesis has begun. 
Prerequisite: Consent of Department Chair. 

Computer Information Sciences (CPSC)

5310 Computer-Aided Geometric Design
Mathematical techniques for the definition and manipulation of curves and surfaces. Coon's patches, Bezier Curves, B-splines, beta-splines, integration into various graphics rendering models, and computer-aided design systems are among the possible topics. 

5320 Communication and Computer Networks 3:3:0
Study of problems and limitations associated with interconnecting computers by communication networks. Quality of service, message and packet switching networks, network topology, routing, flow control, capacity assignment, protocols, wireless technology. 
Prerequisite: COSC 5341 and COSC 4302. 

5326 Android Programming 3:3:0
This is an introductory course in Android programming.  Topics include history of Android, hardware, development tools, text- based applications, multi-media applications, accessing the Internet from an application, and user interface design.  Minimum passing grade: ‘C’.
Prerequisite: A high level programming language. 

5327 Advanced Android Programming 3:3:0
This is an advanced course in Android programming. Topics include design, marketing, custom Views, 3D graphics, SMS, text- to-speech, advanced application preferences, View animation, background processing and network programming.
Prerequisite: CPSC 5326.

5330 Advanced Topics in Multimedia Processing 3:3:0
Television style viewing and sound interfacing to computer systems. Software and architectural interconnection requirements of digital interactive video and audio technology. Graphical user interface. Definition, examples, application, review of major implementations, and architecture of multimedia systems. Voice technology: synthesis, recognition and response. Student projects. 
Prerequisite: A high level programming language. 

5350 Advanced Topics in Applications of Expert Systems 3:3:0
Theory and programming of expert systems. Introduction to expert systems. Introduction to a particular expert system, pattern matching, control techniques, efficiency in rule-based language, and expert system examples. A student term project is assigned. 
Prerequisite: A high level programming language. 

5360 Topics in Software Engineering 3:3:0
Systems analysis, software requirements analysis and definition, specification techniques, software design methodologies, performance measurement, validation and verification and quality assurance techniques. Programming in an object oriented language. 
Prerequisite: A high level programming language. 

5370 Introduction to Artificial Intelligence 3:3:0
Introduction to concepts and ideas in artificial intelligence. Topics include search techniques, knowledge representation, control strategies and advanced problem-solving architecture. 
Prerequisite: A high level programming language and COSC 2371.