LMU Computer Science encourages students from all majors to take courses in computer science. Each of the course offerings are open to all students provided the stated prerequisites are satisfied. Course descriptions are below.
Foundational course emphasizing computer programming, using a popular scripting language such as JavaScript or Python and stressing software development best practices. Topics include values and types, functions, objects, iteration, recursion, command line scripts, event-driven programming, and graphics and animation. Basic data structures and selected algorithmic paradigms are introduced. Laboratory experiences emphasize software engineering practices such as version control, packaging, distribution, and unit testing.
Units: 4
Audience: Intended as the first course for CMSI majors, but open to anyone interested in programming
Core: Mathematical Reasoning (FQTR)
History of computer science and its relationship to other fields. Applications of computational thinking and computing-enhanced creativity in daily life. Numerous examples connecting computing and computing technology to human activities, such as sporting events, elections, politics, and health care. Coursework includes small-scale programming.
Units: 4
Audience: Intended for non-majors
[NOT FREQUENTLY OFFERED] Common stereotypes and assumptions about computing, as reflected in art, entertainment, and conventional wisdom—and the truths and fallacies behind them. Deeper study of seminal popular representations of computing concepts. Critical study of the depiction of computing in film (e.g., 2001, The Matrix, War Games), literature (e.g.,Neuromancer, I Robot, Soul of a New Machine, The Hitchhiker's Guide to the Galaxy), and mixed media (e.g., Spock's Brain, Max Headroom, and Univac's 1952 presidential election forecast).
Units: 4
[NOT FREQUENTLY OFFERED] An overview of the structure and operation of the global Internet. Basic mechanisms such as addressing, routing, caching, and the domain name system (DNS). Physical media such as Ethernet, WiFi, and cellular networks. Popular protocols such as e-mail, web, chat, file transfer, and shells. Privacy and security concerns. Troubleshooting with ping, traceroute, and dig.
Units: 4
Audience: Intended for non-majors (CMSI majors will take CMSI 3550)
An introduction to the discipline of computing, its history, principles, ethical issues, societal impacts, and applications in and relationships to other fields. Development of soft skills including interviewing, resume writing, career building, mitigation of impostor syndrome and stereotype threat, team dynamics, and strategies for success.
Units: 0
Audience: Required for all incoming first year computer science majors
Practicum culminating in the development of an open-source web application utilizing modern front-end and back-end frameworks, and integrating with a cloud datastore and third-party APIs. Topics include: the architecture of full-stack systems, single vs. multipage front ends, client-side visuals and animation, web accessibility, HTTP, asynchronous programming, database programming, version control, continuous integration, and web security.
Units: 2
Practicum culminating in the development of an open-source native mobile application. Topics include: the architecture of full-stack systems, differences between web and native applications, device interaction and fingerprinting, HTTP, asynchronous programming, database programming, version control, continuous integration, and mobile security.
Units: 2
Specification and design of data types, information structures, and their associated algorithms. Collection classes and interfaces for sets, lists, stacks, queues, hierarchies, heaps, and dictionaries. Implementation techniques such as arrays, linked lists, hash tables, and efficient tree structures. Introduction to asymptotic computational complexity. Methods for sorting, indexing, and hashing.
Units: 4
Prerequisite: A grade of C (2.0) or better in CMSI 1010
The study of algorithm paradigms, including divide-and-conquer, greedy methods, dynamic programming, backtracking, and randomization, with an emphasis on combinatorial search. Modern heuristics such as genetic programs and simulated annealing. String processing including matching and longest common subsequence. Advanced sorting. Constraint satisfaction, hill climbing, and optimization. Combinatorial objects such as permutations, combinations, subsets, and partitions. Graph algorithms. Computational geometry. Recurrences and the Master Theorem.
Units: 4
Prerequisite: CMSI 2120
Exploration of computing system operation with a focus on programming at levels with minimal translation between the code and what the computer can access and manipulate directly. Topics include: encoding, decoding, and manipulation of bit representations for integers, floating-point numbers, characters, and machine instructions; the C programming language, up to strings, pointers, and arrays; assembly language, up to calling conventions and the stack; and an introduction to computing tasks close to the system level.
Units: 4
Core: Quantitative Reasoning Flag (LQTR)
Prerequisite: CMSI 2120 recommended
A study of the philosophical and epistemological roots of computer science, covering language, thought, logic, cognition, computation, the Church-Turing thesis, computer programming, and artificial intelligence. Mathematical models of knowledge, learning, consciousness, and self-awareness. Structural and statistical foundations of human language. Holism, reductionism, Zen, and dualism.
Units: 4
Note: Often cross-listed with an Honors course
Survey of the basic principles and methods of both classical and modern cryptology, and the historical context in which these systems have arisen. Secret key and public key encryption and decryption. Random number generation. Hashes. Digital Signatures. Cryptanalysis.
Units: 4
Prerequisite: MATH 101
A puzzle-based introduction to some of the key ideas that have emerged from the study and practice of computation. Superset of topics: Alternate Dice and Map Coloring (brute-force search); Decanter Puzzles and Sun-Tzu's Puzzle (finite state machines); Clock Puzzle (discrete simulation); Birthday Paradox (randomized estimation); Making Change, Hidden-Word Puzzles, and Thief's Dilemma (dynamic programming); Egg Puzzle (sieves); How to Count on your Fingers (binary numbers); Multiplication without Tables (Computer Arithmetic); Towers of Hanoi (recursion); Eight Queens (backtracking); Anagrams (tries); Prisoners and Switches (semaphores); Love in Kleptopia (public-key cryptography); What’s the Best Move? (alpha-beta search); BattleBots (Mindstorms NXT programming); How to Detect a Cyborg (Turing test); Sudoku (proof by contradiction); The Game of Tag (undecidability); Traveling Salesman Puzzles (intractability); Dividing the Ham (fair division).
Units: 4
Core: Quantitative Reasoning (FQTR)
[NOT FREQUENTLY OFFERED] A study of natural systems exhibiting computational processes, with examples from biology, finance, and astronomy. The fractal geometry of nature. Introduction to chaos and dynamic systems. Non-traditional computing devices, including DNA computers and Quantum computers.
Units: 4
Fundamental mathematical tools used in Computer Science: sets, relations, and functions; propositional and predicate logic; proof strategies such as direct, contradiction and induction; number theory; counting, discrete probability and graph theory with applications in computer science
Units: 4
Sophomore-level course arranged by agreement between the student and a supervising faculty member. See the university bulletin for requirements regarding independent studies courses.
Units: 0-4
[NOT FREQUENTLY OFFERED] The study of the logical and physical organization of data stores for efficient update and retrieval. Search engines and data warehouses. Key-value stores, column, document, and graph databases. Data modeling. String similarity and synonyms. Semantic retrieval. Dealing with unstructured content. Stop words, stemming, and lemmatization. Local and cloud-based deployments. Search engine optimization (SEO) and monetization.
Units: 4
Prerequisite: CMSI 2120 and 2130
Introduction to the foundational mathematics and concepts behind the implementation of autonomous reasoning, prediction, and decision-making. Logical and symbolic reasoning, probability theory and inference, Markov models, information and utility theory, sampling and approximation, machine learning, and introduction to deep learning.
Units: 4
Core: Information Literacy Flag (LINL)
Prerequisites: CMSI 2130, or CMSI 2120 with consent of instructor
Mathematical and computational models for biological systems, with applications in simulation, validation, and prediction. The ultimate goal of such models is to replicate an organism’s state and behavior. The course introduces current techniques behind such models and seeks to apply these techniques in new subsystems and species.
Units: 4
An examination of biological information storage and processing at both organic and digital levels. Topics include the central dogma of molecular biology; the genetic code; the structure of DNA; DNA replication, transcription, translation, and regulation; recording and archiving of gene, protein, and transcription factor information in digital form; reading and integrating biological data into end-user applications.
Units: 4
Cross listing: BIOL 367
[NOT FREQUENTLY OFFERED] The construction of scripts and tools for the automation of three-dimensional animation and user interface customization.
Units: 4
Cross list: ANIM 332
The design and implementation of modern operating systems examining both user interaction and internal management of computation and resources. Topics include scheduling, synchronization, and preemptive multitasking of threads and processes; memory and resource management techniques such as virtual memory, page tables, segmentation, atomicity and transactions; file system storage, indexing, and allocation; and security issues at the process, memory, and resource levels. Case studies and a term project involving the extension of a popular open-source operating system kernel.
Units: 4
Core: Information Literacy Flag (LINL)
Prerequisite: CMSI 2210
Theory, design, and programming of database systems. Data modeling foundations such as relational algebra and applications of canonical, logical, and physical schemas; ACID, normalization, constraints, transaction processing; concurrency, scaling up vs. scaling out. Query languages; database software interfaces and frameworks. Database security; indexing and optimization. Students work on a range of real-world database systems and datasets of different types including file-based, relational, document-centric, graph, data warehouses, and search engines.
Units: 4
Prerequisites: CMSI 2210
Introduction to fundamental networking principles and their applications from local networks to the global Internet. Topics include physical networking components, layered abstractions of the Internet architecture, several protocols enabling end-to-end data communication for varied applications and services, client and server network programming, and how key issues of security, scalability, resource allocation, and availability impact the design of computer networks.
Units: 4
Prerequisite: CMSI 2210
[NOT FREQUENTLY OFFERED] Study of the convergence of markets, fair division, and dispute resolution with modern information technologies. Utility theory; formal definitions for fairness; algorithms for proportional, strong, and envy-free division; complexity of cake-cutting algorithms; unequal shares; indivisible goods; impossibility theorems; auctions and elections; electronic markets vs. electronic commerce; pari mutuel wagering and modern wagering websites; efficient market hypothesis; introduction to price theory; prediction markets and IEM (Iowa Electronic Markets); securities exchanges and NASDAQ; online auction markets and eBay; blockchain and cryptocurrencies; architecture and implementation; scalability and security; legal issues; future directions.
Units: 4
The rigorous application of computing paradigms and principles to the development of software systems for solving engineering problems, with hands-on programming comprising a significant portion of the course. Laboratory exercises and projects are implemented with modern languages, toolsets, and libraries for scientific computing and linear algebra. Topics include data structures including arrays, lists, and balanced trees; traditional algorithms for searching and sorting; and algorithms for computational geometry, large-scale data processing, and machine learning.
Units: 4
Audience: Intended for Engineering majors (CMSI majors should take CMSI 2120 and 2130)
Prerequisite: ENGR 160 or consent of instructor
Creation and development of interdisciplinary media projects integrating ideas from interactive narratives, drama management, artificial intelligence, storytelling, and graphics. Coordination among student teams from various backgrounds performing such tasks as usability analysis, detailed design, script writing, video and audio production, graphic art production, authoring, program engine development, media integration, packaging, marketing, and distribution.
Units: 4
Audience: The course seeks collaboration between students in computer science, film, studio arts, screenwriting, management, marketing, and other fields
Introduction to interaction design and human-computer interaction, with a primary focus on user-centered design techniques. Three broad categories of topics within human-computer interaction are covered: (a) concepts in human factors, usability, and interface design, and the effects of human capabilities and limitations on interaction with computer systems; (b) design, development, and evaluation of user interfaces for computer systems and learning how to use existing frameworks to implement interaction architectures; and (c) current areas of cutting-edge research and development in human-computer interaction.
Units: 4
Core: Understanding Human Behavior (EHBV), Writing Flag (LWRT)
Prerequisite: CMSI 2120
The study and development of algorithms for synthesizing, manipulating, and displaying visual information. Topics include: representation, modeling, and creation of visual information in digital form—pixels, images, vertices, polygon meshes, scene graphs; manipulation and rendering of visual information both computationally and mathematically—color manipulation, composition, vectors, matrices/transformations, projection, normal vectors, lighting, clipping, hidden surface removal; usage and development of computer graphics APIs (libraries) at different levels of abstraction—scene/geometry/material libraries, graphics pipeline, vertex and fragment shading, direct graphics memory manipulation.
Units: 4
Core: Creative Experience (ECRE), Quantitative Reasoning Flag (LQTR)
Prerequisite: CMSI 2120
The art and science of games. Goals, rules, game balance, and other fundamentals are introduced, as well as implementation issues such as modeling, physics, animation, networking, and performance. Coverage of existing gaming platforms and languages in provided as needed. Concepts are applied in an appropriately scaled, team-implemented game project.
Units: 4
Development, production, marketing, and distribution of electronic games. Technical details of game and physics engines. Modeling, programming, and interaction techniques. The course covers both two- and three-dimensional platforms.
Units: 4
Prerequisite: CMSI 3751 or consent of instructor
A comparative study of the rationale, concepts, design, and features of several major programming languages, including bindings, scope, control flow, type systems, subroutines and coroutines, modules, objects, asynchronous programming, concurrency, and metaprogramming. Major attention is given to the following broad categories of languages: systems, enterprise, scripting, experimental, and esoteric. Compiler architecture and its relationship to formal models of computation.
Units: 4
Prerequisite: CMSI 2120
Applications of the classical theory of computation (including formal grammars, finite automata, stack machines, Turing machines, intractability and undecidability) in the implementation of compilers, transpilers, and interpreters for high-level computer programming languages. Scanner construction, parser construction, intermediate representations, virtual machines, code generation, and optimization.
Units: 4
Prerequisite: CMSI 3801
Examination of human contexts within computer science and specific technical skills that help facilitate ethical practice, with an emphasis on learning how to situate and confront social-technical issues at play in personal-professional development, interpersonal relationships, community relations, and global citizenship. Topics include: privacy-first software development and data stewardship; data literacy and quantification of complex social issues; value judgements and consequences; the role and responsibility of computer scientists.
Units: 4
Prerequisite: CMSI 1010
Credit awarded for (1) preparing supporting documentation for actual internships taken, or (2) participating in an individual or group directed research project resulting in a project or paper that is presented at a conference or university-sanctioned event.
Units: 0-1
Note: May be repeated for credit
Junior-level course arranged by agreement between the student and a supervising faculty member. See the university bulletin for requirements regarding independent studies courses.
Units: 0-4
Introduction to essential software engineering principles guiding design, development, implementation, and management of modern software projects; software life cycle models; problem description, specification, and analysis; object-oriented and use-case analysis methods; requirements specification; development planning and basics of project management; SEI/CMMI processes; Agile software development methods and activities; testing philosophies, ethical concerns, conflicts, and resolution strategies; technical presentations. Students work in self-organizing teams to ideate, design, implement, test, and present a non-trivial software application which includes concepts from all of the CS curriculum.
Units: 4
Core: Engaged Learning (LENL)
Prerequisite: Consent of Instructor
Continuation of the acquisition and practice of essential software engineering skills as described for CMSI 4071; additional topics include elements of user interface design; front-end development; database integration; networking; SOA, SaaS, and distributed systems; client/server models; more in-depth practices of Agile development, and technical presentations. Students work either individually or in self-organizing teams to ideate, design, implement, test, and present a non-trivial software application which includes concepts from all of the CS curriculum; teams may be continuation from previous CMSI 4071 semester projects.
Units: 4
Core: Oral Skills (LORS), Writing (LWRT)
Prerequisite: Consent of Instructor
Authorship and presentation of a paper, backed by the conception, design, and construction of a software project demonstrating mastery of the computer science curriculum.
Units: 4
Prerequisite: Senior standing and consent of Instructor
Authorship and presentation of a paper, backed by the conception, design, and construction of a software project demonstrating mastery of the computer science curriculum.
Units: 4
Prerequisite: CMSI 4081 and consent of Instructor
Readings and discussion of classic papers, essays, and monographs in a seminar setting.
Units: 1-2
Topics at the intersection of cognitive psychology, experimental design, philosophy of science, and machine learning through an examination of the tools that automate how intelligent agents (both human and artificial) react to, learn from, and hypothesize beyond their environments. Causal formalizations for higher cognitive processes surrounding the distinction between associational, causal, and counterfactual quantities. Automation of aspects of human and animalistic reasoning by employing modern tools from reinforcement and causal learning, including: Structural Causal Models, Multi-armed Bandit Agents, online and offline solutions to Markov Decision Processes, and approaches to Q-Learning, including introductions to Deep Reinforcement Learning.
Units: 4
Prerequisite: CMSI 3300
Senior-level course arranged by agreement between the student and a supervising faculty member. See the university bulletin for requirements regarding independent studies courses.
Units: 0-4
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: 4
Prerequisites: ELEC 2242
Organization, functionality, and operation of hardware and instruction sets of modern microprocessor systems. Design of computing systems that meet desired functionalities. The use of VHDL in the implementation of computer architectures. Topics include memory systems, pipelining, instruction-level parallelism, and multicore processors.
Units: 4
Prerequisite: EECE 3140
Cross list: EECE 5140
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: 4
Cross List: EECE 5141
Prerequisites: EECE 2242
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
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.
Prerequisites: CMSI 2120, MATH 250, and MATH 360
Units: 4
Introduction to the field of natural language processing (NLP), covering algorithms for solving various NLP tasks, including recent deep learning methods, as well as hands-on application of these techniques to real-world problems. Topics include language modeling, text classification, sequence tagging, syntactic parsing, word embeddings, machine translation, question answering, and spoken dialogue systems.
Prerequisites: CMSI 5350
Units: 4
The mathematical theory of language and its applications. Computer modeling and analysis of morphology, syntax, semantics (including logical representations and anaphora resolution), and discourse in human languages. Computer parsing and generation of text and speech. Coverage of both classical and modern (probabilistic) approaches to analysis, including heuristics for conceptual language understanding and translation. Special attention is paid to ambiguity, irony, metaphor, and idiomatic usage. Students will critique translation systems created since the 1940s.
Units: 4
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: SYEG 554
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 2120 or equivalent
Cross List: SYEG 557
An introduction to the history of, and the technological and social aspects surrounding, virtual worlds. Building and scripting objects, and the interaction between avatars, avatar customization, and computer science concepts underlying virtual worlds.
Units: 3
Cross listing: PSYC
[NOT FREQUENTLY OFFERED] A study of virtual worlds. Intrapersonal and interpersonal behaviors of avatars. The technical basis for constructing and scripting these worlds.
Units: 3
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 listed with: SYEG 551
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: 4
Cross list: EECE 5270
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 listed with: SYEG 560
A detailed study of blockchain and related distributed ledger technologies with a focus on the underlying principles from networking, security and cryptography, system performance and scalability, and other areas of computer science. Critical analysis of appropriate applications of distributed-ledger-based systems, along with technical and societal trade-offs. Design and implementation of smart contracts.
Units: 4
Key concepts, technologies, and history at the juncture of computation and music, including sound synthesis, sampling, and sequencing. Explorations of computational aspects of music theory, with applications in machine composition, transcription, and performance.
Units: 3
[PROPOSED COURSE] Theory and practice of the construction of software agents capable of proving theorems as well as discovering new ones. Case studies include Isabelle, ACL2, HOL, and Coq.
Units: 3
Prerequisite: MATH 248
Note: Typically given as a Independent Studies topic. Contact Dr. Toal for details.
Studies of the fundamental theories of probability, random variables, and stochastic processes at a level appropriate to support graduate coursework/research and practice in the industry in electrical and computer engineering. Selected topics include basic probability concepts, total probability and Bayes theorems, independence, probability functions, expectation, moments of random variables, multiple random variables, functions of random variables, central limit theorems, basic stochastic process concepts, wide-sense stationary processes, autocorrelation function, power spectral density, and important processes such as Gaussian, Markov, and Poisson. Applications of the theories to engineering and science problems will be emphasized.
Units: 4
Cross list: EECE 5210
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
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 metaprogamming. 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
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
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 6081, 6082, or 6083 is taken.
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.
Continuation of research and thesis preparation for the second semester.
Units: 3
Prerequisites: CMSI 6081
Continuation of research and thesis preparation for the third semester.
Units: 3
Prerequisites: CMSI 6082
Theory and practice of computing solutions that use several processing units simultaneously, Introduction to the hardware architecture of many-core and memory systems including GPUs and TPUs. Programming paradigms for fine-grained and coarse-grained parallel software solutions. Laboratory exercises include applications in augmented and virtual reality.
Units: 4
Cross list: EECE 6240
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: 4
Cross list: EECE 6210
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: 4
Cross list: EECE 6170
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
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
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
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 6300 or consent of instructor
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: 4
Cross list: EECE 6250
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: 4
Cross list: EECE 6270
[COMING SUMMER 2021] 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
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.
Case studies surrounding 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: SYEG 663
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: SYEG 664
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 2120 or equivalent
Topics in computer graphics, including: architecture of raster display systems, interactive computer graphics, object modeling, transformations, synthetic image generation, animation, image processing, and shaders, with examples from OpenGL and WebGL. The course emphasizes the design and implementation of interactive graphics software systems rather than the use of existing tools.
Units: 3
Prerequisite: CMSI 2120 or equivalent
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
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: 4
Prerequisite: CMSI 3710 or CMSI 3300 or consent of instructor
Cross List: EECE 6110
Introduction to the concepts of information measures, data compresssion, 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: 4
Cross List: EECE 6111
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: 0-3
Are you wondering where all the silly course numbers came from? They actually did not come out of nowhere, some folks actually spent some time on a numbering scheme. In case you are interested, here it is: