Master of Science in Computer Science
The following online courses are required for graduation:
CECS MS Program requires minimum 15 credit hours of 600 level courses.
CECS 504 Automata Theory
CECS 619 Algorithms
|1 course required||3|
|Software||CECS 640 Internet Applications||2 courses required||6|
||2 courses required||6|
|Electives||3 CECS Electives||3 required courses||9|
|Select Thesis Option Or Project Option|
|Thesis Option||CECS 690 MS Thesis||2 required courses||6|
|Project Option||CECS 696 and CECS 5/6XX Elective||2 required courses
Total Credit Hours
Students have the option of completing the thesis or project. Electives must be chosen so that at least one-half of the credits counted toward the degree, exclusive of thesis, are 600-level; at least 15 hours of coursework must be in CECS.
University of Louisville’s Master of Science in Computer Science online program is designed for students who have earned a bachelor’s degree in computer science/computer engineering (CECS) but it is also available to applicants who have earned other degrees. More than ever before, professionals with non-computer science educational background are seeking to earn computer science credentials at the graduate level for career change or advancement opportunities.
To be admitted, students must have a technical degree or relevant experience. Non-computer science candidates often need to complete undergraduate prerequisites before applying to the master’s program.
Important Note: The actual number and type of prerequisites is determined on a case-by-case basis, based on candidate’s official transcripts and evaluation of transferable credit. Also, the length of the program will depend on the number of prerequisites needed for the completion of graduate coursework.
|CECS 130: Introduction to Programming Languages (3 credits)|
|CECS 310: Discrete Structures (3 credits)|
|CECS 503: Survey of Computer Engineering and Computer Science (3 credits)|
If you are unsure of your qualifications, please contact Online Learning for assistance.
CECS 504 Automata Theory
Prerequisite: CECS 310. Finite state machines and their application to engineering problems including modeling the behavior of discrete systems. Topics include theory of computing, formal language theory, and applications of cellular automata. Engineering models of digital computer hardware are covered and related to software design.
CECS 619 Algorithms
Prerequisite: CECS 310 and IE 360. This course covers the interrelationship between algorithmic statements, data structures and computational complexity of computer programs. Algorithms are presented for a number of computer science and engineering applications including graph problems, string matching, dynamic programming, transitive closure and convolution. The properties of NP-complete problems are introduced.
CECS 516 Computer Networks
Prerequisite: ECE 360 or IE 360, and CECS 412. Data communications: The exchange of data between devices is covered. The key aspects of transmission interfacing, link control, and multiplexing are examined. Data communication networking: Examines the internal mechanisms by which communication networks provide a data transfer service for attached devices. Note: Cross-listed with ECE 518.
CECS 535 Introduction to Databases
Prerequisite: CECS 302 or equivalent. Course covers basics of database design, SQL, query processing, and optimization, transactions. The emphasis will be placed on Engineering design and implementation of relational systems. A written project is required.
CECS 545 Artificial Intelligence
Prerequisite: CECS 302 and CECS 310. This course introduces the use of predicate calculus logic, heuristic search, and knowledge representations for solving engineering and computer science problems. The course includes coverage of rule-based expert systems, intelligent agents and machine learning.
CECES 550 Software Engineering
Prerequisite: CECS 420. Engineering methods applied to the life-cycle issues in the team-oriented development of large software systems including issues of software processes, metrics, testing and quality. Documentation of the project and an oral presentation are required.
CECS 629 Distributed Systems
Prerequisite: CECS 420 This course covers general concepts in the design and implementation of distributed systems, visiting topics in cluster computing, supercomputing, grid computing, and cloud computing. The course is composed of two building blocks: i) distributing computing models including MPI and MapReduce programming, and ii) distributed storage techniques including networked, parallel, and distributed file systems. Our readings and discussions of research papers will help us understand general approaches to design, implement, and evaluate real distributed systems as well as identify open research problems.
CECS 630 Advanced Databases and Warehousing
Prerequisite: CECS 535 or consent of instructor. Object-relational databases; handling of complex types, XML and text in relational databases. NoSQL databases: data models and query languages. Data warehousing: design and implementation, query processing and optimization. Big Data: cluster computing, MapReduce and extensions, advanced analytical databases and distributed query processing.
CECS 640 Internet Application Design and Development
Prerequisite: CECS 220. This course covers software design and development issues encountered in designing internet applications. Topics are HTML5 and CSS, HTTP and Servlet, JDBC, JSP Programming, Custom Tags and Java Bean, Connection Pooling, Web Application Architecture and Design, The Presentation Tier, The Business Logic Tier, The Persistence Tier, and Web Services.
CECS 506 Modeling and Analysis of Engineering Systems
Prerequisite: ENGR 330. Representation of engineering systems, Fourier analysis, z-transforms, frequency response, state-space analysis, stability, an introduction to the basic theory of filter design; and demonstrated concepts to CAS.
CECS 522 Evaluation of Computer Systems
Prerequisite: IE 360 and CECS 420. A study of approaches to the evaluation of computer systems. Measurement techniques and evaluation techniques are treated in detail with attention to existing commercial hardware and software monitors and simulators.
CECS 563 Experimental Design in Engineering
Prerequisite: IE 360. Design of engineering experiments and projects using theory of least squares, analysis of variance and co-variance, randomized blocks, Latin squares, factorial experiments and associated topics. Engineering design problems using SAS or equivalent software packages. Note: Cross-listed with IE 563.
CECS 620 Combinatorial Optimization & Modern Heuristics
Prerequisite: CECS 419 or equivalent. Combinatorial Optimization and Modern Heuristics presents classical and modern search and optimization concepts, methods, and applications.
CECS 622 Simulation and Modeling Discrete Systems
Prerequisite: IE 360. Engineering design of simulation languages and simulators, discrete stochastic systems, issues in large scale simulation studies and engineering evaluation methods.
CECS 627 Digital Image Processing
Prerequisite: CECS 506, ECE 420 or faculty consent. A course that surveys basic concepts in image processing and pattern recognition. Topics included are: contrast and edge enhancement, histogram modification, image segmentation, feature extraction, statistical classifiers. Design problems involving computer implementation of algorithms are used extensively.
CECS 632 Data Mining
Prerequisite: IE 360 and CECS 535. Data mining concepts, methodologies, and techniques, including statistical and fuzzy inference, cluster analysis, artificial neural networks, and genetic algorithms, rule association and decision trees, N-dimensional visualization, Web and text mining, and advanced topics.
CECS 690 M.S. Thesis in Computer Science
Experimental and/or theoretical research to be presented in thesis.
CECS 696 CECS Project
Prerequisite: Graduate standing in CECS. Independent design or experimental project in Computer Engineering and Computer Science. Written and verbal reports required. Reports must include literature, speech, experimental methodology, design details, implementation details, test results, conclusions, and references. Verbal reports will be presented at a specified date each semester.
CECS 130 Introduction to Programming Languages
Introduction to programming languages with emphasis on C and C++, and a brief introduction to Java. It includes laboratory exercises on the writing and compiling computer programs in C, C++, and Java.
CECS 310 Discrete Structures
Prerequisite: Third-year standing. Engineering applications using computer structures including algebraic computational structures, finite state machines, relational structures, propositional logic, trees, graphs, groups, machine equivalence and introduction to formal grammar. Applications of these structures to engineering problems including fluid flow, communication systems, artificial intelligence, digital logic, and algorithm evaluation. A written report is required.
CECS 503 Survey of Computer Engineering and Computer Sciences
Prerequisite: CECS 130. Introduction to foundations of computer engineering and computer science for non-majors. Emphasis on C++ programming language, data structures and algorithms, and operating systems fundamentals. This course cannot be used to meet degree requirements for any CECS/CS/CSE degree.