Course Descriptions

Below is a list of course descriptions and syllabi.

Course Number Course Title and Description Frequency
CSC 1000 Introduction to Computer Science - Provides an overview of current computing technology, organization, and use. Topics surveyed include data representation and storage, hardware and software organization, communications technologies, ethical and security issues. Provides hands-on training in common application software, such as word processing, spreadsheets, presentation, as well as in electronic telecommunications, such as e-mail, Internet and database searches. The University database and Internet pages are emphasized. Offered every term
CSC 1002 Personal Digital Security- Students learn how to reduce exposure to risks and how to identify, assess and repair infected devices. Offered every term
CSC 1050  Introduction to C and Unix- Introduction to Unix, Unix editor, and C Programming Language. Unix development tools and fundamentals of C language discussed. No credit for computer science students after CSC 1100. Offered every term
CSC 1100 Problem Solving and Programming- Problem solving with algorithms, and their realization as computer programs using a structured, general purpose programming language; data types, operators, expressions, assignment, input and output, selection and repetition control structures; modularity and procedural abstraction using functions with parameters; structured data types, arrays, pointers and strings.  Offered every term
CSC 1101 Problem Solving and Programming Laboratory- Mandatory two-hour closed laboratory; discussion of lecture materials and completion of hands-on exercises. Implementing programs using a general purpose programming language; software resulting from this can be used in more advanced computer science courses. Offered every term
CSC 1500 Fundamental Structures in Computer Science- Introduction to fundamental control and data structures in computer science such as algorithms and complexity; recursive algorithms; program correctness using the predicate calculus; reasoning about algorithms using mathematical induction; divide and conquer algorithms; recurrence relations; set properties and their computation; and computing with relations. Graph properties and their computation, and tree properties and their computation, will be covered if time permits. Offered every term
CSC 1501 Fundamental Structures in Computer Science Lab- Discussion and supervised hands-on exercises to complement CSC 1500. Offered every term
CSC 2000 Introduction to C++ Programming Language- Elements of C++; carrays, pointers and references; operators; classes and objects. No credit for Computer Science majors. Offered every term
CSC 2110 Computer Science I- Rigorous introduction to fundamental object-oriented concepts and techniques of computer programming using an object-oriented language. Introduction to data abstraction; design of abstract data types. Introduction to recursion; programming with generic data types; inheritance; polymorphism; and exception handlers. Concepts applied to console programs and event-driven programming using a simple graphics API. Offered every term
CSC 2111 Computer Science I Lab- Mandatory two-hour supervised lab; hands-on exercises to complement CSC 2110. Object-oriented techniques in a general-purpose object-oriented programming language. Resulting software may be used in more advanced computer science courses. Offered every term
CSC 2200 Computer Science II- Design and implementation of fundamental abstract data types of computer science (such as stacks, queues, trees, lists, hashing, and graphs), using an object-oriented language. Programming requirements include the implementation of abstract data types using arrays and dynamic links; recursion; sorting and searching; hashing; and string processing. Introduction to algorithm analysis. Offered every term
CSC 2201 Computer Science II: LabHands-on lab which complements lecture material in CSC 2200. Lab attendance is mandatory. Implementing data structures and algorithms using object-oriented techniques; techniques of analysis of algorithms; resulting implementations are working pieces of software that can be used in more advanced computer science courses. Offered every term
CSC 3020 Java Programming- Introduction to the fundamentals of programming using Java. Topics include: object-oriented programming, classes, constructors, flow control statements, data types, methods, inheritance, data hiding, abstraction, exceptions, file I/O, Java GUI, and Java packages. Offered every term
CSC 3100 Computer Architecture and Organization- Organization and architecture of computer systems. Topics include: digital logic and digital systems; machine-level representation of data and programs; assembly level machine organization and programming; register-level description of computer execution and the functional organization of a computer; role and function of programming languages, libraries and operating systems; performance evaluation; systems programming. Offered every term
CSC 3101 Computer Architecture and Organization: Lab- Two-hour closed lab; students explore and experiment with assembly language programming, data representation, and simple circuit design. Lab attendance is mandatory. Offered every term
CSC 3110 Algorithm Design and Analysis- Formal techniques to support design and analysis of algorithms: underlying mathematical theory and practical considerations of efficiency. Topics include asymptotic complexity bounds, techniques of analysis, algorithmic strategies, advanced data and file structures, and introduction to automata theory and its application to language translation. Offered every term
CSC 3400 Human-Computer Interaction- User interface design, usability, evaluation, user-centered design. Fall only
CSC 3750 Introduction to Web Technology- Understanding the Internet using several access methods; required software and tools. Topics include: e-mail, FTP, Telnet, Gopher, Archie, Newsgroups, WWW, HTML, CGI and PHP scripting and how to create an active web site. Laboratory exercises required. Offered every term
CSC 4110 Software Engineering- Software life cycle; software requirement analysis; software system design; software implementation and testing; software maintenance; team programming; ethics and programmers. Offered every term
CSC 4111 Software Engineering LabMandatory two-hour closed lab; lecture materials and hands-on exercises which complement CSC 4110. Offered every term
CSC 4290 Introduction to Computer Networking- Introduction of topics such as network architecture, multiple access control, packet switching, routing and flow control, congestion control and quality-of-service, Internet protocols, and elements of distributed computing. Fall only
CSC 4420 Computer Operating Systems- Operating system services; file systems; CPU scheduling; memory management; virtual memory; disk scheduling; deadlocks; concurrent processes. Offered for undergraduate major credit only. Offered every term
CSC 4421 Computer Operating Systems: Lab- Mandatory two-hour closed lab; lecture materials and hands-on exercises which complement CSC 4420. System call interface; introduction to operating systems programming; use of simulation to better understand operating systems behavior. Offered every term
CSC 4500 Introduction to Theoretical Computer Science- Finite automata and regular expressions; context-free grammars; pushdown automata; Turing machines; hierarchy of formal languages and automata; computability and decidability. Fall and Winter only
CSC 4710 Introduction to Database Management Systems- Topics include: database concepts, ER modeling, schemas and constraints, SQL and relational algebra, web-based database applications, triggers and views, physical organization and indexing, query processing, query optimization, NoSQL databases. Offered every term
CSC 4992 Special Topics in Computer Science- Python Winter only
CSC 4992 Special Topics in Computer Science- Cyber Security Practice Winter only
CSC 4996 Senior Project and Computer Ethics-  Development of skills for planning, managing, implementing, and documenting complex software projects; legal, social and ethical issues in software development and computer use. Project management techniques; professional conduct, social responsibility, liability, ownership of information, privacy, security and crime. Fall and Winter only
CSC 4997 Senior Project Lab- Development of project management skills while managing, implementing and documenting a real-world project from initial idea to final implementation. Theory, software engineering techniques, group activities, and computer tools such as Microsoft Project. Mandatory lab. Fall and Winter only
CSC 5050 Algorithms and Data Structures- Introduction to problem solving methods and algorithm development; data abstraction for structures such as stacks, queues, linked lists, trees, and graphs; searching and sorting algorithms and their analysis. Not for CSC major credit. Offered for graduate credit only.   
CSC 5250 Network, Distributed, and Concurrent Programming- Fundamental concepts and skills of developing networked, distributed, and concurrent applications. Topics include: inter-process communication, TCP/IP sockets programming, remote method invocation, multithreading, concurrency and synchronization. Fall only
CSC 5270

Computer Systems Security- Fundamental technologies for enabling an e-society which is more predictable, more accountable, and less vulnerable to attacks. Covers three components: security requirements and protocols, cryptography algorithms, and case studies.

Fall only
CSC 5280 Introduction to Cyber-Physical Systems- Topics include: modeling, design, analysis, and implementation of cyber-physical systems; dynamic behavior modeling, state machine composition, and concurrent computation; sensors and actuators; embedded systems and networks; feedback control systems; temporal logic and model checking.  
CSC 5430 Game Programming and Design I- Fundamentals of game programming and game design using C++, DirectX, Windows, and C#.  Fall only
CSC 5431 Game Programming and Design I: Lab-  Laboratory for CSC 5430. Focus on modding, or making changes to existing programs to achieve specific results. Fall only
CSC 5750 Principles of Web Technology- History and development of the world-wide web. Techniques for authoring static and dynamic content for the world-wide web. Web security techniques. Electronic commerce on the web. Lab exercises required. Fall and Winter only
CSC 5800 Intelligent Systems: Algorithms and Tools- Introduction to basic algorithms and software tools for intelligent data representation and analysis, including: data pre-processing, data exploration and visualization, model evaluation, predictive modeling, classification methods, association analysis, clustering, anomaly detection, representing extracted patterns as expertise, tools for data mining and intelligent systems such as WEKA, CLIPS, and MATLAB. Fall only
CSC 5825 Introduction to Machine Learning and Applications - Through algorithmic investigation, brainstorming, and case analysis, students develop the skills and strategies that are necessary for effective leaning from data, including Big Data emerging from science and engineering. Winter only
CSC 5991 Special Topics in Computer Science- Network and Digital Forensics  
CSC 5991 Special Topics in Computer Science- Network Penetration Testing  
CSC 5991 Special Topics in Computer Science-  Intro to Cyber-Physical Systems  
CSC 5991 Special Topics in Computer Science- Functional Scala Programming for the Web  
CSC 5991 Special Topics in Computer Science- Cyber Security Management  
CSC 5991 Special Topics in Computer Science- Intro to Applied Cyber Security  
CSC 5991 Special Topics in Computer Science- Developing iOS 8 Apps with Swift CAO  
CSC 5991 Special Topics in Computer Science- Foundations of Data Science  
CSC 5991 Special Topics in Computer Science- Linux Administration Summer only
CSC 5991 Special Topics in Computer Science- Mobile Application and Development in Android  
CSC 5991 Special Topics in Computer Science-  Professional Ethical Hacking  
CSC 5991 Special Topics in Computer Science- Hadoop Programming for Big Data  
CSC 5991 Special Topics in Computer Science- Intro to Machine Learning and Applications  
CSC 5991 Special Topics in Computer Science- .Net Web Development using C# and F#  
CSC 6110 Software EngineeringSoftware process models; advanced software system design; software project management; software analysis; testing and performance analysis; software maintenance; reverse engineering; software reuse; software metrics; object-oriented development.  
CSC 6220 Parallel Computing I: ProgrammingParallel computing concepts, examples of parallel computers, parallelism in algorithms / data / programs, experiences with state of the art parallel computers.  
CSC 6280 Real-Time and Embedded Operating SystemsOperating system design for real-time and embedded systems. Focus on scheduling, synchronization, communication, and process and memory management for time-critical and resource-constrained applications. Offered biannually
CSC 6290 Data Communication and Computer NetworksData communication fundamentals and principles governing computer communication networks. Components of networks, how they are connected; basics of design and implementation of network protocols. Fall only
CSC 6430 Game Programming and Design II- Game design methods, team development, languages for game design, debugging and testing, game platforms, memory management and I/O, game physics, character animation, AI agents, AI path programming, networking, online and multiplayer gaming. Winter only
CSC 6431 Game Programming and Design II: Lab- Architecture and tools for modern game platforms. Game development environment; basic aspects of game engine design, graphics engine design, use of shaders.  Winter only
CSC 6500 Theory of Languages and Automata- Recursive and recursively enumerable languages; decidability and computability; Rice's theorem; time complexity; space complexity.  
CSC 6580 Design and Analysis of Algorithms- Best case, worst case, and expected case complexity analysis; asymptotic approximations; solutions of recurrence equations; probabilistic techniques; divide-and-conquer; the greedy approach; dynamic programming; branch and bound; NP-completeness; parallel algorithms.  
CSC 6710 Database Management Systems I- Data models, normal forms, relational systems and SQL, query optimization, object-oriented systems, object-relational systems, student Oracle project.  
CSC 6800 Artificial Intelligence I- Basic concepts; topics include: recursive problem solving, knowledge representation using semantic networks and frames, state space search methods, planning and problem solving, game playing and adversarial search methods, rules and production systems (RETE networks), constraint satisfaction techniques and applications, optimization algorithms including genetic algorithms, logic programming. Implementation in Lisp and Prolog.  Fall only
CSC 6860 Digital Image Processing and AnalysisReview of image formation and acquisition; image transformation; image enhancement and restoration; image compression; morphological image processing; edge detection and segmentation; architecture for image processing. Offered for graduate credit only.  Fall only
CSC 6991 Special Topics in Computer Science- 3D Graphical and Geometric Modeling  
CSC 6991 Special Topics in Computer Science- Computer Security  
CSC 6991 Special Topics in Computer Science- Geometric Modeling Applications in Computer Graphics  
CSC 6991 Special Topics in Computer Science- Principles of Semantic Web Technologies and Applications  
CSC 7260 Distributed Systems- Models of distributed systems, distributed synchronization, algorithms, consistency and replication models and algorithms, fault-tolerance in distributed systems.  
CSC 7290 Advanced Computer Networking- Foundations of computer networking (e.g., performance evaluation and analysis, protocol specification and verification), latest development in network architecture and technology (e.g., wireless networks, sensor networks, peer-to-peer networks, vehicular networks).  
CSC 7710 Database Management Systems II- Concurrency control, transaction processing, crash recovery, security, distributed and heterogeneous databases, data warehousing, data mining, multimedia systems, student Oracle project.  
CSC 7800 Artificial Intelligence II- Advanced topics from these areas: machine learning techniques (inductive and deductive), neural networks and perceptrons, genetic algorithms, advanced concepts in knowledge-based system design, inexact inference, constraint satisfaction techniques and applications, object-oriented programming. Implementation in Lisp and Prolog. Winter only
CSC 7810 Data Mining: Algorithms and Applications- Application of various basic/advanced data mining techniques to real-world problems.  
CSC 7991 Advanced Topics in Computer Science- Advanced Visual Computing  
CSC 7991 Advanced Topics in Computer Science-  Advanced Cyber-Human Interactions  
CSC 8260 Seminar in Networking, Distributed Systems and Parallel Systems- Discussion of current research papers in the fields.  
CSC 8710 Seminar in Database Management Systems- Discussion of current papers in the field.  
CSC 8860 Seminar Topics in Computer Vision and Pattern Recognition- Discussion of current papers in the field.  
CSC 8990 Graduate Seminar- Discussion of current research by faculty and visitors.  

Do you have a question about one of the courses or syllabi? Reach out to a Computer Science undergraduate or graduate advisor.

150 years in the heart of Detroit