Fall 2001

Computer Science and Engineering (CSE)

CSE 100 Principles of Programming with C++. (3)
fall, spring, summer
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)
fall, spring, summer
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)
fall, spring, summer
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)
fall, spring, summer
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)
fall, spring, summer
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)
not regularly offered
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)
fall and spring
Fundamental Internet concepts, World Wide Web browsing, publishing, searching, advanced Internet productivity tools.

CSE 200 Concepts of Computer Science. (3)
fall, spring, summer
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)
fall, spring, summer
Object-oriented design, static and dynamic data structures (strings, stacks, queues, binary trees), recursion, searching, and sorting. Professional responsibility. Prerequisite: CSE 200.
General Studies: CS

CSE 225 Assembly Language Programming and Microprocessors (Motorola). (4)
fall, spring, summer
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 110 or 200); CSE 120 or EEE 120.

CSE 226 Assembly Language Programming and Microprocessors (Intel). (4)
fall and spring
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 110 or 200); CSE 120 or EEE 120.

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

CSE 310 Data Structures and Algorithms. (3)
fall, spring, summer
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)
fall and spring
Instruction set architecture, processor performance and design; datapath, control (hardwired, microprogrammed), pipelining, input/output. Memory organization with cache, virtual memory. Prerequisite: CSE 225 or 226 or EEE 225 or 226.

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

CSE 355 Introduction to Theoretical Computer Science. (3)
fall and spring
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)
fall, spring, summer
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)
fall
Design, use, and applications of multimedia systems. 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)
fall and spring
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)
once a year
Computer architecture. Performance versus cost tradeoffs. Instruction set design. Basic processor implementation and pipelining. Prerequisite: CSE 330.

CSE 421 Microprocessor System Design I. (4)
fall and spring
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 225 or EEE 225.

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

CSE 423 Microcomputer System Hardware. (3)
once a year
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)
not regularly offered
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)
fall and spring
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)
fall and spring
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)
once a year
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)
once a year
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)
fall and spring
Frameworks for distributed software components. Foundations of client-server computing and architectures for distributed object systems. Dynamic discovery and invocation. Lecture, projects. Prerequisite: CSE 360 or instructor approval.

CSE 446 Client-Server User Interfaces. (3)
spring
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)
fall and spring
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)
once a year
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)
not regularly offered
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)
fall and spring
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)
fall and spring
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)
fall and spring
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)
fall and spring
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)
fall and spring
State space search, heuristic search, games, knowledge representation techniques, expert systems, and automated reasoning. Prerequisites: CSE 240, 310.

CSE 473 Nonprocedural Programming Languages. (3)
not regularly offered
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)
not regularly offered
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)
once a year
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)
not regularly offered
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)
once a year
Digital image fundamentals, image transforms, image enhancement and restoration techniques, image encoding, and segmentation methods. Prerequisite: EEE 303 or instructor approval.

CSE 510 Database Management System Implementation. (3)
once a year
Implementation of database systems. Data storage, indexing, querying, and retrieval. Query optimization and execution, concurrency control, and transaction management. Prerequisite: CSE 412.

CSE 512 Distributed Database Systems. (3)
once a year
Distributed database design, query processing, and transaction processing. Distributed database architectures and interoperability. Emerging technology. Prerequisite: CSE 412.

CSE 513 Rules in Database Systems. (3)
not regularly offered
Declarative and active rules. Logic as a data model. Evaluation and query optimization. Triggers and ECA rules. Current research topics. Prerequisite: CSE 412.

CSE 514 Object-Oriented Database Systems. (3)
not regularly offered
Object-oriented data modeling, definition, manipulation. Identity and inheritance. Query languages. Schema evolution. Versioning. Distributed object management. Extended relational systems. Prerequisite: CSE 412.

CSE 517 Hardware Design Languages. (3)
once a year
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)
not regularly offered
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)
fall
Computer architecture description languages, computer arithmetic, memory-hierarchy design, parallel, vector, multiprocessors, and input/output. Prerequisites: CSE 420, 430.

CSE 521 Microprocessor Applications. (4)
not regularly offered
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)
not regularly offered
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)
not regularly offered
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)
once a year
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)
once a year
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)
not regularly offered
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)
fall and spring
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)
spring
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)
not regularly offered
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)
not regularly offered
Formal parsing strategies, optimization techniques, code generation, extensibility and transportability considerations, and recent developments. Prerequisite: CSE 440.

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

CSE 550 Combinatorial Algorithms and Intractability. (3)
once a year
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)
once a year
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)
not regularly offered
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)
once a year
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)
not regularly offered
Examines 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)
once a year
Examines 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)
once a year
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)
once a year
Project management, risk management, configuration management, quality management, and simulated project management experiences. Prerequisite: CSE 360.

CSE 570 Advanced Computer Graphics I. (3)
once a year
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)
once a year
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)
once a year
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)
once a year
Reasoning about time and action, plan synthesis and execution, improving planning performance, applications to manufacturing intelligent agents. Prerequisite: CSE 471 (or its equivalent).

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

CSE 576 Topics in Natural Language Processing. (3)
not regularly offered
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)
once a year
General interpolation; review of curve interpolation and approximation; spline curves; visual smoothness of curves; parameterization of curves; introduction to surface interpolation and approximation. Prerequisites: both CSE 470 and 477 or only instructor approval.

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

CSE 579 NURBS: Nonuniform Rational B-Splines. (3)
not regularly offered
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)
not regularly offered

CSE 598 Special Topics. (1–4)
not regularly offered

Page Last Updated:
webmaster@asu.edu
ASU Disclaimer
Visits to this page: page counter