Computer Science and Engineering (CSE)

CSE 100 Principles of Programming with C++. (3) F, S, SS
Principles of problem solving using C++, algorithm design, structured programming, fundamental algorithms and techniques, and computer systems concepts. Social and ethical responsibility. Lecture, lab. Prerequisite: MAT 170. General Studies: CS.

CSE 110 Principles of Programming with Java. (3) F, S, SS
Concepts of problem solving using Java, algorithm design, structured programming, fundamental algorithms and techniques, and computer systems concepts. Social and ethical responsibility. Lecture, lab. Prerequisite: MAT 170.

CSE 120 Digital Design Fundamentals. (3) F, S, SS
Number systems, conversion methods, binary and complement arithmetic, Boolean algebra, circuit minimization, ROMs, PLAs, flipflops, synchronous sequential circuits. Lecture, lab. Cross-listed as EEE 120. Credit is allowed for only CSE 120 or EEE 120. Prerequisite: computer literacy.

CSE 180 Computer Literacy. (3) F, S, SS
Introduction to personal computer operations and their place in society. Problem-solving approaches using databases, spreadsheets, and word processing. May be taken for credit on either Windows or Macintosh, but not both. Lecture, demonstration. Prerequisite: nonmajor. General Studies: CS.

CSE 181 Applied Problem Solving with Visual BASIC. (3) F, S, SS
Introduction of systematic definition of problems, solution formulation, and method validation. Computer solution using Visual BASIC required for projects. Lecture, lab. Prerequisites: MAT 117; nonmajor. General Studies: CS.

CSE 183 Applied Problem Solving with FORTRAN. (3) F
A human-oriented, systems approach to problem definition, formulation, and solution using FORTRAN. Computer solution required for projects. Prerequisites: MAT 170; nonmajor. General Studies: CS.

CSE 185 Internet and the World Wide Web. (3) F, S
Fundamental Internet concepts, World Wide Web browsing, publishing, searching, advanced Internet productivity tools.

CSE 200 Concepts of Computer Science. (3) F, S, SS
Overview of algorithms, languages, computing systems, theory. Problem solving by programming with a high-level language (Java or other). Lecture, lab. Prerequisite: CSE 100 or 110 or one year of high school programming with Java or C++ or PASCAL. General Studies: CS.

CSE 210 Object-Oriented Design and Data Structures. (3) F, S, SS
Object-oriented design, static and dynamic data structures (strings, stacks, queues, binary trees), recursion, and searching and sorting. Professional responsibility. Prerequisite: CSE 200. General Studies: CS.

CSE 225 Assembly Language Programming and Microprocessors (Motorola). (4) F, S, SS
Assembly language programming, including input/output programming and exception/interrupt handling. Register-level computer organization, I/O interfaces, assemblers, and linkers. Motorola-based assignments. Lecture, lab. Cross-listed as EEE 225. Credit is allowed for only CSE 225 or EEE 225. Prerequisites: CSE 100 (or 200); CSE/EEE 120.

CSE 226 Assembly Language Programming and Microprocessors (Intel). (4) F, S
CPU/Memory/peripheral device interfaces and programming. System buses, interrupts, serial and parallel I/O, DMA, coprocessors. Intel-based assignments. Lecture, lab. Cross-listed as EEE 226. Credit is allowed for only CSE 226 or EEE 226. Prerequisites: CSE 100 (or 200); CSE/EEE 120.

CSE 240 Introduction to Programming Languages. (3) F, S, SS
Introduction to the procedural (C++), applicative (LISP), and declarative (Prolog) languages. Lecture, lab. Prerequisite: CSE 210.

CSE 310 Data Structures and Algorithms. (3) F, S, SS
Advanced data structures and algorithms, including stacks, queues, trees (B, B+, AVL), and graphs. Searching for graphs, hashing, external sorting. Lecture, lab. Prerequisites: CSE 210; MAT 243.

CSE 330 Computer Organization and Architecture. (3) F, S, SS
Instruction set architecture, processor performance and design; datapath, control (hardwired, microprogrammed), pipelining, input/output. Memory organization with cache, virtual memory. Prerequisite: CSE/EEE 225 or 226.

CSE 340 Principles of Programming Languages. (3) F, S, SS
Introduction to language design and implementation. Parallel, machine-dependent and declarative features; type theory; specification, recognition, translation, run-time management. Prerequisites: CSE 240, 310; CSE/EEE 225 (or 226).

CSE 355 Introduction to Theoretical Computer Science. (3) F, S
Introduction to formal language theory and automata, Turing machines, decidability/undecidability, recursive function theory, and introduction to complexity theory. Prerequisite: CSE 310.

CSE 360 Introduction to Software Engineering. (3) F, S, SS
Software life cycle models; project management, team development environments and methodologies; software architectures; quality assurance and standards; legal, ethical issues. Prerequisites: CSE 210, 240.

CSE 408 Multimedia Information Systems. (3) F
Design, use, and applications of multimedia systems. An introduction to acquisition, compression, storage, retrieval, and presentation of data from different media such as images, text, voice, and alphanumeric. Prerequisite: CSE 310.

CSE 412 Database Management. (3) F, S
Introduction to DBMS concepts. Data models and languages. Relational database theory. Database security/integrity and concurrency. Prerequisite: CSE 310.

CSE 420 Computer Architecture I. (3) S
Computer architecture. Performance versus cost tradeoffs. Instruction set design. Basic processor implementation and pipelining. Prerequisite: CSE 330.

CSE 421 Microprocessor System Design I. (4) F, S
Assembly-language programming and logical hardware design of systems using 8-bit microprocessors and microcontrollers. Fundamental concepts of digital system design. Reliability and social, legal implications. Lecture, lab. Prerequisite: CSE/EEE 225.

CSE 422 Microprocessor System Design II. (4) F, S
Design of microcomputer systems using contemporary logic and microcomputer system components. Requires assembly language programming. Prerequisite: CSE 421.

CSE 423 Microcomputer System Hardware. (3) S
Information and techniques presented in CSE 422 are used to develop the hardware design of a multiprocessor, multiprogramming, microprocessor-based system. Prerequisite: CSE 422. General Studies: L.

CSE 428 Computer-Aided Processes. (3) A
Hardware and software considerations for computerized manufacturing systems. Specific concentration on automatic inspection, numerical control, robotics, and integrated manufacturing systems. Prerequisite: CSE 330.

CSE 430 Operating Systems. (3) F, S
Operating system structure and services, processor scheduling, concurrent processes, synchronization techniques, memory management, virtual memory, input/output, storage management, and file systems. Prerequisites: CSE 330, 340.

CSE 434 Computer Networks. (3) F, S
Cryptography fundamentals; data compression; error handling; flow control; multihop routing; network protocol algorithms; network reliability, timing, security; physical layer basics. Prerequisite: CSE 330.

CSE 438 Systems Programming. (3) A
Design and implementation of systems programs, including text editors, file utilities, monitors, assemblers, relocating linking loaders, I/O handlers, and schedulers. Prerequisite: CSE 421 or instructor approval. General Studies: L.

CSE 440 Compiler Construction I. (3) F
Introduction to programming language implementation. Implementation strategies such as compilation, interpretation, and translation. Major compilation phases such as lexical analysis, semantic analysis, optimization, and code generation. Prerequisites: CSE 340, 355.

CSE 445 Distributed Computing with Java and CORBA. (3) F, S
Technologies for developing software components. Client-server computing with sockets and distributed objects. Dynamic interface discovery and invocation. Lecture, projects. Prerequisite: CSE 310 or instructor approval.

CSE 446 Client-Server User Interfaces. (3) S
Client-server model and its use in creating and managing window interfaces. Toolkits and libraries including X11, Microsoft Foundation Classes, and Java Abstract Window Toolkit. Lecture, projects. Prerequisite: CSE 310 or instructor approval.

CSE 450 Design and Analysis of Algorithms. (3) F, S
Design and analysis of computer algorithms using analytical and empirical methods; complexity measures, design methodologies, and survey of important algorithms. Prerequisite: CSE 310.

CSE 457 Theory of Formal Languages. (3) A
Theory of grammar, methods of syntactic analysis and specification, types of artificial languages, relationship between formal languages, and automata. Prerequisite: CSE 355.

CSE 459 Logic for Computing Scientists. (3) F
Propositional logic, syntax and semantics, proof theory versus model theory, soundness, consistency and completeness, first order logic, logical theories, automated theorem proving, ground resolution, pattern matching unification and resolution, Dijkstras logic, proof obligations, and program proving. Prerequisite: CSE 355.

CSE 460 Software Analysis and Design. (3) F, S
Requirements analysis and design; architecture and patterns; representations of software; formal methods; component-based development. Lecture, projects. Prerequisite: CSE 360.

CSE 461 Software Engineering Project I. (3) F, S
First of two-course software team-development sequence. Planning, management, design, and implementation using object-oriented technology, CASE tools, CMM-level-5 guidelines. Lecture, lab, oral and written communications. Prerequisite: CSE 360.

CSE 462 Software Engineering Project II. (3) F, S
Second of two-course software team-development sequence. Software evolution, maintenance, reengineering, reverse engineering, component-based development, and outsourcing. Lecture, lab, oral and written communications. Prerequisite: CSE 461.

CSE 470 Computer Graphics. (3) F, S
Display devices, data structures, transformations, interactive graphics, 3-dimensional graphics, and hidden line problem. Prerequisites: CSE 310; MAT 342.

CSE 471 Introduction to Artificial Intelligence. (3) F, S
State space search, heuristic search, games, knowledge representation techniques, expert systems, and automated reasoning. Prerequisites: CSE 240, 310.

CSE 473 Nonprocedural Programming Languages. (3) A
Functional and logic programming using languages like Lucid and Prolog. Typical applications would be a Screen Editor and an Expert System. Prerequisite: CSE 355.

CSE 476 Introduction to Natural Language Processing. (3) A
Principles of computational linguistics, formal syntax, and semantics, as applied to the design of software with natural (human) language I/O. Prerequisite: CSE 310 or instructor approval.

CSE 477 Introduction to Computer-Aided Geometric Design. (3) S
Introduction to parametric curves and surfaces, Bezier and B-spline interpolation, and approximation techniques. Prerequisites: CSE 210, 470; MAT 342.

CSE 507 Virtual Reality Systems. (3) S
Computer generated 3D environments, simulation of reality, spatial presence of virtual objects, technologies of immersion, tracking systems. Lecture, lab. Prerequisite: CSE 408 or 470 or 508 or instructor approval.

CSE 508 Digital Image Processing. (3) A
Digital Image fundamentals, image transforms, image enhancement and restoration techniques, image encoding, and segmentation methods. Prerequisite: EEE 303 or instructor approval.

CSE 510 Advanced Database Management. (3) F, S
Advanced data modeling, deductive databases, object-oriented databases, distributed and multidatabase systems; emerging database technologies. Prerequisite: CSE 412.

CSE 512 Distributed Databases. (3) A
Fragmentation design. Query optimization. Distributed joins. Concurrency control. Distributed deadlock detection. Prerequisite: CSE 510.

CSE 513 Deductive Databases. (3) A
Logic as a data model. Query optimization emphasizing the top-down and bottom-up evaluation of declarative rules. Prerequisite: CSE 510.

CSE 514 Object-Oriented Database Systems. (3) A
Object-oriented data modeling, database and language integration, object algebras, extensibility, transactions, object managers, versioning/configuration, active data, nonstandard applications. Research seminar. Prerequisite: CSE 510.

CSE 517 Hardware Design Languages. (3) A
Introduction to hardware design languages. Modeling concepts for specification, simulation, and synthesis. Prerequisite: CSE 423 or EEE 425 or instructor approval.

CSE 518 Synthesis with Hardware Design Languages. (3) N
Modeling VLSI design in hardware design languages for synthesis. Transformation of language-based designs to physical layout. Application of synthesis tools. Prerequisite: CSE 517.

CSE 520 Computer Architecture II. (3) F
Computer architecture description languages, computer arithmetic, memory-hierarchy design, parallel, vector, and multiprocessors, and input/output. Prerequisites: CSE 420, 430.

CSE 521 Microprocessor Applications. (4) A
Microprocessor technology and its application to the design of practical digital systems. Hardware, assembly language programming, and interfacing of microprocessor-based systems. Lecture, lab. Prerequisite: CSE 421.

CSE 523 Microcomputer Systems Software. (3) A
Developing system software for a multiprocessor, multiprogramming, microprocessor-based system using information and techniques presented in CSE 421, 422. Prerequisite: CSE 422.

CSE 526 Parallel Processing. (3) N
Real and apparent concurrency. Hardware organization of multiprocessors, multiple computer systems, scientific attached processors, and other parallel systems. Prerequisite: CSE 330 or 423.

CSE 530 Operating System Internals. (3) A
Implementation of process management and synchronization, system call and interrupt handling, memory management, device drivers and file systems in UNIX. Prerequisites: CSE 430; knowledge of C language.

CSE 531 Distributed and Multiprocessor Operating Systems. (3) A
Distributed systems architecture, remote file access, message-based systems, object-based systems, client/server paradigms, distributed algorithms, replication and consistency, and multiprocessor operating systems. Prerequisite: CSE 530 or instructor approval.

CSE 532 Advanced Operating System Internals. (3) N
Memory, processor, process and communication management, and concurrency control in the Windows NT multiprocessor and distributed operating system kernels and servers. Prerequisites: CSE 530; 531 (or 536).

CSE 534 Advanced Computer Networks. (3) F, S
Advanced network protocols and infrastructure, applications of high-performance networks to distributed systems, high-performance computing and multimedia domains, special features of networks. Prerequisite: CSE 434.

CSE 536 Theory of Operating Systems. (3) S
Protection. Communication and synchronization in distributed systems, distributed file systems, deadlock theory, virtual memory theory, and uniprocessor and multiprocessor thread management. Prerequisite: CSE 430.

CSE 537 ATM Network Design. (3) S
Principles of ATM networks, switch architecture, traffic management, call and connection control, routing, internetworking with ATM networks, signaling, and OAM. Prerequisite: CSE 434.

CSE 540 Compiler Construction II. (3) S
Formal parsing strategies, optimization techniques, code generation, extensibility and transportability considerations, and recent developments. Prerequisite: CSE 440.

CSE 545 Programming Language Design. (3) N
Language constructs, extensibility and abstractions, and runtime support. Language design process. Prerequisite: CSE 440.

CSE 550 Combinatorial Algorithms and Intractability. (3) N
Combinatorial algorithms, nondeterministic algorithms, classes P and NP, NP-hard and NP-complete problems, and intractability. Design techniques for fast combinatorial algorithms. Prerequisite: CSE 450.

CSE 555 Theory of Computation. (3) F, S
Rigorous treatment of regular languages, context-free languages, Turing machines and decidability, reducibility, and other advanced topics in computability theory. Prerequisite: CSE 355 or instructor approval.

CSE 556 Expert Systems. (3) N
Knowledge acquisition and representation, rule-based systems, frame-based systems, validation of knowledge bases, inexact reasoning, and expert database systems. Prerequisite: CSE 471.

CSE 562 Software Process Automation. (3) A
Representing the software process; creating a measured and structured working environment; using, constructing, and adapting component-based tools. Prerequisite: CSE 360.

CSE 563 Software Requirements and Specification. (3) A
Examination of the definitional stage of software development; analysis of specification representations, formal methods, and techniques emphasizing important application issues. Prerequisite: CSE 460.

CSE 564 Software Design. (3) A
Examination of software design issues and techniques. Includes a survey of design representations and a comparison of design methods. Prerequisite: CSE 460.

CSE 565 Software Verification, Validation, and Testing. (3) A
Test planning, requirements-based and code-based testing techniques, tools, reliability models, and statistical testing. Prerequisite: CSE 460.

CSE 566 Software Project, Process, and Quality Management. (3) A
Project management, risk management, configuration management, quality management, and simulated project management experiences. Prerequisite: CSE 360.

CSE 570 Advanced Computer Graphics I. (3) A
Hidden surface algorithms, lighting models, and shading techniques. User interface design. Animation techniques. Fractals and stochastic models. Raster algorithms. Prerequisite: CSE 470.

CSE 571 Artificial Intelligence. (3) S
Definitions of intelligence, computer problem solving, game playing, pattern recognition, theorem proving, and semantic information processing; evolutionary systems; heuristic programming. Prerequisite: CSE 471.

CSE 573 Advanced Computer Graphics II. (3) S
Modeling of natural phenomena: terrain, clouds, fire, water, and trees. Particle systems, deformation of solids, antialiasing, and volume visualization. Lecture, lab. Prerequisite: CSE 470.

CSE 574 Planning and Learning Methods in AI. (3) A
Reasoning about time and action, plan synthesis and execution, improving planning performance, applications to manufacturing intelligent agents. Prerequisite: CSE 471 or equivalent.

CSE 575 Decision-Making Strategies in AI. (3) S
Automatic knowledge acquisition, automatic analysis/synthesis of strategies, distributed planning/problem solving, causal modeling, predictive human-machine environments. Prerequisite: CSE 471 or 571 or equivalent.

CSE 576 Topics in Natural Language Processing. (3) S
Comparative parsing strategies, scoping and reference problems, nonfirst-order logical semantic representations, and discourse structure. Prerequisite: CSE 476 or instructor approval.

CSE 577 Advanced Computer-Aided Geometric Design I. (3) F
General interpolation; review of curve interpolation and approximation; spline curves; visual smoothness of curves; parameterization of curves; introduction to surface interpolation and approximation. Prerequisites: CSE 470 and 477 or instructor approval.

CSE 578 Advanced Computer-Aided Geometric Design II. (3) S
Coons patches and Bezier patches; triangular patches; arbitrarily located data methods; geometry processing of surfaces; higher dimensional surfaces. Prerequisites: CSE 470 and 477 or instructor approval.

CSE 579 NURBs: Nonuniform Rational B-Splines. (3) A
Projective geometry, NURBs-based modeling, basic theory of conics and rational Bezier curves, rational B-splines, surfaces, rational surfaces, stereographic maps, quadrics, IGES data specification. Prerequisites: CSE 470, 477.

CSE 593 Applied Project. (1–12) N

CSE 598 Special Topics. (1–4) N

Page Last Updated:
webmaster@asu.edu
ASU Disclaimer

Visits to this page:page counter