Courses

LMU Computer Science encourages students from all fields to take courses in computer science. Each of the course offerings are open to all students provided the stated prerequisites are satisfied.

Courses are numbered according to their middle digit: 1=Hardware and computer systems, 2=Databases, 3=Artificial intelligence, data science, and machine learning, 4=Software engineering and architecture, 5=Networks, 6=Cybersecurity, 7=Computer graphics, vision, and gaming, 8=Theory and languages, 9=Ethics, research methods, independent research, capstone projects, and theses.

  • CMSI 511 Microprocessors

    Introduction to the architecture, programming, and interfacing of 64-bit microprocessors. Addressing modes, data movement, arithmetic, logic, and program control. Memory, input-output, interrupts, direct memory access. Differences between RISC and CISC architectures. Vector computation.

    Units: 3

    Cross list: ELEC 584

    Prerequisites: ELEC 383 or ELEC 385

    Recent offerings: Dr. Vejarano

  • CMSI 517 Embedded Systems

    Introduction to the design and analysis of computational systems that interact with physical processes. Case studies and applications in selected areas such as medical devices and systems, consumer electronics, toys and games, assisted living, traffic control and safety, automotive systems, process control, energy management and conservation, environmental control, aircraft control systems, communications systems, defense systems, manufacturing, and smart structures.

    Units: 3

    Cross list: ELEC 571

    Prerequisites: ELEC 383 or ELEC 385

  • CMSI 532 Probability and Random Processes

    Studies of probability, random variables, stochastic processes, correlation, power spectral density, and linear mean-square estimation with an emphasis on their application to signal processing.

    Units: 3

    Cross list: ELEC 532

  • CMSI 533 Data Science

    Basic mathematical concepts of data science and their implementation in various programming languages. Methods for obtaining and massaging data. Data life cycle, optimization, cost functions, and stochastic gradient descent.

    Units: 3

    Cross List: ELEC 533

  • CMSI 535 Machine Learning

    Introduction to the concepts and methods of Machine Learning (ML) and tools and technologies that can be used to implement and deploy ML solutions. Supervised learning, unsupervised learning, reinforcement learning, and learning theory. Applications including speech recognition, control systems, and bioinformatics.

    Units: 3

    Cross list: ELEC 535

    Recent offerings: Dr. Narayanaswamy

  • CMSI 540 Software Architecture

    Common architectural patterns used in software-intensive systems. Examination of architecture from different viewpoints to develop understanding of the factors that matter in practice, not just in theory. Strategies for evolving software intensive eco-systems including: design of domain appropriate architectures and what it means to be an evolvable architecture, how architecture fits into the specification of software intensive systems, techniques to visualize software-intensive architectures, and common software architectural patterns and the problems they are designed to address. Service, object, and data oriented design principles, embedded and enterprise architectural solutions, centralized and distributed architectures, and cloud computing architectures.

    Units: 3

    Cross List: SELP 551

    Recent offerings: Dr. August

  • CMSI 543 Agile Development and Project Management

    Design, development, and management issues of large-scale software systems which are reliable and easily maintainable, using methodologies applicable to evolving requirements through collaboration between self-organizing, cross-functional teams. A course project covers each step of the development process from the initial needs analysis and requirements specification through design and implementation. Tradeoffs between agile and older approaches, the impact of legacy systems, architectural representation issues, testing, project risk management, and emerging trends in software engineering such as model-driven engineering and aspect-oriented software development.

    Units: 3

    Prerequisite: CMSI 386 or equivalent

    Cross List: SELP 557

    Recent offerings: Dr. August

  • CMSI 544 Engineering for Autonomy

    Recent developments in the theory, design, development, and application of autonomous systems. Technical contributions of experts in the field of autonomous systems, current gaps in theory and technology, system architecture, design of agents, models and knowledge representation, control of robotic manipulators, machine vision, design of wheeled, air, space, and underwater robots, navigation and localization, and political and ethical implications for autonomous systems.

    Units: 3

    Cross List: SELP 554

    Recent offerings: Dr. Triezenberg

  • CMSI 560 Introduction to Cybersecurity

    Topics in cybersecurity for modern, highly networked organizations in both the private and public sectors from an engineering perspective, using NIST’s formal framework of terms, concepts, and methods. Studies of realistic threat models and vulnerability assessments. Comprehensive coverage of technical foundations for extant technologies and tools, including anti-virus software, malware detection, intrusion detection and prevention, firewalls, denial of service attack mitigation, encryption, network monitoring, and automatic audit tools. Complications introduced by emerging trends such as mobile devices and cloud computing. Disaster recovery and business continuity plans. Best practices such as OWASP Top 10 and STIGS.

    Units: 3

    Former course number: CMSI 660

    Cross list: SELP 560

    Recent offerings: Dr. Narayanaswamy | Ms. Mitrovich | Mr. Niebuhr

  • CMSI 563 Enterprise Security and Cyberoperations

    Practices for the protection of enterprise information assets and systems by integrating technical controls with accepted policies, best practices, and guidelines of cybersecurity. External and internal threats, and risks to the core business relative to people, processes, data, facilities, and technologies. Implementation and effective management of the major technical components of security architectures (firewalls, VPNs, etc.) and selected methods of attacking enterprise architectures. Assessment and mitigation, threat and vulnerability analysis, risk remediation, operations, incident handling, business community planning, disaster recovery, security policy formulation and implementation, large-scale cybersecurity program coordination, management controls related to cybersecurity programs, and information sharing. Privacy, legal, compliance, and ethical issues.

    Units: 3

    Former course number: CMSI 663

    Cross list: SELP 663

  • CMSI 583 Computability and Complexity

    Introduction to the study of computability and computational complexity. Models for computation such as finite automata, pushdown automata, Turing machines, Post canonical systems, partial recursive functions, and phrase structure grammars. Complexity classes such as P, NP, RP, and NC. NP-Completeness. Efficient algorithms for matrix multiplication and fast Fourier transforms. Approximation algorithms, randomized algorithms and parallel algorithms.

    Units: 3

    Note: Required for the M.S. Degree

  • CMSI 585 Programming Language Semantics

    Mechanisms for the definition of syntax and semantics of programming languages, covering binding, scope, type systems, control flow, subroutines and coroutines, asynchronous and parallel execution, modularity, and metaprogramming. Denotational, operational, and axiomatic semantics. Case studies are taken from existing popular languages and virtual machines.

    Units: 3

    Note: Required for the M.S. Degree

  • CMSI 611 Information Theory

    Introduction to the concepts of information measures, data compression, and channel capacity. Applications of Shannon theory to evaluate the effectiveness of practical communication links. Error correction coding and its application in reliable communications. Entropy, relative entropy, asymptotic equipartition, entropy of stochastic processes, and differential entropy.

    Units: 3

    Cross List: ELEC 621

  • CMSI 612 Motion Capture Laboratory

    Laboratory course in which students will learn how to set up motion capture systems using two different technologies: (1) infrared cameras and reflective markers, and (2) wearable wireless networks. The motion capture systems will be interfaced to a computer to log and process data via digital-signal-processing and data-classification algorithms.

    Units: 3

    Cross list: ELEC 602

    Recent offerings: Dr. Vejarano

  • CMSI 619 Internet of Things

    Overview of the IoT ecosystem and how value is created with IoT products. Key IoT concepts and technologies and a survey of important IoT companies and their products. Students will learn how to turn ideas into new products that create value for customers. Students will also learn how to work together in cross functional teams, deal with fast, ambiguous, and rapidly changing projects. In addition, students will learn to identify and resolve cybersecurity threats in IoT solutions.

    Units: 3

    Cross list: ELEC 681

    Recent Offerings: Mr. Zimmerman

  • CMSI 620 Database Systems

    Fundamental concepts in the field of database technology. Database system structure, semantic data modeling, relational, document, key-value, object-oriented, and graph databases. Formal query languages, integrity, normalization, security, physical database design, indexing and hashing, query processing and optimization, transaction processing, concurrency, crash recovery, and current research in the field.

    Units: 3

    Former course number: CMSI 686

    Recent Offerings: Dr. August

  • CMSI 627 Knowledge Base Systems

    Detailed study of design and implementation of knowledge-based systems. Logic and theorem proving, deduction systems, reaction systems. Forward and backward chaining. Knowledge acquisition and explanatory interfaces.

    Units: 3

    Former course number: CMSI 682

    Recent offerings: Dr. August

  • CMSI 630 Artificial Intelligence

    Introduction to the fundamental concepts behind the implementation of human-level intelligence in computer systems. Agent architectures, problem-solving methods, heuristic search, game playing, knowledge representation, frames, inheritance and common-sense reasoning, neural networks, genetic algorithms, conceptual clustering and current research in the field.

    Units: 3

    Recent offerings: Dr. August

    Former course number: CMSI 677

  • CMSI 632 Cognitive Systems

    Topics at the intersection of cognitive psychology, experimental design, and machine learning, through an examination of the tools that automate how intelligent agents (both human and artificial) react to, learn from, and otherwise reason about their environments. Causal formalizations for higher cognitive processes surrounding the distinction between associational, causal, and counterfactual quantities, as well as advanced topics in causal inference including do-calculus and transportability. Automation of aspects of human and animalistic reasoning by employing modern tools from reinforcement and causal learning, including: Structural Causal Models, Counterfactual Randomization, Multi-armed Bandit Agents, Markov Decision Processes, approaches to Q-Learning, and Generative Adversarial models.

    Units: 3

    Prerequisite: CMSI 630 or consent of instructor

  • CMSI 634 Deep Learning Applications

    Construction of deep-learning models using recursive and convolutional neural networks. Application areas such as natural language processing, speech recognition, image classification and segmentation, and computer vision. The course requires the implementation of a project applying deep learning to real-world problems.

    Units: 3

    Cross list: ELEC 634

  • CMSI 638 Multi-Agent Systems and Distributed Artificial Intelligence

    Study of the development of multi-agent systems for distributed artificial intelligence. Intelligent agents, multi-agent systems, agent societies, problem solving, search, decision-making, and learning algorithms in the distributed Artificial Intelligence domain, industrial and practical applications of distributed artificial intelligence techniques to real-world problems.

    Units: 3

    Former course number: CMSI 678

    Recent offerings: Dr. August

  • CMSI 655 Wireless Networks

    An introduction to cellular networks and wireless local area networks. Fundamental theories of transmission, antennas, and propagation. Signal encoding, spread spectrum, received-signal impairments in wireless systems, error detection and correction. TCP/IP, satellite communications, mobile IP. Wireless standards such as IEEE 802.11.

    Units: 3

    Cross list: ELEC 673

    Recent offerings: Dr. Vejarano

  • CMSI 656 Wireless Sensor Networks

    The programming and implementation of wireless sensor networks (WSN). Interfaces, memory allocation, component layering, sampling, single- and multi-hop networking, packet sources, reliable transmission, and transmission power control. Students will program wireless sensors that communicate with each other to form a WSN.

    Units: 3

    Cross list: ELEC 680

    Recent offerings: Dr. Vejarano

  • CMSI 662 Secure Software Development

    [COMING FALL 2020] Theoretical foundations and best practices in secure software development. Examination of the application of security techniques in all phases of the software lifecycle (from requirements analysis through deployment and maintenance) with particular emphasis on writing secure software. Threat modeling, cryptography, digital signatures, analysis and assessment, defense against common attack vectors, web security, ethical hacking, and testing best practices. Coursework includes implementation of a networked application with associated threat models and mitigation documentation.

    Units: 3

    Cross List: SELP 662

    Prerequisites: CMSI 560 and competency in at least one systems language (e.g., C) and one scripting language (e.g., Python), and familiarity with basic networking principles.
     

  • CMSI 664 Advanced Cybersecurity Management

    Systems engineering approaches to cybersecurity in modern, highly networked organizations in the private and public sectors. NIST formal framework of terms, concepts, and methods. Creation of realistic threat models and vulnerability assessments for enterprises of different types. Comprehensive coverage of benefits and limitations for extant host-based or network-based technologies including anti-virus software, malware detection, intrusion detection and prevention, firewalls, denial of service attack mitigation, encryption, network monitoring, and automatic audit tools. Optimal combination of management procedures and controls with key technologies. Best practice frameworks such as OWASP Top 10 and STIGS, and resources from institutions such as CERT, NIST, and SANS.

    Units: 3

    Prerequisite: CMSI 560 (may be taken concurrently)

    Cross List: SELP 664

  • CMSI 670 Topics in Interaction Design

    Introduction to interaction design and human-computer interaction, with equal emphasis on learning how to design and evaluate interaction architectures, and learning how to survey and analyze existing literature on the subject to implement such architectures. Interaction guidelines, principles, and theories; usability engineering; the model-view-controller (MVC) and related paradigms. Current research in the field.

    Units: 3

    Prerequisite: CMSI 281 or equivalent

    Recent offerings: Dr. Dionisio

  • CMSI 672 Computer Vision

    Fundamentals of computer vision including image formation, camera imaging geometry, feature detection and matching, boundary detection, stereo, motion estimation and tracking, text and object recognition, image classification, and scene understanding.

    Units: 3

    Prerequisite: CMSI 630

  • CMSI 675 Game Design and Architecture

    The design and development of games, both analog and digital, with an emphasis on modular and scalable video game programming patterns, rather than specific languages or game engines. Concepts are applied through iterative development of game projects and prototypes.

    Units: 3

  • CMSI 690 Research Methods

    Interactive seminar taken in preparation for the graduate capstone project or the graduate thesis. The primary objectives are to provide students with basic skills necessary for performing independent research under the guidance of a faculty member, and to sharpen both written and oral presentation skills. Secondary objectives include broadening the students' technical backgrounds and awareness of contemporary issues, as well as promote life-long learning.

    Units: 3

    Recent Offerings: Dr. August

  • CMSI 694 Graduate Capstone Project

    Project-based seminar in which students will be required to select, research, document, discuss, implement, and present some aspect of a broad area of current interest to computer scientists.

    Units: 3

    Prerequisites: Successful completion of coursework and the endorsement of the faculty advisor.

    Note: Must be taken during the final semester of coursework subject to the approval of the faculty advisor. Should only be taken if none of CMSI 695, 696, or 697 is taken.

    Recent offerings: Dr. August

  • CMSI 695 Master's Thesis I

    Development, writing, and presentation of the M.S. Thesis. Thesis content should be researched and developed over a two- to three-course sequence beginning with this course, approved by the faculty advisor.

    Units: 3

    Prerequisites: Successful completion of coursework and the endorsement of the faculty advisor.

    Recent offerings: Dr. August

  • CMSI 696 Master’s Thesis II

    Continuation of research and thesis preparation for the second semester.

    Units: 3

    Prerequisites: CMSI 695

    Recent offerings: Dr. August

  • CMSI 697 Master’s Thesis III

    Continuation of research and thesis preparation for the third semester.

    Units: 3

    Prerequisites: CMSI 696

    Recent offerings: Dr. August

  • CMSI 699 Independent Studies

    Special study areas defined by a student in cooperation with a faculty member and approved by the Department Chairperson. A maximum of two such courses may be applied towards the Master’s degree. A student wishing to enroll during a given term must submit a proposal to the supervising faculty member at least one month prior to the beginning of that term.

    Units: 1-3

    Examples and Guidelines: Dr. Dionisio | Dr. Toal