Computer Science Division

Doolan Hall, 1 LMU Drive
Los Angeles, CA 90045-2659
(310) 338-7351

Courses

CMSI 182: Introduction to Computer Science

3 Semester Hours

Great ideas in computer science, including some programming using a high-level programming language.

Lecture, 3 hours.

CMSI 185: Computer Programming

3 Semester Hours

Introduction to algorithms and computer programming using Java. Enrollment is limited to CMSI majors, CMSI minors, and EEs in computer engineering emphasis.

Lecture, 3 hours.

CMSI 186: Programming Laboratory

3 Semester Hours

Workshop in Java programming, loosely structured around the notion of algorithm paradigms, treating one medium-sized application every two weeks in a laboratory setting. Typical projects: discrete simulation, randomized estimation, maze solving, dynamic programming, large-number arithmetic, numerical methods, applet programming. For majors and minors only.

Prerequisite: A grade of C (2.0) or better in CMSI 185.

CMSI 261: Epistemological Foundations of Computer Science

3 Semester Hours

A study of the philosophical and epistemological roots of computer science. Topics include: language, thought, cognition, logic, computation, the Church-Turing thesis, computer programming, and artificial intelligence.

Lecture, 3 hours.

Prerequisite: MATH 101, 102, or 154, or placement into MATH 106 or higher.

CMSI 264: Cryptography throughout the Ages

3 Semester Hours

Descriptions of mathematical systems that have been used for enciphering and deciphering information, and a study of the context in which these systems arose. In particular, systems used in warfare, especially World War II, and modern systems including public key cryptography.

Lecture, 3 hours.

Prerequisite: MATH 101, 102, or 154, or placement into MATH 106 or higher.

CMSI 281 Data Structures and Algorithms I

3 Semester Hours

Introduction to data types, information structures, and algorithms. Topics include: collection classes and interfaces for sets, lists, stacks, queues, and dictionaries; implementation techniques such as arrays, linked lists, and efficient tree structures; introduction to computational complexity; elementary sorting; hashing..

Lecture, 3 hours.

Prerequisite: A grade of C (2.0) or better in CMSI 185.

CMSI 282: Data Structures and Algorithms II

3 Semester Hours

Selected topics from algorithm paradigms, greedy methods, dynamic programming, search techniques, randomization, and simulated annealing; advanced sorts, order statistics, and string matching; cake-cutting and fair division; generating combinatorial objects; graph algorithms.

Lecture, 3 hours.

Prerequisite: CMSI 281.

CMSI 284: Computer System Organization

3 Semester Hours

Basic principles of computer systems. Topics include: data representations, instructions and instruction formats, assemblers and assembly languages, linking and loading, process execution, interrupt and device-handling, file management, and mixed-language programming.

Lecture, 3 hours.

Prerequisite: CMSI 281.

CMSI 298: Special Studies

1-3 Semester Hours

CMSI 299: Independent Studies

1-3 Semester Hours

CMSI 355: Networks

3 Semester Hours

A detailed study of the design and use of internetworking technologies in modern digital communication systems. Topics include: routing and control protocols, signalling, multicasting, OSI 7-layer model sockets, IPv4, IPv6, UDP, TCP, ARP, ICMP, IGMP, Mobile IP, DNS, SMTP, FTP, VoIP, and HTTP.

Lecture, 3 hours.

Prerequisite: CMSI 284.

CMSI 365: Enterprise Production Practicum

1-3 Semester Hours

The design, construction, and management of an online information system. Experience will be gained producing an in-use online system with emphasis on stability and usability for the target audience.

Prerequisite: Consent of instructor.

This course may be repeated for up to 3 semester hours of credit.

CMSI 370: Interaction Design

3 Semester Hours

Introduction to interaction design and human-computer interaction, with equal emphasis on 1) learning how to design and evaluate interaction architectures and 2) learning how to use existing frameworks to implement such architectures. Topics include: interaction guidelines, principles, and theories; usability engineering; the model- view-controller (MVC) paradigm; and current frameworks such as Swing, GLUT, and Cocoa.

Lecture, 3 hours.

Prerequisite: CMSI 281.

CMSI 371: Computer Graphics

3 Semester Hours

Introduction to interactive computer graphics, emphasizing raster-scan techniques. Topics include the design and use of graphics packages and standards, graphics engines, animation, the user-system interface, three dimensional modeling, ray tracing, and fractal geometry.

Lecture, 3 hours.

Prerequisite: CMSI 281.

CMSI 385: Introduction to the Theory of Computation

3 Semester Hours

Introduction to the formal theory of computation. Topics include: finite automata and regular sets; phrase-structure grammars; context-free languages and pushdown automata; Turing machines and computability; intractability and NP-completeness.

Lecture, 3 hours.

Prerequisites: CMSI 282 and MATH 248.

CMSI 386: Programming Languages

3 Semester Hours

Introduction to the principles of programming language design, including syntactic and semantic issues. Topics include: scope and extent, procedures and functions, types, modules, exception handling, concurrency and semantics. Examples are taken from Ada, C++, Java, Pascal, ML, Prolog, and Smalltalk.

Lecture, 3 hours.

Prerequisites: CMSI 284

CMSI 387: Operating Systems

3 Semester Hours

Concepts in the design of operating systems, including: processes, process management, mutual exclusion, synchronization and message-passing, primary memory management, multiprogramming, paged allocation and paging policies, resource and I/O management, file systems, and security. Major emphasis is placed on UNIX and NT architectures and C-language system programming.

Lecture, 3 hours.

Prerequisite: CMSI 284 or ELEC 383.

CMSI 398: Special Studies

1-4 Semester Hours

CMSI 399: Independent Studies

1-4 Semester Hours

CMSI 401: Software Engineering Lab

3 Semester Hours

Design and implementation of large programs in a group setting, including use of the Unified Modeling Language (UML) for specifying, visualizing, and documenting models.

Lecture and Laboratory, 4 hours.

Prerequisite: Consent of instructor.

CMSI 402: Senior Project Lab

4 Semester Hours

Analysis, design, implementation, and presentation of a large-scale, individual project, demonstrating mastery of the computer science curriculum.

Lecture and Laboratory, 4 hours.

Prerequisite: Consent of instructor.

CMSI 461: Multimedia Design

3 Semester Hours

Multimedia program development, including project concept, audience analysis, needs analysis, creative and visual treatments, CD-ROM and World Wide Web technical issues, interface design, media formats, authoring languages, and multimedia project management. A project requires that students design a multimedia program leading to a proof-of-concept prototype.

Lecture, 3 hours.

Prerequisite: Consent of instructor.

CMSI 462: Multimedia Production

3 Semester Hours

Production of medium to large-scale multimedia programs including usability analysis, detailed design, script writing, media production, audio production, graphics production, authoring, program engine development, media integration, packaging, marketing, and duplication. A project requires that students produce a multimedia program leading to a web site and CD-ROM distribution.

Lecture, 3 hours.

Prerequisite: CMSI 461

CMSI 475: Computational Complexity

3 Semester Hours

Introduction to the study of computational complexity, including efficient algorithms for matrix multiplication and fast Fourier transforms, the classes P and NP, approximation algorithms, randomized algorithms and RP, parallel algorithms and NC.

Lecture, 3 hours.

Prerequisites: CMSI 282 and 385.

CMSI 485: Artificial Intelligence

3 Semester Hours

Introduction to the theory and applications of artificial intelligence. Topics include heuristic search theory, knowledge representation and symbolic reasoning and machine learning.

Lecture, 3 hours.

Prerequisites: CMSI 385 and 386.

CMSI 486: Introduction to Database Systems

3 Semester Hours

Theory and design of database systems, with emphasis on relational and object-oriented models. Topics include database languages, file structures, indexing, concurrency control, knowledge bases and logic and distributed systems.

Lecture, 3 hours.

Prerequisites: CMSI 386 and 387.

CMSI 488: Compiler Construction

4 Semester Hours

Introduction to the theory and design of translators for high-level computer programming languages. Topics include programming language specification, scanner construction, parser construction, intermediate representations, code generation, and optimization. Coursework includes implementation of a compiler.

Lecture, 3 hours.

Prerequisites: CMSI 385 and 386.

CMSI 498: Special Studies

1-4 Semester Hours

CMSI 499: Independent Studies

1-4 Semester Hours

CMSI 583: Theory of Computation

3 Semester Hours

Finite automata, regular sets, right-linear grammars; pushdown automata, context-free languages; Turing machines, decidable and undecidable problems; intractability and NP-completeness.

Lecture, 3 hours.

Prerequisite: CMSI 281.

CMSI 585: Programming Languages

3 Semester Hours

A study of major programming languages, concepts, features, and implementation. Topics include: scope and extent, procedures and functions, types, modules, exception handling, concurrency and semantics. Examples are taken from Ada, ML, Prolog, and Smalltalk.

Lecture, 3 hours.

Prerequisites: CMSI 284 and 386.

CMSI 587: Operating Systems

3 Semester Hours

Topics in the design of operating systems with emphasis on large-scale multiprocessing, multiprogramming, and distributed environments. Topics include process scheduling, interprocess communication, I/O management, virtual memory management, file systems, and network, distributed, and real-time operating systems.

Lecture, 3 hours.

Prerequisites: CMSI 284

CMSI 588: Compiler Construction

3 Semester Hours

Topics in the theory and design of compilers and interpreters for high-level programming languages, including scanners and scanner-generators, context-free grammars and pushdown automata, parser construction, code generation, syntax-directed translation, error analyzers and recovery, and optimization and data-flow analysis.

Lecture, 3 hours.

Prerequisites: CMSI 583 and 585.

CMSI 598: Special Studies

1-3 Semester Hours

CMSI 599: Independent Studies

1-3 Semester Hours

Special study areas defined by a student in cooperation with a faculty member and approved by the Department Chairperson. A maximum of two Independent Studies courses may be applied towards the Master’s degree.

CMSI 601: Graduate Seminar

3 Semester Hours

Project-based seminar in which students will be required to select, research, write about, and discuss some aspect of a broad area of current interest to computer scientists and electrical engineers (e.g., computer networks, digital communication).

Prerequisites: Successful completion of coursework and the endorsement of the faculty advisor. (The seminar can be taken during the final semester of coursework subject to the approval of the faculty advisor.)

Lecture, 3 hours.

CMSI 641: Software Engineering

3 Semester Hours

Design and development issues of large-scale software systems which are reliable and easily maintainable. Course project covers each step of the development process from the initial needs analysis and requirement specification through design and implementation. Topics include tradeoffs between agile and traditional approaches, 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.

Lecture, 3 hours.

Prerequisites: CMSI 585 and CMSI 587

CMSI 655: Internet Technologies

3 Semester Hours

Study of the basic architecture, protocols and services of the global Internet. Topics include: internetworking principles, the TCP/IP protocol suite, socket-level programming, DNS, MIME, HTTP, FTP, and POP; XML technologies; web programming with XHTML, CSS, JavaScript and web server extensions; the design of database-backed systems, middleware, scalability and security.

Lecture, 3 hours.

Prerequisites: CMSI 585.

CMSI 670: Interaction Design

3 Semester Hours

Interaction design and human-computer interaction, with equal emphasis on learning how to design and evaluate interaction architectures and learning how to use existing frameworks to implement such architectures. Topics include: interaction guidelines, principles, and theories; usability engineering; the model-view-controller (MVC) paradigm; existing frameworks such as Swing, GLUT, and Cocoa; and current research in the field.

Lecture, 3 hours.

CMSI 671: Computer Graphics

3 Semester Hours

Topics in computer graphics, including: raster display systems, interactive computer graphics, object modeling, transformations, synthetic image generation, animation, image processing, with examples from OpenGL.

Lecture, 3 hours.

Prerequisite: CMSI 281

CMSI 673: Distributed and Concurrent Programming

3 Semester Hours

Study of paradigms and languages for concurrent and distributed computing. Topics include concurrent programming foundations; Win32 processes and threads; Java threads, networking and RMI; real-time and distributed systems; remoting; Java EE and .NET.

Lecture, 3 hours.

Prerequisites: CMSI 284

CMSI 674: Topics in Operating Systems

3 Semester Hours

Topics include concepts and design issues in distributed operating systems and UNIX implementation.

Lecture, 3 hours.

Prerequisites: CMSI 587

CMSI 675: Declarative Programming Languages

3 Semester Hours

A survey of theoretical foundations and computer languages for functional and logic programming, with examples from LISP, Scheme, Haskell, ML, SQL, and Prolog.

Lecture, 3 hours.

Prerequisites: CMSI 585

CMSI 677: Artificial Intelligence

3 Semester Hours

Study of artificial intelligence. Topics include: problem solving methods; heuristic search and game playing; knowledge representation, frames, inheritance and commonsense reasoning; neural nets and genetic algorithms; and machine learning.

Lecture, 3 hours.

Prerequisites: CMSI 385 and CMSI 386

CMSI 682: Knowledge-Based Systems

3 Semester Hours

Detailed study of design and implementation of knowledge-based systems. Topics include: logic and theorem proving; deduction systems; reaction systems; forward and backward chaining; knowledge acquisition; and explanatory interfaces.

Lecture, 3 hours.

CMSI 685: Natural Language Processing

3 Semester Hours

Role of syntax, semantics and pragmatics in human language processing by computers. Topics include: natural language generators and parsers; inference, conceptual analysis; and discourse processing.

Lecture, 3 hours.

Prerequisite: CMSI 677 or consent of instructor.

CMSI 686: Database Systems

3 Semester Hours

Fundamental concepts in the field of database technology. Topics include: database system structure, semantic data modeling, relational and object-oriented databases, query languages, integrity and security, physical database design, crash recovery, and concurrency.

Lecture, 3 hours.

Prerequisite: CMSI 587

CMSI 687: Topics in Theoretical Computer Science

3 Semester Hours

Topics from: Computational complexity; theory of formal languages; program schemes, recursion schemes; discrete developmental systems. (May be repeated for credit.)

Lecture, 3 hours.

Prerequisites: CMSI 583 and consent of instructor.

CMSI 688: Object Technologies

3 Semester Hours

Study of object-oriented philosophy and its applications in software architecture and programming languages. Topics include: object-oriented design, abstraction, inheritance, polymorphism, component models and design patterns.

Lecture, 3 hours.

Prerequisites: CMSI 585 or equivalent.

CMSI 689: Computer Networks (see ELEC 687)

3 Semester Hours

Concepts in and design of large-scale distributed networks and local area networks, including topologies, standards and protocols.

Lecture, 3 hours.

CMSI 698: Special Studies

1-3 Semester Hours

CMSI 699: Independent Studies*

1-3 Semester Hours

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 concerned faculty member at least one month prior to the beginning of that term.