Biomedical Informatics
Computer Science & Engineering

School of Computing and Informatics
Faculty & Staff Directory
Contact Us
Alumni
Event Calendar
Summer Programs

CSE Courses
100 Level | 200 Level | 300 Level | 400 Level | 500 Level
ASU General Catalog | ASU Graduate Catalog
100 Level Courses
100 Principles of Programming with C++. (3)
Concepts of problem solving using C++, algorithm design, structured programming, fundamental algorithms and techniques, and computer systems concepts. Social and ethical responsibility.
101 Introduction to Computer Science and Engineering. (2)
Introduction to topics in Computer Science and Computer Engineering; familiarization with CSE curriculum sub-disciplines and topics; Design of computer software and systems; exploring and experimenting with systems; teamwork; professional opportunities; computer models and programming; communication skills; Lecture, Lab.
110 Principles of Programming with Java. (3)
Concepts of problem solving using Java, algorithm design, structured programming, fundamental algorithms and techniques, and computer systems concepts. Social and ethical responsibility.
120 Digital Design Fundamentals. (3)
Number systems, conversion methods, binary and complement arithmetic, Boolean algebra, circuit minimization, ROMs, PLAs, flipflops, synchronous sequential circuits.
180 Computer Literacy. (3)
Students gain fluency in integrating technology to efficiently and effectively solve problems using computational thinking.
182 Applied Problem Solving with C#.NET. (3)
Introduces object oriented programming, problem solving, fundamental algorithms and techniques, computer systems concepts, and implementation of programs using Visual C#.NET platform.
183 Success in Computer Science and Engineering Programs. (3)
Overview of the computer science and computer systems engineering fields as well as academic success tips for students.
185 Introduction to Web Development. (3)
Fundamental Internet concepts, World Wide Web browsing, publishing, searching, advanced Internet productivity tools.
200 Level Courses
205 Object-Oriented Programming and Data Structures. (3)
Problem solving by programming with an object-oriented programming language. Introduction to data structures. Overview of computer science topics.
220 Programming for Computer Engineering. (3)
Introduction to procedural programming languages (C/C++) and hardware description language (VHDL)
230 Computer Organization and Assembly Language. (3)
Register-level computer organization. Instruction set architecture. Assembly language. Processor organization and design. Memory organization. IO programming, Exception/interrupt handling.
240 Introduction to Programming Languages. (3)
Introduces the procedural (C/C++), applicative (Scheme/LISP), and declarative (Prolog) languages
300 Level Courses
301 Computing Ethics. (1)
Ethics for computing majors: history of computing, intellectual property, privacy, ethical frameworks, professional ethical responsibilities, and risks of computer-based systems.
310 Data Structures and Algorithms. (3)
Advanced data structures and algorithms, including stacks, queues, trees (B,B+,AVL), and graphs. Searching for graphs, hashing, external sorting.
320 Design and Synthesis of Digital Hardware. (3)
Design and synthesis of digital hardware with hardware description language, computer-aided design tools, and programmable devices.
325 Embedded Microprocessor Systems. (3)
System-level programming and analysis of embedded microprocessors systems. Fundamental concepts of digital system design for embedded system applications.
340 Principles of Programming Languages. (3)
Formal syntactic and semantic descriptions, compilation and implementation issues, and theoretical foundations for several programming paradigms.
355 Introduction to Theoretical Computer Science. (3)
Introduces formal language theory and automata, Turing machines, decidability/undecidability, recursive function theory, and complexity theory.
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.
400 Level Courses
408/598 Multimedia Information Systems. (3)
Design, use, and applications of multimedia systems. Introduces acquisition, compression, storage, retrieval, and presentation of data from different media such as images, text, voice, and alphanumeric.
412/598 Database Management. (3)
Introduction to DBMS concepts. Data models and languages. Relational database theory. Database security/integrity and concurrency.
414 Advanced Database Concepts. (3)
Object-oriented data modeling, advanced relational features, JDBS and Web access to databases, XML and databases, object-oriented databases, and object-relational databases.
420/598 Computer Architecture I. (3)
Computer Architecture. Performance versus cost tradeoffs. Instruction set design. Basic processor implementation and pipelining.
423 Systems Capstone Project I. (3)
Development process: specification, design, implementation, evaluation, and testing with economic, social, and safety considerations. Technical communication and team skills enrichment.
424 Systems Capstone Project II. (3)
Continuation of capstone project started in CSE 423. Second course in capstone sequence for computer systems engineering majors continuing the development, process, technical skills, teamwork and communication.
430 Operating Systems. (3)
Operating system structure and services, processor scheduling, concurrent processes, synchronization techniques, memory management, virtual memory, input/output, storage management, and file systems.
432/598 Operating Systems Internals. (3)
Implementation of process and thread management and scheduling, system call, interrupt and exception handling, signals, memory management, and initialization in Linux.
434 Computer Networks. (3)
Distributed computing paradigms and technologies, distributed system architectures and design patterns, frameworks for development of distributed software components.
438 Embedded Systems Programming. (3)
Development of embedded system software, I/O handlers, and multiple threaded programs. Scheduling algorithms. Embedded software structures. Real-time operating system.
440/598 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.
445/598 Distributed Software Development. (3)
Distributed system architectures and design, service-oriented computing, and frameworks for development of distributed applications and software components.
450/598 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.
457/598 Theory of Formal Languages. (3)
Theory of grammar, methods of syntactic analysis and specification, types of artificial languages, relationship between formal languages and automata.
459/598 Logic for Computing Scientists. (3)
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.
460/598 Software Analysis and Design. (3)
Requirements analysis and design; architecture and patterns; representations of software; formal methods; component-based development.
461 Software Engineering Project I. (3)
First of two-course software team-development sequence. Planning, management, design, and implementation using object-oriented technology, CASE tools, CMM-level-5 guidelines.
462 Software Engineering Project II. (3)
Second of two-course software team-development sequence. Software evolution, maintenance, reengineering, reverse engineering, component-based development, and outsourcing.
463 Introduction to Human-Computer Interaction. (3)
Design, evaluate, and implement interactive software intended for human use.
465 Information Assurance. (3)
Concepts of information assurance (IA); basic IA techniques, policies, risk management, administration, legal and ethics issues.
466/598 Computer Systems Security. (3)
Countermeasures to attacks to computer systems from miscreants (or hackers) and basic topics of cryptography and network security.
467/598 Data and Information Security. (3)
Basic concepts of security and privacy, data and database security, access controls, trust models, watermarking; and private information retrieval.
468/598 Computer Network Security. (3)
Practical network security exposure and hands-on experience about basic concepts, case studies, and useful tools.
470/598 Introduction to Computer Graphics. (3)
Introduces basic concepts of interactive computer graphics, realistic rendering, and 3-D viewing.
471/598 Introduction to Artificial Intelligence. (3)
State space search, heuristic search, games and adversarial search, knowledge representation, automated reasoning, planning, planning and acting in the real world, probabilistic reasoning, making decisions, learning from observations, statistical learning, learning with knowledge.
476/598 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.
477/598 Introduction to Computer Aided Geometric Design. (3)
Introduces basic concepts of 3-D computer geometry, including curves, surfaces, meshes.
484 Computer Science and Engineering Internship. (3)
Structural practical experience following a contract or plan, supervised by faculty and practitioners.
485 Computer Science Capstone I. (3)
First course in capstone sequence for computer science majors emphasizing development process, technical skills, teamwork, and communication.
486 Computer Science Capstone II. (3)
Second course in capstone sequence for computer science majors continuing the development, process, technical skills, teamwork and communication.
492 Honors Directed Study. (1-6)
493 Honors Thesis. (1-6)
494 Advanced Database Concepts. (3)
Advanced data modeling, object-oriented databases and object-relational databases. Web access to databases. Professionalism and ethics in information access.
494 Enterprise Software Development Project I. (3)
Distributed system architectures and design, service-oriented computing, and frameworks for development of distributed applications and software components.
Enterprise software development and prototyping, including requirement, specification, design, implementation, integration evaluation, and testing.
494/598 Cognitive Systems and Intelligent Agents. (3)
Advanced concepts and techniques of rule-based programming and agent architectures, incorporating ideas from artificial intelligence, cognitive psychology, and linguistics, along with their use in creating integrated intelligent systems that operate in simulated or actual physical environments.
494/598 Introduction to Data Mining. (3)
Recent advances in technology along with the phenomenal growth of the Internet have resulted in an explosion of data collected, stored, and disseminated by various organizations. Because of its massive size, it is difficult for analysts to sift through the data even though it may contain useful information. Data mining holds great promise to address this problem by providing efficient techniques to uncover useful information hidden in the large data repositories.
494/598 Research Methods in Computer Science. (3)
Scientific research harnesses curiosity. Computer scientists and engineers use a wide variety of methods in their research. The goals of this course include: (1) to gain an understanding of the life-cycle of research; (2) to obtain an overview of a wide variety of research methods spanning the discipline; (3) to apply a method to an area of interest.
494/598 Service-Oriented Computing. (3)
Introduction of service-oriented computing including service specification, service brokers, service composition and collaboration, process and workflow specification, and enterprise computing. Students will learn these concepts, languages, and protocols, and modern development tools.
494/598 Mobile Health and Social Networking. (3)
This course will cover practical as well as theoretical aspects of mobile and pervasive computing and networking with focus on pervasive healthcare and mobile social networking.
494/598 Computer and Network Forensics. (3)
This course discusses identification, extraction, documentation, interpretation, and preservation of computer media for evidentiary purposes and/or root cause analysis as well as methodologies, tools, and technologies for vulnerability assessment.
499 Individualized Instruction. (3)
Provides an opportunity for orignal study or investigation in the major or field of specialization on an individual and more autonomous basis. Neither a substitute for a catalog course nor a means of taking a catalog course on an individual basis.
500 Level Courses
509 Digital Video Processing. (3)
Concepts of digital video compression, video analysis, video indexing, browsing and retrieval, video transmission over networks, video processors, MPEG 1, 2, 4, and 7 standards.
510 Database Management System Implementation. (3)
Implementation of database systems. Data storage, indexing, querying, and retrieval. Query optimization and execution, concurrency control, and transaction management.
511 Semi-structured Data Management. (3)
This course addresses the data management issues for semi-structured data, which are commonly found in web applications. Techniques on modeling, storing, querying and searching data without schemas, with optional confidence and/or provenance information will be covered.
512 Distributed Database Systems. (3)
Distributed database design, query processing, and transaction processing. Distributed database architectures and interoperability. Emerging technology.
515 Multimedia and Web Databases. (3)
Data models for multimedia and Web data; query processing and optimization for inexact retrieval; advanced indexing, clustering, and search techniques.
520 Computer Architecture II. (3)
Computer architecture description languages, computer arithmetic, memory-hierarchy design, parallel, vector, multiprocessors, and input/output.
522 Real-time Embedded Systems. (3)
Development of real-time embedded systems, scheduling algorithms, embedded software structures, real-time operating system. Knowledge in embedded microprocessor and operating system is expected.
530 Embedded Operating System Internals. (3)
Investigating Linux source including: memory management, kernel synchronization and driver design topics. Designing, coding, testing, and evaluating embedded operating system software in a Linux environment. Students should have knowledge in operating system structure and services, processor scheduling, concurrent processes, synchronization techniques, memory management, virtual memory, input/output, storage management, and file systems.
531 Distributed and Multiprocessor Operating Systems. (3)
Distributed systems architecture, remote file access, message-based systems, object-based systems, client/server paradigms, distributed algorithms, replication and consistency, and multiprocessor operating systems.
532 Advanced Operating System Internals. (3)
Memory, processor, process and communication management, and concurrency control in the Windows NT multiprocessor and distributed operating system kernels and servers. Ability to understand advanced concepts in operating systems is required to be successful in this course.
534 Advanced Computer Networks. (3)
Advanced network protocols and infrastructure, applications of high-performance networks to distributed systems, high-performance computing and multimedia domains, and special features of networks.
535 Mobile Computing. (3)
Mobile networking, mobile information access, adaptive applications, energy-aware systems, location-aware computing, mobile security and privacy.
539 Applied Cryptography. (3)
Use of cryptography for secure protocols over networked systems, including signatures, certificates, timestamps, electrons, digital cash, and other multiparty coordination.
540 Compiler Construction II. (3)
Formal parsing strategies, optimization techniques, code generation, extensibility and transportability considerations, and recent developments.
543 Information Assurance and Security. (3)
Comprehensive understanding of information assurance and security problems with the solutions as well as hands-on experiences about applying these solutions.
545 Software Security. (3)
Theories and tools for software security, including secure design, threat analysis and modeling, security testing and coding.
548 Advanced Computer Network Security. (3)
Comprehensive understanding of network security and corresponding solutions, including cryptography, access control, secure Web transactions, e-mail security, and viruses.
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.
555 Theory of Computation. (3)
Rigorous treatment of regular languages, context-free languages. Turing machines and decidability, reducibility, and other advanced topics in computability theory.
561 Modeling & Simulation Theory and Application. (3)
Modeling theories, simulation protocols, object-oriented modeling, model design, simulation analysis, network-based systems, discrete-event modeling, continuous modeling, hybrid modeling.
563 Software Requirements and Specification. (3)
Examines the definitional stage of software development; analysis of specification representations, formal methods, and techniques emphasizing important application issues.
564 Software Design. (3)
Examines software design issues and techniques. Includes a survey of design representations and a comparison of design methods.
566 Software Project, Process and Quality Management. (3)
Project management, risk management, configuration management, quality management, and simulated project management experiences.
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.
571 Artificial Intelligence. (3)
Definitions of intelligence, computer problem solving, game playing, pattern recognition, theorem proving, and semantic information processing; evolutionary systems; heuristic programming.
572 Data Mining. (3)
Advanced data mining techniques: classification, clustering, association, preprocessing; performance evaluation; information assurance, Web mining, security and privacy issues, and other applications. Students must have a solid background in database management systems, search, learning, and statistics to be successful in this course.
573 Advanced Computer Graphics II. (3)
Modeling of natural phenomena: terrain, clouds, fire, water, and trees. Particle systems, deformation of solids, anti-aliasing, and volume visualization.
574 Planning and Learning Methods in AI. (3)
Reasoning about time and action, plan synthesis and execution, improving planning performance, applications to manufacturing intelligent agents.
576 Topics in Natural Language Processing. (3)
Comparative parsing strategies, scoping and reference problems, nonfirst-order logical semantic representations, and discourse structure.
577 Advanced Computer-Aided Geometric Design I. (3)
Advanced concepts of geometric modeling: rectangular and triangular surfaces, triangle meshes, Voronoi diagrams, discrete and continuous shape measures, volumes and volume visualization. Students must have a solid background in linear algebra, calculus, and basic 3D graphics to be successful in this course.
578 Advanced Computer-Aided Geometric Design II. (3)
Advanced concepts of geometric modeling: Bezier curves, B-spline curves, blossoming, polygons, geometric algorithms, shape analysis.
579 NURBS: Nonuniform Rational B-Splines. (3)
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.
580 Practicum. (1-12)
Structured practical experience in a professional program, supervised by a practitioner and/or faculty member with whom the student works closely.
584 Internship. (1-12)
Structured practical experience following a contract or plan, supervised by faculty and practitioners.
590 Reading and Conference. (3)
Independent study in which a student meets regularly with a faculty member to discuss assignments. Course may include such assignments as intensive reading in a specialized area, writing a synthesis of literature on a specified topic, or writing a literature review of a topic.
591 Current Challenges in Molecular Informatics. (3)
The growth in the amount of biological sequence, structure, and function data has led to discipline-changing challenges and broad classes of problems from an information perspective. We will explore the latest approaches to these challenges and discover how molecular biology is evolving from a technique and technology-driven science to an information-driven science. The class takes an active approach to research and is expected to be highly participatory.
591 Optimization Algorithms with Engineering Applications. (3)
Designed for graduate students in Computer Science and Engineering, as well as graduate students in other Engineering fields who need assistance with non-trivial optimization problems.
591 Multimedia Computing, Communication and Interaction. (3)
In this course, we shall cover the technical background and emerging research issues in the analysis of digital media. The course has three conceptual parts – foundations, content analysis of digital media and analysis of media rich social networks. We shall develop a comprehensive understanding of the foundational issues in pattern recognition. Then we shall study pattern analysis techniques widely used in content analysis (e.g. HMM's SVM's, DBN's). In the second part, we shall cover issues in content production and its effect on the analysis framework. We shall also comprehensively cover the area of content based retrieval and discuss challenges. In the third part, we shall study new paradigms of interaction and communication, in particular how media communication patterns emerge in media rich social networks such as facebook / flickr. We shall discuss the role of syntax and the issue of emergent semantics in such networks.
The class is heavily project based, and students will develop applications that address real-world media needs, including analysis of digital media and developing applications for facebook.
591 OS Internals – Embedded Linux. (3)
Learn about the design, debugging and evaluation of Linux kernel modifications and drivers on a host PC/target Integrated Development Platform configuration. New experiments include a parallel port driver and a USB driver.
591 Real-Time Embedded Systems. (3)
The course provides the opportunities to the students to learn various fundamental issues as well as practical developments in the area of real-time embedded systems.
591 Randomized Approximate Algorithms. (3)
The purpose of this course is to explore the power of randomization and approximation algorithms.
591 Machine Learning and Applications. (3)
Clustering, regression, classification, semi-supervised learning, dimensionality reduction, mani-fold learning, kernel learning, and multi-task learning.
591 Low Power Computing. (3)
For the past 4 decades performance has been the main driver behind the evolution of processor architectures. However, relentless technology scaling has brought us to a point, where the power consumption has become the main design concern of system designers. The processor market is now increasingly being classified in terms of power consumption rather than performance. For example, you can hear processor companies talk about their desire to have a processor in the sub-watt range. This course will quickly gloss over the basic process-level, transistor-level, and circuit level techniques for power reduction. We will spend some time on methods of power characterization and estimation at the microarchitecture level. Our concentration will be on solutions to the power problem at the microarchitecture, compiler and system level. The projects will involve proposing and implementing novel power optimization technique. The ultimate metric of success in this class will be publishable quality work.
591 Semi-structured Data Management (previously Data on the Web). (3)
As web data continue to grow at an explosive pace, we are facing more and more data that have richer structure than text documents but do not fit into a traditional database, called semi-structured data. For example, data obtained by web user tagging, collected from multiple independent web sources, resulted from information extraction, or presenting workflow information. These data do not have rigid structures, and are often error prone with various quality levels. On the other hand, a web user may not be able to formulate a precise query using a structured query language (such as SQL), and demand intelligent search and retrieval mechanisms. This course will present the most recent advances in data management and explore the techniques to enable web users to effectively retrieve semi-structured data.
591 Modeling Gene Regulatory Networks. (3)
The course will teach various computational and mathematical modeling to approximate gene regulatory networks as well as signaling pathways. Inference of model parameters will be also covered.
591 Introduction to Game Theory with Applications to Networks. (3)
The last few years have seen a tremendous interest in application of Game Theory in Computer Networking research. This is due the recognition in the telecommunication and internet industry of the limitation of pure optimization approach to find solutions to networking problems such as routing, resource allocation, quality of service and pricing. In general, the pure optimization approach assumes that activities such as routing and resource allocation can be carried out without taking into account the interaction between multiple users of the networks. However, interaction between the users in a network is often non-negligible and almost at all levels of the decision process, final outcome is a consequence of interaction between many "players" (e.g., Telcos, ISPs and end-users), who vie for limited resources. As the choice of one player influences the choice of the others, the modeling framework seeks to find a stable operating point (or equilibrium). In this framework, all users in the system seek to optimize his/her objective, by making decisions, which in turn is influenced by the decision of the other players. Although this framework is relevant in many different domains, we will study it with particular reference to the networking problems.
592 Research. (1-12)
Independent study in which a student, under the supervision of a faculty member, conducts research that is expected to lead to a specific project such as a thesis or dissertation, report, or publication. Assignments might include data collections, experimental work, data analysis, or preparation of a manuscript.
593 Applied Project. (1-12)
Preparation of a supervised applied project that is a graduation requirement in some professional majors.
595 Continuing Registration. (0)
Used in situations where registration is necessary but where credit is not needed. Replaces arbitrary enrollment in reading and conference, research, thesis, dissertation, etc. Used by students when taking comprehensive examinations, defending theses or dissertations, or fulfilling the continuous enrollment requirement in doctoral programs.
599 Thesis. (3)
Supervised research focused on preparation of thesis, including literature review, research, data collection and analysis, and writing.
790 Reading and Conference. (6)
Independent study in which a student meets regularly with a faculty member to discuss assignments.
792 Research. (1-12)
Independent study in which a student, under the supervision of a faculty member conducts research that is expected to lead to a specific project such as a dissertation, report, or publication.
795 Continuing Registration. (0)
Used in situations where registration is necessary but where credit is not needed. Replaces arbitrary enrollment in read and conference, research, thesis, dissertation, etc.
799 Dissertation. (1-12)
Supervised research focused on preparation of dissertation, including literature review, research, data collection and analysis, and writing.

