Below are course descriptions of the graduate computer science classes that are likely to be offered during the 2015-16 academic year. Please note that class offerings can and do change, so courses listed below are not guaranteed to be offered. At the same time, new courses that are not listed below may be offered in addition to or instead of these courses.
5003 FOUNDATIONS OF TECHNOLOGY ETHICS AND VALUES
Theories of engineering and computer science ethics and values. Ethical theory from a Christian viewpoint. Impact of technology on society. Individual options and obligations for action. Case studies will be used to study a range of issues including environment, safety, honesty, organizational communication, quality control, and product liability. Same as ENGR-5003.
5013 DATA COMMUNICATIONS AND NETWORKING
A study of the concepts and terminology of data communications, network design, and distributed information systems. Topics include transmission serivce and equipment characteristics, protocols, data communications software, and federal regulatory policy. This course is normally offered in the fall semester.
5113 SOFTWARE AND NETWORK ENGINEERING
A study of advanced computer network systems design issues. Examination of the prominent protocols and standards for wired and wireless local area networks and the wireless internet. Same as CENG-5113.
5213 COMPUTER NETWORKS
A course covering computer and data communications and computer networks. Strong emphasis on Layer 2 - Layer 4 internet protocols, including ethernet, IP, TCP, and UDP. The course includes the use of network analyzers to enable hands on network protocol experience. Same as CENG-5213.
5223 COMPUTER SIMULATION
An introduction to the application of programming to the design and implementation of computer simulations. Topics include simulation languages and the application of stochastic processes to simulation theory. This course is normally offered in the spring semester of even numbered years. Students cannot receive credit for both CMSC-4223 and CMSC-5223.
5233 MOBILE APPLICATION DEVELOPMENT
An introduction to mobile application software development. In this course, the student will learn to development mobile apps. Topics will include mobile platforms and mobile application development tools. This course is normally offered in the spring semseter of even numbered years. Students cannot receive credit for both CMSC-4233 and CMSC- 5233.
5313 HUMAN COMPUTER INTERACTION
An introduction to user interfaced design and user experience. Topics include HCI concepts and principles, usability, HCI evaluation, HCI design, interaction devices. This course is normally offered in the fall semester of odd numbered years. Student cannot receive credit for both CMSC-4113 and CMSC-5313.
5323 DATABASE SYSTEMS
An introduction to the application of programming to the design and implementation of computer simulations. Topics include simulation languages and the application of stochastic processes to simulation theory. This course is normally offered in the spring semester of even numbered years. Students cannot receive credit for both CMSC-4323 and CMSC-5323.
5333 ADVANCED DATABASE SYSTEMS
Prerequisite: CMSC-4323 or 5323.
This course will investigate new database technologies. Topics will include managing and using large skill data sets, high-velocity transaction processing, stream processing, real time analytics, and high-volume data processing. The discussions will focus on several real-world application domains, such as internet advertising, healthcare, and social network analysis.
5343 ALGORITHM ANALYSIS
An introduction to the analysis and design of algorithms. Topics include algorithm performance, verification of correctness, and application of analysis technique to a variety of simple and complex algorithms.
5413 OPERATING SYSTEMS
Examination of the major features of an operating system and its interaction with the hardware at the register level. Topics include memory management, job scheduling and multi-programming. Students cannot receive credit for both CMSC-4413 and CMSC-5413.
5423 COMPUTER GRAPHICS
An introduction to the fundamental techniques of computer graphics. Topics include two and three-dimensional graphing, hidden surface algorithms, animation, and applications of graphics. This course is normally offered in the fall semester of odd numbered years. Students cannot receive credit for both CMSC-4423 and CMSC-5423.
CMSC-5433: COMPILER CONSTRUCTION
An introduction to compiler construction. Topics will include lexical analysis, syntax analysis, intermediate code generation, runtime environments, code generation, and optimization.
CMSC-5513: PROGRAMMING LANGUAGES
Study of the organization of programming languages. Topics include data types, sequence control, data control, and operating environment considerations. Several high-level languages will be studied. Students cannot receive credit for both CMSC-4513 and CMSC-5513.
CMSC-5523: INFORMATION SYSTEMS SECURITY
An introduction to information system security. Topics include cryptography, access control, protocols, and software security. Students cannot receive credit for both CMSC- 4523 and CMSC-5523.
CMSC-5613: OBJECT ORIENTED SOFTWARE ENGINEERING
An introductory software engineering course for students who can program in either C++ or Java. Since the tools and techniques now widely available are for Java, the course would begin by teaching C++ programmers the simplifications that led to Java (no multiple inheritances, no manual storage management, and no operator overloading). The goal of the course would be to prepare the programmer to be software engineering and to begin the study of software architecture. Same as CENG-5613.
CMSC-5623: SOFTWARE ENGINEERING FOR TRUSTWORTHY SOFTWARE
This course explores the technologies and methodologies underlying a new robust software design model (RSDM) for software development based on successful methods used in hardware design and development. These include cost of software quality (CoSQ), the analytic hierarchy process (AHP), inventive problem solving (TRIZ), failure mode effects analysis (FMEA), quality function deployment (QFD), and Taguchi Methods, including orthogonal matrix methods. The overall design approach is to eliminate software problems as far upstream in the development process as possible, rather than finding and fixing bugs downstream. The course is intended for the software architect or software engineer or the programmer or student wishing to progress into software design. Same as CENG-5623.
CMSC-5633: PATTERS OF ENTERPRISE SYSTEMS
This course will investigate the organization of large enterprise systems. Topics include system component layering, domain logic, relational database mapping, web presentation, concurrency, and distribution strategies.
CMSC-5713: ARTIFICIAL INTELLIGENCE
An introduction to the study of artificial intelligence. Topics include problem solving using state-space and problem reduction techniques, search methods, game playing, and predicate calculus. This course is normally offered in the spring semester of even numbered years. Students cannot receive credit for both CMSC-4713 and CMSC-5713.
CMSC-5723: MACHINE LEARNING
This course will investigate advance artificial intelligence problems and algorithms. Topics include knowledge, machine learning, perceptions, and natural language processing.
CMSC-5733: SOFTWARE ENGINEERING PROJECTS I
A project oriented class where the student will build software systems using software engineering processes. Topics include software tools, software teams, software engineering practices, software engineering design artifacts, software development, and testing.
CMSC-5743: SOFTWARE ENGINEERING PROJECTS II
A project oriented class where the student will build a software system on their own using software engineering processes. Topics include software tools, software teams, and software engineering.
CMSC-5901: PRACTICUM FOR COMPUTER SCIENCE
On job experience is a valuable way for students majoring in computer science to practice and improve their skills. Working with real world problems enhances the theoretical curriculum we offer and gives students a new perspective on concepts they have been taught. Enrollment in this course will be under the supervision of an individual computer science professor, who will work with the student’s supervisor. A journal or summary paper of the internship experience will be required at the conclusion of the employment period. A 12-week practicum at 20 hours per week will correspond to one hour of credit. Prior permission of the computer science department is necessary for enrollment. 1 credit hour.