University of Maryland University College Asia
Course Descriptions
Area of Study:
To view a specific Course Description, select an Area of Study, select a course designator, and select the course you want to view. Then Click the "View" button to see the course decription.

Computer and Information Science

CMIS102 Introduction to Problem Solving & Algorithm Design (3 cr.)
A study of techniques for finding solutions to problems through structured programming and step-wise refinement. Topics include principles of programming, the logic of constructing a computer program, and the practical aspects of integrating program modules into a cohesive whole. Algorithms are used to demonstrate programming as an approach to problem solving, and basic features of a modern object-oriented language are illustrated. Students may receive credit for only one of the following courses: CMIS 102, CMIS 102A, or CMSC 101.

CMIS141 Introductory Programming (3 cr.)
(Not open to students who have taken CMIS 340. The first in a sequence of courses in Java.) Prerequisite: CMIS 102 or prior programming experience. Recommended: MATH 107. A study of structured and object-oriented programming using the Java language. Discussion covers the discipline, methodologies, and techniques of software development. Algorithms and simple data structures are developed and implemented in Java; object-oriented concepts are applied. Students may receive credit for only one of the following courses: CMIS 141 or CMIS 141A.

CMIS160 Discrete Mathematics for Computing (3 cr.)
(Not open to students who have completed CMSC 150.) Recommended: MATH 107. An introduction to discrete mathematical techniques for solving problems in the field of computing. Basic principles from areas such as sets, relations and functions, logic, proof methods, and recursion are examined. Topics are selected on the basis of their applicability to typical problems in computer languages and systems, databases, networking, and software engineering.

CMIS170 Introduction to XML (3 cr.)
Prerequisite: CMIS 102. A study of the principles and use of Extensible Markup Language (XML). Discussion covers the structure, transformation, presentation, and implementation of XML technologies, including document type definitions (DTDs), Extensible Style Language for Transformation (XSLT), and schemas. Hands-on projects and exercises are provided.

CMIS241 Data Structures and Abstraction (3 cr.)
Prerequisite: CMIS 141 or CMIS 141A. A study of program design and the implementation of abstract data types in Java. Topics include data structures such as stacks, queues, lists, and trees and algorithms used for sorting and searching.

CMIS242 Intermediate Programming (3 cr.)
Prerequisite: CMIS 141 or CMIS 141A. Further study of the Java programming language. Topics include inheritance, interfaces such as graphical user interfaces, exceptions, arrays, and collections. Emphasis is on using existing Java classes to build and document applications.

CMIS310 Computer Systems and Architecture (3 cr.)
(Not open to students who have completed CMSC 311.) Prerequisites: CMIS 102 or CMIS 102A. A study of the fundamental concepts of computer architecture and factors that influence the performance of a system. Topics include data representation and the design and analysis of combinational and sequential circuits. Focus is on how basic hardware components (multiplexers, decoders, memories, arithmetic-logic units, etc.) are built. Hard-wired and microprogrammed design of control units are discussed. Concepts such as pipelining and memory hierarchy are introduced. Students may receive credit for only one of the following courses: CMIS 270, CMIS 310, CMSC 311, or IFSM 310.

CMIS315 Programming and Application in C++ (3 cr.)
Prerequisite: CMIS 102 or CMIS 102A. A one-semester study of the important features of the C++ programming language. Programming projects in C++ are included. Students may receive credit for only one of the following courses: CMIS 240 or CMIS 315.

CMIS320 Relational Databases (3 cr.)
Prerequisite: CMIS 102 or CMIS 102A. A study of the functions and underlying concepts of relationally organized database systems. Data models are described and their application to database systems is discussed. The entity/relationship (E/R) model and Codd's relational theory--including relational algebra, normalization and integrity constraints, and the Structured Query Language (SQL)--are emphasized. Physical design and data administration issues are addressed. Projects include hands-on work with E/R and relational models (using industry-standard database software). Students may receive credit for only one of the following courses: CMIS 320 or IFSM 410.

CMIS325 UNIX with Shell Programming (3 cr.)
Prerequisite: CMIS 102 or CMIS 102A. A study of the UNIX operating system. Topics include file structures, editors, pattern-matching facilities, shell commands, and shell scripts. Shell programming is presented and practiced to interrelate system components. Projects give practical experience with the system.

CMIS330 Software Engineering Principles and Techniques (3 cr.)
Prerequisite: CMIS 141, CMIS 141A, CMIS 315, or CMIS 340. A study of the process of software engineering from initial concept through design, development testing, and maintenance to retirement of the product. Development life-cycle models are presented. Topics include issues in configuration management, integration and testing, software quality, quality assurance, security, fault tolerance, project economics, operations, human factors, and organizational structures. Students may receive credit for only one of the following courses: CMIS 330 or CMIS 388A.

CMIS335 Software Safety (3 cr.)
Prerequisite: CMIS 330. An examination of software safety problems (including specification errors, design/coding flaws, or lack of generic safety-critical requirements) that can contribute to or cause a system failure. The objective is to provide management and engineering guidelines to achieve a reasonable level of assurance that software will execute with an acceptable level of safety risk. Potential system hazards are analyzed as functional or generic and traced to either the software or the environment in which the software is used. Guidance on developing a process that can identify, analyze, and then prove, eliminate, or mitigate such potential system hazards according to priority is provided. Students may receive credit for only one of the following courses: CMIS 335 or CMIS 398S.

CMIS340 Programming in Java (3 cr.)
Prerequisite: CMIS 102 or CMIS 102A. A one-semester study of the important features of the Java programming language. Topics include design of classes, class libraries, data structures, exception handling, threads, input and output, and applet programming. Programming projects in Java are included. Not open to students who have taken CMIS 141, CMIS 241, or CMIS 242.

CMIS345 Object-Oriented Design and Programming (3 cr.)
Prerequisite: CMIS 241, CMIS 242, or CMIS 340. An examination of the principles, practices, and applications of programming in an object-oriented environment. Assignments include programming projects in Java that implement techniques of object-oriented design.

CMIS355 Database Forms (3 cr.)
(Formerly CMIS 398F.) Prerequisite: CMIS 320. A comprehensive study of the design and development of graphical user interface forms for modern relational databases in the client/server environment. Focus is on developing a hierarchy of form applications using both Microsoft Access and Oracle. Topics include the construction of simple forms using drop-and-drag components and advanced features of vendor form-building products. Some Visual Basic and PL/SQL programming is used to provide robust functionality to the forms. Accurate display and processing of data and user friendliness are stressed. Students may receive credit for only one of the following courses: CMIS 355 or CMIS 398F.

CMIS370 Data Communications (3 cr.)
Prerequisite: CMIS 310. Investigation of the effects of communication technology on information systems. Topics include components of communication systems, architectures and protocols of networks, security measures, regulatory issues, and the design of network systems. Discussion also covers issues and applications in local area networks and communication services. Students may receive credit for only one of the following courses: CMIS 370, CMSC 370, or IFSM 450.

CMIS375 Programming in Perl (3 cr.)
Prerequisite: CMIS 102 or CMIS 102A. An introduction to the Perl scripting language. Focus is on the basic features of Perl (including data and variable types, operators, statements, regular expressions, functions, and input/output). Topics include object-oriented programming and Common Gateway Interface (CGI) programming. Assignments include writing Perl scripts. Students may receive credit for only one of the following courses: CMIS 375 or CMIS 398P.

CMIS398A Programming in C# (3 cr.)
Prerequisite: CMIS 240, CMIS 241, CMIS 242, CMIS 340, or CMIS 315. An examination of the features of the C# programming language. Topics include design of classes, class libraries, exception handling, input and output, and Windows forms and Web forms programming. Assignments include programming in C#.

CMIS415 Advanced UNIX and C (3 cr.)
Prerequisites: CMIS 141 (or CMIS 141A, CMIS 315, or CMIS 340) and CMIS 325. An investigation of the interaction between the UNIX operating system and the C programming language. The features of UNIX that support C (including library and system calls, UNIX utilities, debuggers, graphics, and file structure) are presented. Assignments include programming projects in C that implement UNIX command features.

CMIS420 Advanced Relational Databases (3 cr.)
Prerequisite: CMIS 320. A study of advanced logical and physical design features and techniques of relational databases appropriate to the advanced end user, database designer, or database administrator. Topics include object-relational concepts, data modeling, challenge areas, physical design in relation to performance, and relational algebra as a basis of optimizer strategies. Future trends, advanced concurrency control mechanisms, and maintenance issues such as schema restructuring are addressed. Projects include hands-on work (using industry-standard database software) in designing and implementing a small database, creating triggers, loading through forms and utility, querying through interactive and embedded Structured Query Language (SQL), restructuring schema, and analyzing performance. Students may receive credit for only one of the following courses: CMIS 420, IFSM 411, or IFSM 498I.

CMIS435 Computer Networking (3 cr.)
Prerequisite: CMIS 370. An overview of communications topics such as signaling conventions, encoding schemes, and error detection and correction. Emphasis is on routing protocols for messages within various kinds of networks, as well as on methods that network entities use to learn the status of the entire network. Students may receive credit for only one of the following courses: CMIS 435 or CMSC 440.

CMIS440 Advanced Programming in Java (3 cr.)
Prerequisite: CMIS 241, CMIS 242, or CMIS 340. An exploration of advanced Java Enterprise applications. Topics include Java server pages, servlets, Java database connectivity, and Enterprise JavaBeans. Students may receive credit for only one of the following courses: CMIS 440 or CMIS 498A.

CMIS445 Distributed Systems (3 cr.)
Prerequisites: CMIS 141, CMIS 141A, CMIS 315, or CMIS 340. Recommended: CMIS 325. An examination of the concepts and design principles of distributed computer systems. Topics include communications, operating systems, interprocess communications, distributed objects, simple object access protocol (SOAP), Web services, distributed file systems, name services, time services, distributed multimedia systems, security, transactions, and replication (as they relate to the distributed system environment). Standards for distributed object-oriented programming are discussed. Course includes a distributed programming project in JAVA that illustrates many of the concepts. Students may receive credit for only one of the following courses: CMIS 445 or CMSC 445.

CMIS455 Requirements Development (3 cr.)
Prerequisite: CMIS 330. A study of concepts and techniques for planning and developing high-quality software products. Fundamentals of specification (including formal models and representations, documents, and standards) are examined. Methods of specifying and developing requirements for generating software are discussed. Projects using these techniques are included. Students may receive credit only once under this course number.

CMIS460 Software Design and Development (3 cr.)
Prerequisite: CMIS 330. An in-depth treatment of the concepts and techniques for designing and developing software for large projects. Discussion covers design strategies, principles, methodologies, and paradigms, as well as evaluation and representation. Other topics include architectural models and idioms, development tools and environments, implementation guidelines and documentation, and organization of design and development functions. Issues of program quality, program correctness, and system integration are addressed. Project work incorporates principles and techniques of software design and development.

CMIS465 Software Verification and Validation (3 cr.)
Prerequisite: CMIS 330. A study of tools, methods, and current practices for assessing the quality and correctness of software. Topics include the roles of testing and formal verification, fundamentals and formal models of program verification, planning and documentation for quality assurance, methods of performing technical reviews, strategies of system testing and integration planning, and principles and practices used in conducting tests.

CMIS475 Advanced Programming in Perl (3 cr.)
Prerequisite: CMIS 375 or CMIS 398P. A study of advanced Perl features such as packages, modules, classes, and objects. Focus is on creating a complete Perl database application. A Web server is used to connect front-end technology such as HTML forms with back-end server-based Perl programming for functional Web-based client/server applications. Common Gateway Interface (CGI) programming is explored to provide database connectivity for use in the client/server model. Students may receive credit for only one of the following courses: CMIS 475 or CMIS 498P.

CMIS485 Web Database Development (3 cr.)
(Formerly CMIS 498B.) Prerequisite: CMIS 320, knowledge of relational database design and SQL, and programming language experience. Recommended: CMIS 340 or CMIS 241. An exploration of an assortment of current Web technologies and programming language options used to interface a relational database to a Web server. Technologies such as CGI/Perl, Active Server Pages, and Java are utilized in the lab. The three-tiered architecture is studied in depth via a number of hands-on activities and projects. Students may receive credit for only one of the following courses: CMIS 485 or CMIS 398B.

CMIS498 Spec Topics in Computer and Information Science (3 cr.)
Prerequisites: Vary according to topic. A seminar on topics in computer and information science. May be repeated to a maximum of 6 credits when topics differ.