Considers concepts common to a variety of programming languages--how they are described (both formally and informally) and how they are implemented. Provides a firm basis for comprehending new languages and gives insight into the relationship between languages and machines. Same as CSCI 5535. Requisites: Requires prerequisite course CSCI 3155 (minimum grade D-).
Applies engineering principles to phases of software product development, project planning, requirements definition, design, design patterns, validation, and maintenance. Emphasizes practical methods for communicating and verifying definitions and designs---prototyping, inspections, and modeling (primarily UML). Includes relation to embedded systems and object-oriented design. Recommended prereqs of ECEN 1300 or CSCI 1300 and CSCI 2270 (minimum grade C-). Same as CSCI 5548. Requisites: Restricted to graduate students only.
Examines a range of topics involved in using parallel operations to improve computational performance. Discusses parallel architectures, parallel algorithms and parallel programming languages. Architectures covered include vector computers, multiprocessors, network computers, and data flow machines. Department enforced prereq., background in computer organization, introduction to programming languages and elementary numerical analysis. Recommended prereq of ECEN 4593 and CSCI 3653. Same as CSCI 5551.
Surveys artificial intelligence methods, theories, and applications. Studies the relationship between artificial intelligence and psychology, linguistics, and philosophy. Introduces artificial intelligence programming. Same as CSCI 5582. Requisites: Requires prerequisite course CSCI 3245 (minimum grade C-).
Provides a broad-scope treatment of important concepts in the design and implementation of high-performance computer systems. Discusses important issues in the pipelining of a processor, out-of-order instruction issue and superscalar designs, design of cache memory systems for such systems, and architectural features required for multicore processor designs. Also studies current and historically important computer architectures. Recommended prerequisite ECEN 4593. Same as CSCI 5593. Requisites: Restricted to any graduate students or Electrical/Computer Engineering or Electrical Engineering Concurrent Degree majors only.
Presents topics and techniques critical to the management of software product development, including estimating, planning, quality, tracking, reporting, team organization, people management, and legal issues. Gives special attention to problems unique to software projects. Same as CSCI 5608 and EMEN 5031. Requisites: Requires prerequisite courses ECEN 4583, ECEN 5543, and CSCI 4318 (all minimum grade D-). Restricted to graduate students only.
Same as ECEN 4613. Requisites: Restricted to any graduate students or Electrical/Computer Engineering or Electrical Engineering Concurrent Degree majors only.
Same as ECEN 4623. Requisites: Restricted to any graduate students or Electrical/Computer Engineering or Electrical Engineering Concurrent Degree majors only.
Same as ECEN 4633. Requisites: Restricted to any graduate students or Electrical/Computer Engineering or Electrical Engineering Concurrent Degree majors only.
Addresses engineering of applications requiring multiple software processes running concurrently, sharing data, and communicating as a system in a single environment. Topics include performance analysis of architecture design; analysis of requirements, design and testing of synchronization and communication; the interplay of system design and performance with the impact of memory management, input/output, and file system support. ECEN 4643 and 5643 are the same course. Requisites: Requires prerequisite course of ECEN 5543 (minimum grade C-). Restricted to College of Engineering majors only.
Learn how to design and build Linux-based real-time system applications for digital media encode/decode and transport. Course focus is on the process as well as fundamentals of designing, coding, and testing Linux-based real-time systems often used in industry for digital media systems. Students use POSIX kernel-mapped threads and drivers to implement real-time digital media solutions. ECEN 4653 and 5653 are the same course.
Examines systems that span multiple autonomous computers. Topics include system structuring techniques, scalability, heterogeneity, fault tolerance, load sharing, distributed file and information systems, naming, directory services, resource discovery, resource and network management, security, privacy, ethics, and social issues. Recommended prereq., CSCI 5573 or a course in computer networks. Same as CSCI 5673.
Addresses engineering of networked applications and self-contained embedded system products involving multiple processors. The fundamental concepts of software engineering are complicated by an application running simultaneously and asynchronously on multiple processors over a network. Topics: specification, analysis, design, and testing of distributed components including concerns of security, synchronization, transaction coordination, data replication, web services, and service oriented architectures. For ECEN 5743, recommended prereq., ECEN 4583 or ECEN 5543 or CSCI 5548. ECEN 4743 and 5743 are the same course. Requisites: Restricted to College of Engineering majors only.