University of Michigan Dearborn Logo
Google
Computer and Information
Science Department
Course Description
CIS 125 - Survey of Computer Science [F,W]

This class is an introduction to the principles that form the foundation of computer science for students with no prior background in computing. This course is suitable for students with a non-technical background who wish to study the key principles of computer science rather than just computer programming. The class will introduce many concepts from computer science including: Alice programming, graph theory, combinatorics, finite state machines,
computer networks, artificial intelligence, and graphics. This course cannot be taken after having taken CIS 150. (3 credits)


Prerequisites: Knowledge of algebra.

CIS 150 - Computer Science I [F,W,Sp/Su]

This course provides a foundation for further studies in computer and information science and emphasizes a structured approach to problem solving and algorithm development. Topics include principles of program design, coding, debugging, testing, and documentation. Students are introduced to the Unified Modeling Language for requirements analysis using use-cases and activity diagrams, an object-oriented programming language (C ), and the fundamentals of computer hardware, system software, and components. The course will consist of three lecture hours and one two-hour laboratory. (4 credits)


Prerequisites: Previous or concurrent enrollment in MATH 115.

CIS 200 - Computer Science II [F,W,Sp/Su]

This course presents techniques for the design, writing, testing, and debugging of medium-sized programs, and an introduction to data structures (stacks, queues, linked lists) using the C programming language. C topics covered include pointers, templates, and inheritance. The principles of UML modeling are also introduced. This course will consist of three lecture hours and one two-hour laboratory. (4 credits)

 

Prerequisites: MATH 115 and (CIS 150 or IMSE 150 or CCM 150) and previous or concurrent enrollment in CIS 275.

 

CIS 205 - C Programming [F,W,Sp/Su]

A study of the C programming language. Students write several programs illustrating the use of C in science, engineering, and business. (3 credits)


Prerequisites: ENG 100.

CIS 275 - Discrete Structures I [F,W,Sp/Su]

An introduction to various topics in discrete mathematics, such as set theory, mathematical logic, functions, counting, advanced counting techniques, relations, trees, graphs, trees, and Boolean algebra. Applications to relational databases, modeling reactive systems, and program verification are also discussed. (4 credits)


Prerequisites: MATH 115 and previous or concurrent enrollment in CIS 200

CIS 285 - Software Engineering Tools [F,W]

This course covers various CASE tools, such as UML modeling and code generation tools, configuration management tools, defect management tools, an integrated development environment for coding and debugging, unit and testing tools, and build tools. Students will learn these tools in a laboratory environment. The course will be comprised of two lecture hours and one two-hour laboratory. (3 credits)


Prerequisites:
CIS 200 and CIS 275.

 

CIS 294 - Visual Basic Programming [F,Su]

An introduction to the Visual Basic programming language, its libraries, syntax, and semantics, as well as to more advanced topics such as event driven programming with a graphical user interface, GUI design techniques and standards, and object-oriented programming as it relates to Visual Basic. Since Visual Basic is a multi-purpose programming language, there will also be coverage of several unique features, such as databases, prototyping, and multimedia. (3 credits)

 

Prerequisites: CIS 200 or IMSE 200.

 

CIS 296 - Java Programming [W]

An introduction to the Java programming language, including applets, applications, Swing, graphics, multimedia, GUI's, threads, multitasking, and client-server computing. (3 credits)


Prerequisites: CIS 200 or IMSE 200.

 

CIS 297 - Introduction to C# [W]

An introduction to the C# programming language and the .NET Framework for development of Windows game applications. Some discussion of DirectX programming is also included. (3 credits)


Prerequisites: CIS 200 or IMSE 200.

 

CIS 299 - Internship [F,W,Sp/Su]

Student works with an industrial sponsor in the area of CIS. (1-3 credits)

 

Prerequisites: Permission of internship coordinator.

CIS 306 - Discrete Structures II [F,W]

This course introduces students to advanced topics in descrete mathematics, including the theory of computation (finite automata, Turing machines), grammars, and complexity theory (decidability, P, NP, NP-completeness). Other topics are selected from current topics of interest with mathematical content, such as RSA encryption, coding theory, information theory, software metrics, computational geometry, quantum computing, and game theory. (4 credits)


Prerequisites: CIS 275

CIS 310 - Computer Organization and Assembly Language [F,W]

The architecture of computer systems and associated software. Topics include digital logic circuits, computer interfacing, interrupt systems, input/output systems, memory systems, assemblers, assembly language programming, and computer networks. (4 credits)


Prerequisites: MATH 115 and (CIS 200 or IMSE 200) and CIS 275.

CIS 350 - Data Structures and Algorithm Analysis [F,W,Sp/Su]

This course focuses on data and algorithm design. Data design topics include object-oriented discussions of hashing, advanced tree structures, graphs, and sets. Algorithm design topics include the greedy, divide-and-conquer, dynamic programming, backtracking, and branch-and-bound techniques. (4 credits) (Topics as of Fall 2008)


Prerequisites: MATH 115 and (CIS 200 or IMSE 200) and CIS 275.

CIS 3501 - Data Structures and Algorithm Analysis for Software Engineers [F,W,Sp/Su]

This course focuses on data design and algorithm design for software engineers. Data design topics include object-oriented discussions of hashing, advanced tree structures, graphs, and sets. Algorithm design topics include the greedy, divide-and-conquer, dynamic programming, backtracking, and branch-and-bound techniques. (4 credits)


Prerequisites: MATH 115 and (CIS 200 or IMSE 200) and CIS 275 and (previous or concurrent enrollment in CIS 285 or permission of instructor).

CIS 375 - Software Engineering I [F,W]

An in-depth treatment of the following software engineering topics: software engineering paradigms, requirements, specification, functional design, object-oriented design, user interface design, software verification and validation, and the maintenance and management of software engineering artifacts, as well as an introductory discussion of software reliability. Various phases of the software engineering process will be modeled using UML. (4 credits)


Prerequisites: (CIS 350 or CIS 3501 or IMSE 350 or (ECE 370 and ECE/MATH 276)) and COMP 270 and previous or concurrent enrollment in CIS 285.

CIS 376 - Software Engineering II [W,Sp/Su]

A continuation of the formal development of the software engineering material begun in CIS 375. Topics covered include personal software process, team software process, formal methods, security, software architecture, software quality assurance, software fault tolerance, the evaluation of the effectiveness of human computer interaction, and software reliability. (4 credits)


Prerequisites: CIS 375.

CIS 381 - Industrial Robots [F,W,Sp/Su]

This course introduces students in engineering, management, and computer science to modern robot technology and the application of this technology to improve productivity in manufacturing and assembly operations. The emphasis will be on applications of robot technology to production problems rather than on the extensive theory of robotics. (3 credits)


Prerequisites: MATH 115, knowledge of programming, and junior standing.

CIS 387 - Digital Forensics I [F]

This course takes a detailed, hands-on approach to study the procedures and techniques used to identify, extract, validate, document and preserve electronic evidence. Students completing this course will be familiar with the core computer science theory and practical skills necessary to perform basic computer forensic investigations, understand the role of technology in investigating computer-based crime, and be prepared to deal with investigative bodies at a basic level. This course will be comprised of three lecture hours and one two-hour laboratory.

 

Prerequisities: (CIS 200 or ECE 270) and previous or concurrent enrollment in (CIS 310 or ECE 370 or ECE 372)

CIS 390 - Topics in Computer Science [F,W,Sp/Su]

Selected topics in an area of computer science. The specific topics will be announced (together with special prerequisites) each time offered. Student must elect different topics to take both 390 and 391. (1-3 credits)


Prerequisites: CIS 350 or equivalent.

CIS 391 - Topics in Computer Science [F,W,Sp/Su]

Selected topics in an area of computer science. The specific topics will be announced (together with special prerequisites) each time offered. Student must elect different topics to take both 390 and 391. (1-3 credits)


Prerequisites: CIS 350 or equivalent.

CIS 399 - Internship [F,W,Sp/Su]

Student works with an industrial sponsor in the area of CIS. (1-3 credits)


Prerequisites: Permission of internship coordinator.

CIS 400 - Programming Languages [F]

Systematic study of programming languages with regard to their implementation, structures, and use. Languages are compared with regard to their various data types, data structures, operations, control structures, programming environments, and ease of use for various programming problems. (4 credits)


Prerequisites: CIS 350 or CIS 3501 or IMSE 350 or (ECE 370 and ECE/MATH 276).

CIS 405 - Algorithm Design and Analysis [F]
This course discusses how to design efficient algorithms. Topics include asymptotic analysis, average-case and worst-case analysis, recurrence analysis, amortized analysis, classical algorithms, computational complexity analysis, NP-completeness, and approximation algorithms. In addition, the course investigates approaches to algorithm design including: greedy algorithms, divide and conquer, dynamic programming, randomization, and branch and bound. (3 credits)


Prerequisites: CIS 350 or equivalent.

CIS 421 - Database Management Systems [F,W]

An introduction to database system concepts and techniques. Topics covered include: database environment, ER model, relational data model, object-oriented databases, object-relational databases, database design theory and methodology, database languages, query processing and optimization, concurrency control, database recovery, and database security. (4 credits)


Prerequisites: CIS 350 or CIS 3501 or IMSE 350 or (ECE 370 and MAT 276).

CIS 423 - Decision Support and Expert Systems [F]

The application of artificial intelligence techniques in building decision support and expert systems for management and other applications. Topics include fundamentals of artificial intelligence, knowledge representation and knowledge processing, tools for building expert systems (logic programming, expert shells), decision support system design (modelling and simulation), expert system design (knowledge engineering, learning). (3 credits)


Prerequisites: CIS 421.

CIS 4261 - Information Systems Analysis and Design I [F]

This course is an introduction to the principles of information systems analysis and design and their role in business organizations. Topics include Systems Development Life Cycle (SDLC), using CASE (Computer Aided Software Engineering) tools for systems design and analysis, prototyping, Rapid Application Development (RAD), extreme programming, quality assurance through software engineering, and object-oriented systems design and analysis using UML (Unified Modeling Language). Participation in a major design project is a requirement for this course. (4 credits)


Prerequisites: CIS 375 and previous or concurrent enrollment in CIS 421.

CIS 4262 - Information Systems Analysis and Design II [W]

This course is a continuation of CIS 4261, providing students with breadth and depth in advanced information systems. Topics include web-based information systems, XML, web databases, ontologies, information retrieval, system integration, B2B (business-to-business) e-commerce, web services, data mining, and data warehousing. Participation in major design projects is a requirement for this course. (4 credits)


Prerequisites: CIS 4261.

CIS 427 - Computer Networks and Distributed Processing [F,W]

The study of general design principles and concepts of computer networks. Topics include OSI model and internet architecture, communication hardware (transmission media and data transmission and encoding), physical and data link layers, wide-area networks (packet/circuit switching and routing technologies), local-area Networks, wireless networks, internet protocols (IP, TCP, UDP), congestion control, network security, the client-server model, and distributed systems. (4 credits)


Prerequisites: (CIS 350 or CIS 3501 or IMSE 350 or (ECE 370 and ECE/MATH 276)) and IMSE 317.

CIS 435 - Web Technology [F]

The study of technologies used to design and implement multimedia websites. Topics include web servers, HTML, CGI, scripting languages, Java applets, back-end database connectivity, web security, multimedia, XML, web services, .NET, semantic web. (3 credits)


Prerequisites: Previous or concurrent enrollment in CIS 375 or equivalent.

CIS 437 - Advanced Networking [W]

The study of the protocols, algorithms and tools needed to support the development and delivery of advanced network services. Topics include overview of the internet, congestion control, quality of service, internet multicasting, multimedia networking, mobile and wireless networks, vehicular networks, overlay networks, peer-to-peer networks, internet management (SNMP), and internet applications (web-HTTP and email-SMTP). (3 credits)

 

Prerequisites: CIS 427.

CIS 447 - Introduction to Computer and Network Security [F]

This course provides a broad-spectrum introduction to the fundamental principles of computer and network security. Topics will include security policies, models and mechanisms for confidentiality, integrity and availability, access control, authorization, cryptography and applications, threats and vulnerabilities in computer networks, key management, firewalls and security services in computer networks. (3 credits)

 

Prerequisites: Previous or concurrent enrollment in CIS 450.

CIS 450 - Operating Systems [F,W]

This course presents the main functions of an operating system as a manager of resources, including file systems, disk and storage, CPU and memory. The concepts of process and thread, synchronization mechanisms, scheduling strategies and deadlock detection/avoidance are covered in detail, along with an introduction to protection and security and distributed systems. (4 credits)


Prerequisites: IMSE 317, (CIS 350/3501 or IMSE 350 or (ECE 370, and ECE/MATH 276 and (ECE 372 or ECE 375))).

CIS 451 - Computer Graphics [F]

This course covers the basic graphical concepts such as graphics output primitives, two-dimensional transformations, windowing, clipping and viewing, three-dimensional transformations, windowing, clipping and viewing, and visible line/surface detection methods. (3 credits)


Prerequisites: (CIS 350 or CIS 3501 or IMSE 350 or (ECE 370 and MAT 276)) and (MATH 217 or MATH 227).

CIS 452 - Computer Animation [W]

This course introduces basic techniques for digital animation, computer and video games, and web multimedia. We will study the process of creating animated video clips from start to finish, including story creation, storyboarding, modeling, animation, and post-production. Then we will learn several key techniques for video editing and motion generation, including keyframe, motion capture editing, collision detection, particle system, physical simulation, and real-time rendering. The techniques for web animation and multimedia, as well as internet gaming will also be addressed. (3 credits)


Prerequisites: CIS 451.

CIS 467 - Digital Forensics II [W]

This course is a continuation of Digital Forensics I and will focus on Internet Forensics. Students will examine in-depth concepts in Internet evidence collection and preservation, as well as applications of contemporary commercial forensic investigative software.

 

Prerequisites: (CIS 387 or ECE 387) and previous or concurrent enrollment in (CIS 427 or ECE 471)

CIS 474 - Compiler Design [W]

Principles of language compilation. Introduction to formal languages, lexical analysis, top-down and bottom-up parsing, code generation and optimization. Error handling and symbol table management, run-time storage management, programming language design. Introduction to compiler-writing tools such as LEX and YACC. (3 credits)


Prerequisites: CIS 350 or CIS 3501 or IMSE 350 or (ECE 370 and ECE/MATH 276).

CIS 476 - Software Architecture and Design Patterns [F,W]

This course focuses on design patterns in object-oriented programming. The course begins with an overview of UML and a review of object-oriented programming and then moves on to various structural, behavioral and creational patterns, including; facades, adaptors, bridges, factories and the template method. Analysis of case studies will also be discussed. Using various modern software tools, students will apply various design patterns to real-world software design problems to gain complete practical understanding. (3 credits)


Prerequisites: CIS 375.

CIS 479 - Artificial Intelligence [Sp/Su]

Introduction to the basic concepts and methods of artificial intelligence from a computer science perspective. The emphasis will be on the selection of data representations and algorithms useful in the design and implementation of intelligent systems. The course will contain an overview of one AI language and some discussion of important applications of artificial intelligence methodology. (3 credits)


Prerequisites:
CIS 350 or CIS 3501 or IMSE 350 or (ECE 370 and ECE/MATH 276).

CIS 487 - Computer Game Design and Implementation I [F]

The study of the technology, science, and art involved in the creation of computer games. The focus of the course will be hands-on development of computer games. Students will study a variety of software technologies relevant to computer game design, including programming languages, scripting languages, operating systems, file systems, networks, simulation engines, and multi-media design systems. Lecture and discussion topics will be taken from several areas of computer science: simulation and modeling, computer graphics, artificial intelligence, real-time processing, game theory, software engineering, human computer interaction, graphic design, and game aesthetics. (3 credits)


Prerequisites: Previous or concurrent enrollment in CIS 375.

CIS 488 - Computer Game Design and Implementation [W]

A continuation of the material studied in CIS 487. Students will study a variety of software technologies relevant to computer game design, including 3D graphics, computer animation, data-driven game design, multiplayer game programming, and game AI. Lecture topics will be taken from several areas of computer science: simulation and modeling, computer graphics, artificial intelligence, game theory, software engineering, human computer interaction, and game content development. (3 credits)


Prerequisites: CIS 487.

CIS 490 - Selected Topics [F,W,Sp/Su]

Intended for senior and graduate students in CIS. For specific topics, consult the current semester's schedule of courses. (1-3 credits)


Prerequisites: CIS 350 or equivalent.

CIS 491 - Research Project I [F,W,Sp/Su]

Provides the advanced student with the opportunity to undertake a research project under the supervision of a faculty member. At least two weeks prior to registration in the semester when such a course is to be elected, an interested student must submit to the CIS Chair and one CIS faculty member a written request for permission to elect a research course on the appropriate form available in the CIS Office. The request will include a description of the proposed research project. The CIS Chair will then review the proposal with faculty members to ascertain the availability of relevant faculty supervision and to establish appropriate credit. Grades will be granted on a Pass/Fail (S/E) basis exclusively. (1-3 credits)


Prerequisites: Senior standing in the CIS program and permission of the CIS Chair.

CIS 492 - Research Project II [F,W,Sp/Su]

A second registration for a research project in CIS. (1-3 credits)


Prerequisites: Senior standing in the CIS program and permission of CIS Chair.

CIS 493 - Independent Study I [F,W,Sp/Su]

Readings or analytical assignments in accordance with the needs and interests of those enrolled and agreed upon by the student and an instructor, which shall not duplicate a formal course offering. (1-3 credits)


Prerequisites: Permission of CIS Chair and an instructor.

CIS 494 - Independent Study II [F,W,Sp/Su]

A second registration for an independent study in CIS. (1-3 credits)


Prerequisites: Permission of CIS Chair and an instuctor.

CIS 4951 - Design Seminar I [F,W,Sp/Su]

Students participate in the design and implementation of a major software project. Seminar topics discussed include: computing ethics and professional practice in computer science. (2 credits)


Prerequisites: CIS 375.

CIS 4952 - Design Seminar II [F,W,Sp/Su]

Students continue to participate in the design and implementation of a major software project. Seminar topics discussed include: computing ethics and professional practice. (2 credits)


Prerequisites:
CIS 4951.

CIS 4961 - Design Seminar for Software Engineers I [F,W,Sp/Su]

Software engineering students participate in the design and implementation of a major software project. Seminar topics discussed include: computing ethics and professional practice in software engineering. (2 credits)


Prerequisites: CIS 376.

CIS 4962 - Design Seminar for Software Engineers II [F,W,Sp/Su]

Software engineering students continue to participate in the design and implementation of a major software project. Seminar topics discussed include: computing ethics and professional practice in software engineering. (2 credits)


Prerequisites: CIS 476 and CIS 4961.

CIS 499 - Internship [F,W,Sp/Su]

Student works with an industrial sponsor in the area of CIS. (1-3 credits)

 

Prerequisites: Permission of internship coordinator.