Course Listing

[100 levels] [200 levels] [300 levels] [400 levels] [500 levels]COMPUTER SCIENCE AND ENGINEERING

100 Introduction to Computer Science I. (3)
Concepts of problem solving, algorithm design, structured programming, fundamental algorithms and techniques, and computer systems concepts. Social and ethical responsibility. Prerequisite: MAT 170. General Studies: N3.

120 Digital Design Fundamentals. (3)
Number systems, conversion methods, binary and complement arithmetic, boolean and switching algebra, circuit minimization. ROMs, PLAs, flipflops, synchronous sequential circuits, and register transfer design. Lecture, lab. Cross-listed with EEE 120. Prerequisite: Computer Literacy.

180 Computer Literacy. (3)
Introduction to general problem-solving approaches using widely available software tools such as database packages, word processors, spreadsheets, and report generators. May be taken for credit on either IBM PC or Macintosh, but not both. Non-majors only. General Studies : N3.

181 Applied Problem Solving with Visual BASIC. (3)
Introduction to systematic definition of problems, solution formulation, and method validation. Computer solution using Visual BASIC required for projects. Lecture, lab. Non-majors only. Prerequisite: MAT 117. General Studies: N3.

183 Applied Problem Solving with FORTRAN. (3)
A human-oriented, systems approach to problem definition, formulation, and solution using FORTRAN. Computer solution required for projects. Non-majors only. Prerequisite: MAT 170. General Studies: N3.

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

200 Concepts of Computer Science. (3)
Overview of algorithms, architecture, languages, computer systems, theory. Problem solving by programming with a high-level language (Java or another) N3. Prerequisites: One year of high-school programming with Pascal, C++ or Java; or CSE 100 or CSE 110

210 Object-Oriented Design and Data Structures(3)
Object Oriented Design, Static and Dynamic Data Structures (Strings, Stacks, Queues, Binary Trees), Recursion, Searching and Sorting, Professional Responsibility. Prerequisite : CSE 200. General Studies : N3.

225 Assembly Language Programming (Motorola). (4)
Assembly language programming, register level computer organization, data structure and addressing modes, assemblers, and linkers. Motorola-based assignments. Cross-listed with EEE 225. Prerequisite: CSE/EEE 120, and CSE 100 or CSE 200. General Studies : N3.

226 Assembly Language Programming (Intel). (4)
Assembly language programming, register level computer organization, data structure and addressing modes, assemblers, and linkers. Intel-based assignments. Cross listed with EEE 226. Prerequisite: CSE/EEE 120, and CSE 100 or CSE 200. General Studies : N3.

240 Introduction to Programming Languages. (3)
Introduction to the procedural (Ada), applicative (LISP) and declarative (Prolog) languages. Prerequisites: CSE 210.

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

330 Computer Organization and Architecture. (3)
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 CSE/EEE 226.

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

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

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

408 Multimedia Information Systems. (3)
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.

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

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

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

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

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

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

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

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

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

440 Compiler Construction I. (3)
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.

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

457 Theory of Formal Languages. (3)
Theory of grammar, methods of syntactic analysis and specification, types of artificial languages, relationship between formal languages, and automata. Cross-listed as MAT 401. Prerequisite: CSE 355.

459 Logic for Computing Scientist I. (3)
Propositional logic, syntax and semantics, proof theory vs. 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.

461 Software Engineering Project 1. (3)
First of 2-course software design sequence. Development planning, management; process modeling; incremental and team development using CASE tools. Prerequisite: CSE 360.

462 Software Engineering Project 2. (3)
Second of 2-course software design sequence. Process, product assessment and improvement; incremental and team development using CASE tools. Prerequisite: CSE 461.

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

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

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

476 Introduction to Natural Language Processing. (3)
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.

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

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

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

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

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

514 Object-Oriented Database Systems. (3)
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.

515 Information Storage and Retrieval. (3)
Course number changed to CSE 510.

516 Digital Testing and Reliability. (3)
Fault modeling, test generation, and simulation for combinational and sequential circuits; memory testing, self-checking logic, fault-tolerant logic, and reliability analysis. Prerequisite: CSE 423 or EEE 425 or consent of instructor.

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

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

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

521 Microprocessor Applications. (4)
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.

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

530 Operating System Case Study. (3)
Study of the design and implementation of a timeshared multiprogramming operating system, with emphasis on the UNIX operating system. Prerequisites: CSE 430; knowledge of C Language.

531 Distributed Operating Systems. (3)
Interprocess communications, concurrency control, file system, language constructs, architecture, and network considerations in distributed operating and multiprocessor systems. Case studies. Prerequisite: CSE 530.

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

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

535 Performance Evaluation. (3)
Topics in computer system measurement and evaluation, including hardware/software monitors, workload characterization, program behavior, adaptive scheduling, simulation models, and measurement interpretation. Prerequisite: CSE 430.

536 Theory of Operating Systems. (3)
Formal methods of control of concurrent processes, process scheduling, memory, and auxiliary storage management. Network operating systems. Operating system design. Prerequisite: CSE 430.

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

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

550 Combinatorial Algorithms and Intractability. (3)
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.

555 Automata Theory. (3)
Finite state machines, pushdown automara, linear bounded automata. Turing machines, register machines, rams and rasps; relationships to computability and formal languages. Prerequisite: CSE 355.

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

560 Software Engineering. (3)
Software engineering foundations, formal representations in the software process; use of formalisms in creating a measured and structured working environment. Prerequisite: CSE 360.

562 Parallel and Distributed Software Engineering. (3)
Software engineering characteristics particular to parallel and distributed systems. Tools and techniques to support software engineering involving parallel processing and distributed systems. Prerequisite: CSE 560.

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

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

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

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

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

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

572 Pattern Recognition. (3)
Pattern classification by distance functions and likelihood functions, deterministic and statistical approaches to trainable pattern classifiers, and syntactic pattern recognition. Prerequisite: ECE 383 or STP 326.

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

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

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

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

577 Advanced Computer-Aided Geometric Design I. (3)
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.

578 Advanced Computer-Aided Geometric Design II. (3)
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

579 NURBS: Non-Uniform Rational B-splines. (3)
Projective geometry, NURMs-based modeling, basic theory of conics and rational Bezier curves, rational B-splines, surfaces, rational surfaces, stereographica maps, quadrics, IGES data specification. Prerequisites: CSE 470 and 477 or instructor approval

Omnibus Courses: See General Catalog for omnibus courses that may be offered.


Last Modification: by cse.webmaster@asu.edu
ASU Disclaimer