Computer and Information Science
Courses in computer and information science (designated CMIS) may be applied as appropriate, for example, toward:
- the general education requirement in computing;
- a major in computer and information science or in computer studies;
- a minor in computing;
- a Computer Studies Certificate; and
- electives.
Students without recent experience in problem solving with computers should begin with CMIS 102. It is recommended that for each of the first two sessions students should not take more than one course that involves programming. The suggested sequence of courses (for students who already have the prerequisite knowledge for CMIS 141) is CMIS 141 and 160 or 170 followed by CMIS 242 and 310.
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.
(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.![]()
(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.![]()
Prerequisite: CMIS 102 or CMIS 102A. A study of the principles and use of Extensible Markup Language (XML). The structure, transformation presentation and implementation of XML technologies are covered including document type definitions (DTDs), Extensible Style Language for Transformation (XSLT), and schemas. Hands-on projects and exercises are included.
Prerequisite: CMIS 141 or CMIS 141A. A second semester study of the Java programming language to include Inheritance, Interfaces, Graphical User Interfaces, Exceptions, Arrays and Collections. Emphasis is on using existing Java classes to build and document applications.
(Not open to students who have completed CMSC 311.) Prerequisite: 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. Discussion covers hard-wired and microprogrammed design of control units and concepts such as pipelining and memory hierarchy. Students may receive credit for only one of the following courses: CMIS 270, CMIS 310, CMSC 311, or IFSM 310.![]()
Prerequisite: CMIS 102 or CMIS 102A. A study of the functions and underlying concepts of relationally organized database systems. Discussion covers data models and their application to database systems. 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.![]()
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.![]()
Prerequisite: CMIS 141, CMIS 141A, CMIS 315, or CMIS 340. Recommended: CMIS 310. 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.![]()
Prerequisite: CMIS 241, 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.![]()
- Indicates extensive computer use by students.
Last updated: 21 July 2008