Print...

Browse all courses

Principal Course Distribution Requirement

Principal courses offer introductions to the breadth of disciplines in the College. They acquaint students with the subject matter in an area, with the types of questions that are asked about that subject matter, with the knowledge that has been developed and is now basic to the area, and with the methods and standards by which claims to truth are judged.

Students must complete courses in topical groups in three major divisions (humanities, natural sciences and mathematics, and social sciences). For the B.A., three courses are required from each division, with no more than one course from any topical group. The B.G.S. requires two courses from each division, with no more than one from any topical group. To fulfill the requirement, a course must be designated as a principal course according to the codes listed below.

These are the major divisions, their topical subgroups, and the codes that identify them:

Humanities

  • HT: Historical studies
  • HL: Literature and the arts
  • HR: Philosophy and religion

Natural Sciences and Mathematics

  • NB: Biological sciences
  • NE: Earth sciences
  • NM: Mathematical sciences
  • NP: Physical science

Social Sciences

  • SC: Culture and society
  • SI: Individual behavior
  • SF: Public affairs

No course may fulfill both a principal course distribution requirement and a non-Western culture or second-level mathematics course requirement. Laboratory science courses designated as principal courses may fulfill both the laboratory science requirement and one of the distribution requirements. No free-standing laboratory course may by itself fulfill either the laboratory science requirement or a principal course requirement. Students should begin taking principal courses early in their academic careers. An honors equivalent of a principal course may fulfill a principal course requirement.

View all approved principal course distribution courses »

Non-Western Culture Requirement

A non-Western culture course acquaints students with the culture, society, and values of a non-Western people, for example, from Asia, the Pacific Islands, the Middle East, or Africa. Students must complete one approved non-Western culture course.

One approved non-Western culture course is required. Occasionally courses with varying topics fulfill the non-Western culture course requirement. See the Schedule of Classes for details. These courses are coded NW.

View all approved non-Western culture courses »

Transfer and Earned Credit Course Codes

These codes are used to evaluate transfer credit and to determine which academic requirements a course meets.

  • H: Humanities
  • N: Natural Sciences and Mathematics
  • S: Social Sciences
  • W: World Civilization and Culture
  • U: Undesignated Elective Credit (course does not satisfy distribution requirement)
Show courses in
with a course number to
worth in .

There are 9,438 results.

An introductory course in digital logic circuits covering number representation, digital codes, Boolean Algebra, combinatorial logic design, sequential logic design, and programmable logic devices. Corequisite: MATH 104. LEC
View current sections...
An introductory course in digital logic circuits covering number representation, digital codes, Boolean algebra, combinatorial logic design, sequential logic design, and programmable logic devices. This course is intended for highly motivated students and includes honors-level assignments. Co-requisite: MATH 121, plus either acceptance into the KU Honors Program or consent of instructor. LEC
View current sections...
Problem solving using a high level programming language and object oriented software design. Fundamental stages of software development are discussed: problem specification, program design, implementation, testing, and documentation. Introduction to programming using an object oriented language: using classes, defining classes, and extending classes. Introduction to algorithms and data structures useful for problem solving: arrays, lists, files, searching, and sorting. Student will be responsible for designing, implementing, testing, and documenting independent programming projects. Professional ethics are defined and discussed in particular with respect to computer rights and responsibilities. Corequisite: MATH 104. LEC
View current sections...
Problem solving using a high level programming language and object oriented software design. Fundamental stages of software development are discussed: problem specification, program design, implementation, testing, and documentation. Introduction to programming using an object oriented language: using classes, defining classes, extending classes. Introduction to algorithms and data structures useful for problem solving: arrays, lists, files, searching, and sorting. Students will be responsible for designing, implementing, testing, and documenting independent programming projects. Professional ethics are defined and discussed in particular with respect to computer rights and responsibilities. This course is intended for highly motivated students and includes honors-level assignments. Co-requisite: MATH 121, plus either acceptance into the KU Honors Program or consent of instructor. LEC
View current sections...
Mathematical foundations including logic, sets and functions, general proof techniques, mathematical induction, sequences and summations, number theory, basic and advanced counting techniques, solution of recurrence relations, equivalence relations, partial order relations, lattices, graphs and trees, algorithmic complexity, and algorithm design and analysis. Throughout there will be an emphasis on the development of general problem solving skills including algorithmic specification of solutions and the use of discrete structures in a variety of applications. Prerequisite: EECS 168 or 169 (or equivalent) and MATH 122. LEC
View current sections...
Analysis of linear electrical circuits: Kirchoff's laws; source, resistor, capacitor and inductor models; nodal and mesh analysis; network theorems; transient analysis; Laplace transform analysis; steady-state sinusoidal analysis; computer-aided analysis. Prerequisite: Co-requisite: Math 220 and MATH 290. LEC
View current sections...
Continued study of electrical circuits: Steady-state power analysis, three-phase circuits, transformers, frequency response, and two-port network analysis. Prerequisite: EECS 211. LEC
View current sections...
Vector analysis. Electrostatic and magnetostatic fields in a vacuum and material media. Electromagnetic fields and Maxwell's equations for time-varying sources. The relationship between field and circuit theory. Simple applications of Maxwell's equations. Prerequisite: MATH 220, MATH 290, PHSX 211, and EECS 211. LEC
View current sections...
This course continues developing problem solving techniques by focusing on the imperative and object-oriented styles using Abstract Data Types. Basic data structures such as queues, stacks, trees, and graphs will be covered. Recursion. Basic notions of algorithmic efficiency and performance analysis in the context of sorting algorithms. Basic Object-Oriented techniques. An associated laboratory will develop projects reinforcing the lecture material. Three class periods and one laboratory period per week. Prerequisite: EECS 168 or EECS 169. LEC
View current sections...
Introduction to diodes, BJTs and MOSFETs, and their use in electronic circuits, especially digital circuits. Prerequisite: Upper-level eligibility. Corequisite: EECS 212. LEC
View current sections...
Introduction to DC and AC electrical circuit analysis techniques, AC power calculations, transformers, three-phase systems, magnetic circuits, and DC and AC machines with a focus on applications. Not open to electrical or computer engineering majors. Prerequisite: A course in differential equations and eight hours of physics. LEC
View current sections...
Introduction to DC and AC electrical circuit analysis, operational amplifiers, semiconductors, digital circuits and systems, and electronic instrumentation and measurements with a focus on applications. Not open to electrical or computer engineering majors. Students may not receive credit for both EECS 316 and EECS 317. Prerequisite: A course in differential equations and eight hours of physics. LEC
View current sections...
Introduction to operational amplifiers, semiconductors, digital circuits and systems, and electronic instrumentation and measurements with a focus on applications. Not open to electrical or computer engineering majors. Students may not receive credit for both EECS 316 and EECS 317. Prerequisite: EECS 315. LEC
View current sections...
Laboratory exercises intended to complement EECS 315, EECS 316 and EECS 317. Experiments include DC circuits, analog electronics, and digital electronics. Not open to electrical or computer engineering majors. Co-requisite: EECS 316 or EECS 317. LAB
View current sections...
Fourier signal analysis (series and transform); linear system analysis (continuous and discrete); Z-transforms; analog and digital filter analysis. Analysis and design of continuous and discrete time systems using MATLAB. Prerequisite: Upper level of EECS Eligibility. Corequisite: EECS 212. LEC
View current sections...
The course is a survey of programming languages: their attributes, uses, advantages, and disadvantages. Topics include scopes, parameter passing, storage management, control flow, exception handling, encapsulation and modularization mechanism, reusability through genericity and inheritance, and type systems. In particular, several different languages will be studied which exemplify different language philosophies (e.g., procedural, functional, object-oriented, logic, scripting). Prerequisite: EECS 268 and upper-level EECS eligibility. LEC
View current sections...
Internal organization of microprocessor and microcontroller systems; programming in assembly language; input and output system; controlling external devices. The course will focus on one or two specific microprocessors and computer systems. Prerequisite: EECS 140 or EECS 141, EECS 168 or EECS 169, and upper-level EECS eligibility. LEC
View current sections...
An electrical engineering, computer engineering, or computer science project pursued under the student's initiative, culminating in a comprehensive report, with special emphasis on orderly preparation and effective composition. Prerequisite: Upper-level EECS eligibility and consent of instructor. IND
View current sections...
Discrete and integrated amplifier analysis and design. Introduction to feedback amplifier analysis and design. Introduction to feedback amplifiers. Prerequisite: EECS 312 and upper-level EECS eligibility. LEC
View current sections...
This course applies electromagnetic analysis to high frequency devices and systems where wave propagation effects cannot be neglected. Topics covered include transmission lines, space waves, waveguides, radiation, and antennas. Laboratory experiments include transmission line, waveguide, and antenna measurements and characterizations. 3 hours lecture, 1 hour laboratory. Prerequisite: EECS 220 and upper-level EECS eligibility. LEC
View current sections...
Integrates system components into functional, safe, and reliable power distribution systems for commercial, industrial and institutional (CII) facilities. Service entrance design, distribution system layout and reliability, emergency and standby power system design, medium-voltage distribution systems, symmetrical fault analysis, and special equipment and occupancies. Prerequisite: ARCE 640 or EECS 212 or consent of instructor. LEC
View current sections...
The design of computer systems from hardware point of view. The implementation of functional and control units. Introduction to VHDL, and its use in modeling and designing digital systems. Prerequisite: EECS 388. LEC
View current sections...
An introduction to the modeling, analysis, and design of linear control systems. Topics include mathematical models, feedback concepts, state-space methods, time response, system stability in the time and transform domains, design using PID control and series compensation, and digital controller implementation. Prerequisite: EECS 212 and EECS 360. LEC
View current sections...
This course is an introduction to software engineering, and it covers the systematic development of software products. It outlines the scope of software engineering, including life-cycle models, software process, teams, tools, testing, planning, and estimating. It concentrates on requirements, analysis, design, implementation, and maintenance of software products. The laboratory covers CASE tools, configuration control tools, UML diagrams, integrated development environments, and project specific components. Prerequisite: EECS 268 and upper-level EECS eligibility. LEC
View current sections...
Introduction to probability and statistics with applications. Reliability of systems. Discrete and continuous random variables. Expectations, functions of random variables, and linear regression. Sampling distributions, confidence intervals, and hypothesis testing. Joint, marginal, and conditional distribution and densities. Prerequisite: MATH 290, MATH 220 and upper-level EECS eligibility. LEC
View current sections...
An introduction to crystal structures, and metal, insulator, and semiconductor properties. Topics covered include the thermal, electric, dielectric, and optical properties of these materials. A significant portion of this course is devoted to the properties of semiconductors and semiconductor devices. Prerequisite: PHSX 313 and upper-level EECS eligibility. LEC
View current sections...
Arranged to allow students to satisfy the independent research requirement for graduation with departmental honors. Prerequisite: Consent of instructor and upper-level EECS eligibility. IND
View current sections...
A lecture/laboratory course involving the design and implementation of prototypes of electrical and computer type products and systems. The project specifications require consideration of ethics, economics, manufacturing, and safety. Prerequisite: EECS 412 and EECS 562. LEC
View current sections...
A lecture/laboratory course involving the design and implementation of prototypes of electrical and computer type products and systems. The project specifications require consideration of ethics, economics, health, manufacturing, and safety. Prerequisite: EECS 501. LEC
View current sections...
Finite state automata and regular expressions. Context-free grammars and pushdown automata. Turing machines. Models of computable functions and undecidable problems. The course emphasis is on the theory of computability, especially on showing limits of computation. May be taken for graduate credit. (Same as MATH 510.) Prerequisite: EECS 210 and upper-level EECS eligibility. LEC
View current sections...
Feedback amplifier circuit analysis, power amplifiers, analog IC op-amp techniques and analysis, filter approximation and realization, oscillators, wave generators and shapers. Prerequisite: EECS 412. LEC
View current sections...
A two semester lecture/laboratory course involving the specification, design, implementation, analysis, and documentation of a significant hardware and software computer system. Laboratory work involves software, hardware, and hardware/software trade-offs. Project requirements include consideration of ethics, economics, manufacturing, safety, and health aspects of product development. Can be taken only during the senior year. Prerequisite: EECS 443 and EECS 448. LEC
View current sections...
A two semester lecture/laboratory course involving the specification, design, implementation, analysis, and documentation of a significant hardware and software computer system. Laboratory work involves software, hardware, and hardware/software trade-offs. Project requirements include consideration of ethics, economics, manufacturing, safety, and health aspects of product development. Can be taken only during the senior year. Prerequisite: EECS 541. LEC
View current sections...
The design, analysis, simulation, and layout of integrated circuit systems using CMOS technology. Students will carry out a design from initial concept through mask layout. The use of computer aided design tools is emphasized. Prerequisite: EECS 312 and EECS 470. LEC
View current sections...
Data abstraction and abstract data types. Topics include the design and implementation of dictionary, priority queues, concatenated queue, disjoint set structures, graphs, and other advanced data structures based on balanced and unbalanced tree structures. Special emphasis will be placed on the implementations of these structures and their performance tradeoffs. Both asymptotic complexity analysis and experimental profiling techniques will be introduced. Labs will be used to provide students with hands-on experience in the implementations of various abstract data types and to perform experimental performance analysis. Prerequisite: EECS 210 and EECS 448. LEC
View current sections...
A first course in communications, including lectures and integrated laboratory experiments. After a review of spectral analysis and signal transmission, analog and digital communications are studied. Topics include: sampling, pulse amplitude modulation, and pulse code modulation; analog and digital amplitude, frequency, and phase modulation; frequency and time division multiplexing; and noise performance of analog modulation techniques. Prerequisite: EECS 212 and EECS 360. LEC
View current sections...
An introduction to the principles used in communication networks is given in this course. Topics include a discussion of the uses of communications networks, network traffic, network impairments, standards, layered reference models for organizing network functions. Local Area Network technology and protocols are discussed. Link, network, transport layer protocols, and security are introduced. TCP/IP networks are stressed. VoIP is used as an example throughout the course. Basic concepts of network performance evaluation are studied, both analytical and simulation techniques are considered. Prerequisite: EECS 168 and either EECS 461 or MATH 526. LEC
View current sections...
An introductory course on electric power generation and transmission. Topics will include: electric power system components; environmental impact; renewable energy sources; power system networks and flow; synchronous generators; transformers; high voltage transmission systems; power quality; stability; blackouts. Prerequisite: EECS 212 or EECS 315 and EECS 220 or PHSX 212. LEC
View current sections...
The background and planning phase of a two-semester, team-oriented lecture/laboratory course involving the specification, design, implementation, and documentation of a significant software system. The course includes the consideration of project management, ethics, economics, and technical writing. Can be taken only during the senior year. Prerequisite: EECS 448, EECS 510 and EECS 560. LEC
View current sections...
The design and implementation phase of a two-semester, team-orientated lecture/laboratory course involving the specification, design, implementation, and documentation of a significant software system. The course includes the consideration of project management, ethics, economics, and technical writing. Can be taken only during the senior year. Prerequisite: EECS 581. LEC
View current sections...
A study of unwanted generation and reception of radio-frequency radiation from analog and digital electronic systems and how these emissions/receptions can be reduced. Topics covered include sources of radiation, grounding, shielding, crosstalk, electrostatic discharge, and practical design and layout schemes for reducing unwanted radiation and reception. Also covered are the major governmental electromagnetic compatibility (EMC) regulations and standards that apply to commercial electronic devices and systems. Prerequisite: EECS 220 and EECS 312. LEC
View current sections...
Introduction to radio transmission systems. Topics include radio transmitter and receiver design, radiowave propagation phenomenology, antenna performance and basic design, and signal detection in the presence of noise. Students will design radio systems to meet specified performance measure. Corequisite: EECS 420 and EECS 461. LEC
View current sections...
Description and analysis of the key components in optical communication systems. Topics covered include quantum sources, fiber cable propagation and dispersion characteristics, receiver characteristics, and system gain considerations. Prerequisite: EECS 220 and PHSX 313 or equivalent and upper-level EECS eligibility. LEC
View current sections...
Basic information about expert systems: architecture of an expert system, building expert systems, uncertainty in expert systems, taxonomy of expert systems. Knowledge representation: first order logic, production systems, semantic nets, frames. Uncertainty in expert systems, one-valued approaches: probability theory, systems using Bayes' rule, and systems using certainty theory; two-valued approaches: systems using Dempster-Shafer theory and system INFERNO; set-valued approaches: systems using fuzzy set theory and systems using rough set theory. Prerequisite: EECS 560 or consent of instructor. LEC
View current sections...
Principles and techniques of instruction level parallelism, Tomasulo's algorithm, branch prediction, reservation stations, recorder buffers, memory hierarchies. Parallel and scalable architectures, global directory caches, synchronization primitives, memory consistency, multithreading. Only one of EECS 643 and EECS 645 may be used to satisfy EECS degree requirements. Prerequisite: EECS 443. LEC
View current sections...
Discrete time signal and systems theory, sampling theorem, z-transforms, digital filter design, discrete Fourier transform, FFT, and hardware considerations. Prerequisite: EECS 360. LEC
View current sections...
The structure and design of computing systems. Examination and analysis of computing systems. Examination and analysis of instruction set architectures, pipelined control and arithmetic units, vector processors, memory hierarchies, and performance evaluation. Prerequisite: EECS 388. LEC
View current sections...
Introduction to the concept of databases and their operations. Basic concepts, database architectures, storage structures and indexing, data structures: hierarchical, network, and relational database organizations. Emphasis on relational databases and retrieval languages SQL, QBE, and ones based on relational algebra and relational calculus; brief description of predicate calculus. Theory of databases, normal forms, normalization, candidates keys, decomposition, functional dependencies, multi-valued dependencies. Introduction to the design of a simple database structure and a data retrieval language. Student cannot receive credit for both EECS 647 and EECS 746. Prerequisite: EECS 448. LEC
View current sections...
This course focuses on the software engineering tools and practices currently in use in the industry, supporting the complete software development lifecycle. The course provides hands-on experience with current software development tools. Topics include software engineering artifacts, team structure and roles, work contracts, requirements elicitation and analysis, specifications, supplementary specifications, use-case models, activity diagrams, use-case specifications, traceability, technical design, design review meetings, coding standards, code quality, code reviews, and modern software engineering tools. Prerequisite: EECS 448. LEC
View current sections...
General concepts, search procedures, two-person games, predicate calculus and automated theorem proving, nonmonotonic logic, probabilistic reasoning, rule based systems, semantic networks, frames, dynamic memory, planning, machine learning, natural language understanding, neural networks. Corequisite: EECS 368. LEC
View current sections...
Basic concepts and techniques in the design and analysis of computer algorithms. Models of computations. Simple lower bound theory and optimality of algorithms. Computationally hard problems and the theory of NP-Completeness. Introduction to parallel algorithms. Prerequisite: EECS 560 and either EECS 461 or MATH 526. LEC
View current sections...
Formal definition of programming languages including specification of syntax and semantics. Simple statements including precedence, infix, prefix, and postfix notation. Global properties of algorithmic languages including scope of declaration, storage allocation, grouping of statements, binding time of constituents, subroutines, coroutines, and tasks. Run-time representation of program and data structures. Prerequisite: EECS 368 and EECS 388 and EECS 560. LEC
View current sections...
An introduction to building digital communication systems in discrete time, including lectures and integrated laboratory exercises. Topics covered include signal spaces, base-band modulation, bandpass modulation, phase-locked loops, carrier phase recovery, symbol timing recovery, and basic performance analysis. Prerequisite: EECS 360 and EECS 461. LAB
View current sections...
Compilation of simple expressions and statements. Organization of a compiler including symbol tables, lexical analysis, syntax analysis, intermediate and object code generation, error diagnostics, code optimization techniques and run-time structures in a block-structured language such as PASCAL or C. Programming assignments include using tools for lexer and parser generator, and intermediate , and object code generation techniques. Laboratory exercises will provide hands-on experience with the tools and concepts required for the programming assignments. Prerequisite: EECS 368, EECS 448, and EECS 510. LEC
View current sections...
An overview of various processes to fabricate semiconductor devices and integrated circuits. Topics covered include crystal growth, oxidation, solid-state diffusion, ion implantation, photolithography, chemical vapor deposition, epitaxial growth, metalization, and plasma etching of thin films. (Same as C&PE 655.) Prerequisite: Senior standing in C&PE or EECS, or consent of instructor. LEC
View current sections...
Foundations of 2D and 3D computer graphics. Structured graphics application programming. Basic 2D and 3D graphics algorithms (modeling and viewing transformations, clipping, projects, visible line/surface determination, basic empirical lighting, and shading models), and aliasing. Prerequisite: EECS 448. LEC
View current sections...
The objective of this course is to provide the students with the concepts necessary to enable them to: a) identify the abstract services common to all operating system, b) define the basic system components that support the operating system's machine independent abstractions on particular target architectures, c) consider how the design and implementation of different systems components interact and constrain one another, not merely how one or two important parts work in isolation, and d) understand the means by which fundamental problems in operating systems can be analyzed and addressed. Programming assignments address topics including process creation, inter-process communication, system call implementation, process scheduling and virtual memory. Laboratory exercises primarily focus on use of tools and concepts required for the programming assignments but include a small number of independent topics. Prerequisite: EECS 388 and EECS 448. LEC
View current sections...
Arranged as needed to present appropriate material to groups of students. May be repeated for additional credit. Prerequisite: Upper-level EECS eligibility and consent of instructor. LEC
View current sections...
Reading under the supervision of an instructor on a topic chosen by the student with the advice of the instructor. May be repeated for additional credit. Consent of the department required for enrollment. Prerequisite: Upper-level EECS eligibility and consent of instructor. IND
View current sections...
Courses on special topics of current interest in electrical engineering, computer engineering, or computer science, given as the need arises. May be repeated for additional credit. Prerequisite: Variable. LEC
View current sections...
This introductory security course covers a wide range of topics in the area of information and network security, privacy, and risk: the basic concepts: confidentiality, integrity and availability; introduction to cryptography; authentication; security models; information and database security; computer systems security; network security; Internet and web security; risk analysis; social engineering; computer forensics. Prerequisite: Graduate standing in EECS, or permission of the instructor. LEC
View current sections...
Administration and management of security of information systems and networks, intrusion detection systems, vulnerability analysis, anomaly detection, computer forensics, auditing and data management, risk management, contingency planning and incident handling, security planning, e-business and commerce security, privacy, traceability and cyber-evidence, human factors and usability issues, policy, legal issues in computer security. Prerequisite: EECS 710. LEC
View current sections...
This course covers the fundamental concepts, theories, methodologies, and applications in network security: crypto preliminaries; security models; authentication and access control; protocols and standards; firewalls; VPNs, traffic monitoring and intrusion detection; DDoS attacks; malware propagation and detection; worms and Trojan horses; wireless security; Web security and privacy; botnets and honeypots. Prerequisite: EECS 563 or EECS 780 and EECS 710. LEC
View current sections...
Basic concepts and techniques in the design and analysis of high-frequency digital and analog circuits. Topics include: transmission lines, ground and power planes, layer stacking, substrate materials, terminations, vias, component issues, clock distribution, cross-talk, filtering and decoupling, shielding, signal launching. Prerequisite: EECS 312 and senior or graduate standing. EECS 420 recommended. LEC
View current sections...
Formal language generation by grammars, recognition by automata (finite and pushdown automata, Turing machines), and equivalence of these formulations; elementary containment and closure properties. Emphasis on context-free, deterministic context-free and regular languages. Prerequisite: EECS 510 or equivalent. LEC
View current sections...
This course introduces students to computational graph theory and various graph algorithms and their complexities. Algorithms and applications covered will include those related to graph searching, connectivity and distance in graphs, graph isomorphism, spanning trees, shortest paths, matching, flows in network, independent and dominating sets, coloring and covering, and Traveling Salesman and Postman problems. Prerequisite: EECS 560 or graduate standing with consent of instructor. LEC
View current sections...
Topics in electromagnetics relevant to wireless communications, otpics and fiberoptics, radar, and remote sensing. Subjects covered include space waves, guided waves, radiation and antennas, scattering, electromagnetic properties of materials, and optics. Prerequisite: EECS 420 or equivalent. LEC
View current sections...
Gain, Pattern, and Impedance concepts for antennas. Linear, loop, helical, and aperture antennas (arrays, reflectors, and lenses). Cylindrical and biconical antenna theory. Prerequisite: EECS 360 and EECS 420, or EECS 720, or permission of the instructor. LEC
View current sections...
Survey of microwave systems, techniques, and hardware. Guided-wave theory, microwave network theory, active and passive microwave components. The four-hour version of the course includes a laboratory. Prerequisite: EECS 420. LEC
View current sections...
Basic radar principles and applications. Radar range equation. Pulsed and CW modes of operation for detection, ranging, and extracting Doppler information. Prerequisite: EECS 360, EECS 420, EECS 461. EECS 622 recommended. LEC
View current sections...
The course will focus on fundamental theory and various methods and applications of fiber-optic measurements and sensors. Topics include: optical power and loss measurements, optical spectrum analysis, wavelength measurements, polarization measurements, dispersion measurements, PMD measurements, optical amplifier characterization, OTDR, optical components characterization and industrial applications of fiber-optic sensors. Prerequisite: EECS 628 or equivalent. LEC
View current sections...
This course provides an introduction to bioinformatics. It covers computational tools and databases widely used in bioinformatics. The underlying algorithms of existing tools will be discussed. Topics include: molecular biology databases, sequence alignment, gene expression data analysis, protein structure and function, protein analysis, and proteomics. Prerequisite: Data Structures class equivalent to EECS 560, and Introduction to Biology equivalent to BIOL 150, or consent of instructor. LEC
View current sections...
Computer-based theorem-proving methods for selected domains such as plane geometry, symbolic integral calculus, and propositional calculus are reviewed. Mechanical theorem-proving procedures for the first-order predicate calculus are studied in depth. Includes resolution, semantic resolution, hyper-resolution, linear resolution, and paramodulation. Applications of these procedures to areas such as proofs of program correctness, deductive question answering, problem solving, and program synthesis. Prerequisite: EECS 649 and a knowledge of mathematical logic equivalent to that supplied by EECS 210. Infrequently offered. LEC
View current sections...
"Machine learning is the study of computer algorithms that improve automatically through experience" (Tom Mitchell). This course introduces basic concepts and algorithms in machine learning. A variety of topics such as Bayesian decision theory, dimensionality reduction, clustering, neural networks, hidden Markov models, combining multiple learners, reinforcement learning, Bayesian learning etc. will be covered. Prerequisite: Graduate standing in CS or CoE or consent of instructor. LEC
View current sections...
This course is concerned with the application of parallel processing to problems in the natural sciences and engineering. State-of-the-art computing methodologies are studied along with contemporary applications. The course takes a performance-oriented applied approach, with attention to parallel algorithms, parallel architecture, compilation issues, and system evaluation. Prerequisite: Graduate standing or consent of instructor and experience with C, C++, or FORTRAN. LEC
View current sections...
This course gives a hands-on introduction to the fundamentals of digital image processing. Topics include: image formation, image transforms, image enhancement, image restoration, image reconstruction, image compression, and image segmentation. Prerequisite: EECS 672 or EECS 744. LEC
View current sections...
This course gives a hands-on introduction to the fundamentals of computer vision. Topics include: image formation, edge detection, image segmentation, line-drawing interpretation, shape from shading, texture analysis, stereo imaging, motion analysis, shape representation, object recognition. Prerequisite: EECS 672 or EECS 744. LEC
View current sections...
This course presents an introduction to techniques for statically analyzing programs. Converge includes theoretical analysis, definition and implementation of data flow analysis, control flow analysis, abstract interpretation, and type and effects systems. The course presents both the underlying definitions and pragmatic implementation of these systems. Prerequisite: EECS 665 or EECS 662 or equivalent. LEC
View current sections...
This course will focus on the emerging technologies to build high-performance, low-power, and resilient microprocessors. Topics include multiprocessing, reliability-and-variability-aware computer architecture designs, energy-efficient computer systems, on-chip networks, 3D microprocessor designs, general-purpose computation on graphics processing units, and non-volatile computer memory. The course responds to VLSI technologies ability to provide increasing numbers of transistors and clock speeds to allow computer architects to build powerful microprocessors and computer systems and the challenges (e.g. resilience, energy-efficiency) that the growth in microprocessor performance is facing from the aggressive technology scaling. Prerequisite: EECS 643 or EECS 645, or equivalent. A good understanding of C/C++ and having basic Unix/Linux skills is required. LEC
View current sections...
The application of DSP techniques to specialized communications and radar signal processing subsystems. Topics include A-D converters, specialized digital filters, software receiver systems, adaptive subsystems and timing. Prerequisite: An undergraduate course in DSP such as EECS 644. LEC
View current sections...
EECS 745 is a laboratory-focused implementation of networks. Topics include direct link networks (encoding, framing, error detection, reliable transmission, SONET, FDDL, network adapters, Ethernet, 802.11 wireless networks); packet and cell switching (ATM, switching hardware, bridges and extended LANs); internetworking (Internet concepts, IPv6, multicast, naming/DNS); end-to-end protocols (UDP, TCP, APIs and sockets, RPCs, performance); end-to-end data (presentation formatting, data compression, security); congestion control (queuing disciplines, TCP congestion control and congestion avoidance); high-speed networking (issues, services, experiences); voice over IP (peer-to-peer calling, call managers, call signalling, PBX and call attendant functionality). Prerequisite: EECS 563 or EECS 780. LEC
View current sections...
Introduction to the concept of databases and their operations. Basic database concepts, architectures, and data storage structures and indexing. Though other architectures are discussed, focus is on relational databases and the SQL retrieval language. Normalization, functional dependencies, and multivalued dependencies also covered. Culminates in the design and implementation of a simple database with a web interface. Prerequisite: EECS 448 or consent of instructor. Students cannot receive credit for both EECS 647 and EECS 746. LEC
View current sections...
Design, construction, and programming of mobile robots. Topics include computational hardware, designing and prototyping, sensors, mechanics, motors, power, robot programming, robot design principles, and current research in mobile robotics. Prerequisite: Knowledge of at least one modern programming language. LEC
View current sections...
General concepts of intelligent problem solving, rule-based systems, distributed AI, reasoning under uncertainty, case-based reasoning, subsymbolic techniques. Prerequisite: At least one class in Artificial Intelligence. LEC
View current sections...
This course builds on the foundation established by an introductory course in operating systems concepts (e.g. EECS 678). Some previously covered topics are revisited in far greater detail, including code review of relevant portions of the Linux kernel source code. Examples include: computation representation by processes, system calls, interrupt processing and interrupt concurrency, process execution scheduling, and concurrency control methods. Advanced topics, such as system performance analysis, time keeping, clock synchronization, virtualization, real-time implications for system design and scheduling, and device driver implementation are introduced for the first time. Approximately one-quarter to one-third of the class is devoted to reading, presenting and discussion conference and journal papers either illustrating classic breakthroughs in system architectures and methods or current research issues. Selection of the specific papers is done each semester, and students in the class are encouraged to suggest candidate topics and/or papers for consideration. Prerequisite: An undergraduate course in operating systems fundamentals. For example, EECS 678 or equivalent. LEC
View current sections...
This course will cover emerging and proposed techniques and issues in embedded and real time computer systems. Topics will include new paradigms, enabling technologies, and challenges resulting from emerging application domains. Prerequisite: EECS 645 and EECS 678. LEC
View current sections...
Modern techniques for modeling and analyzing software systems. Course coverage concentrates on pragmatic, formal modeling techniques that support predictive analysis. Topics include formal modeling, static analysis, and formal analysis using model checking and theorem proving systems. Prerequisite: EECS 368 or equivalent. LEC
View current sections...
An investigation of alternative programming paradigms and their representative effect on programming expressiveness and style. Emphasis is on a comparative understanding of a spectrum of programming paradigms, with some facility in the use of at least one typical language representative of each paradigm studied. The course will review and investigate as appropriate imperative, functional, object-oriented, parallel, and logical programming paradigms, plus additional paradigms as relevant. Prerequisite: EECS 662 or EECS 807 or equivalent. LEC
View current sections...
This course presents a basic introduction to the semantics of programming languages. The presentation begins with basic lambda calculus and mechanisms for evaluating lambda calculus terms. Types are introduced in the form of simply typed lambda calculus and techniques for type inference and defining type systems are presented. Finally, techniques for using lambda calculus to define, evaluate and type check common programming language constructs are presented. Prerequisite: EECS 662 or equivalent. LEC
View current sections...
This course covers the latest trends in advanced computer architecture for multiprocessor systems on chip for embedded and real time systems (MPSoC). Topics covered include multicore architectures, modeling abstractions, run time systems, and Hw/Sw co-design techniques. Prerequisite: EECS 678 and EECS 645 or equivalents. LEC
View current sections...
Models of computations and performance measures; asymptotic analysis of algorithms; basic design paradigms including divide-and-conquer, dynamic programming, backtracking, branch-and-bound, greedy method and heuristics; design and analysis of approximation algorithms; lower bound theory; polynomial transformation and the theory of NP-Completeness; additional topics may be selected from arithmetic complexity, graph algorithms, string matching, and other combinatorial problems. Prerequisite: EECS 660 or EECS 805 or equivalent. LEC
View current sections...
Connections between network customers and the network come in many forms, wireless data systems, e.g., IEEE 802.16, wireless cellular systems, e.g. 3G, coax cable networks, e.g., DOSCIS, fiber optic communications systems, e.g., EPON, copper twisted pair, e.g., DSL, and powerline communications systems. All of these systems use various resource sharing strategies. The resource sharing strategy is matched to the necessities of specific systems as well as their operating environments. There are commonalities between these strategies as well as differences. This course will look at resource sharing from a general perspective and then examine specific systems to underscore their commonalities and differences. Systems to be studied in detail include, DOSCIS, IEEE 802.16/Wi-Max, WCDMA, HSDPA/HSUPA, EV-DO, EPON, ZigBee/IEEE 802.15.4, powerline networks. The use of cognitive radio communications technologies in future access networks will be introduced. Prerequisite: EECS 461 and EECS 563 or EECS 780. LEC
View current sections...
This class introduces algorithms and applications for retrieving information from large document repositories, including the Web. Topics span from classic information retrieval methods for text documents and databases, to recent developments in Web search, including: text algorithms, indexing, probabilistic modeling, performance evaluation, web structures, link analysis, multimedia information retrieval, social network analysis. Prerequisite: EECS 647 or permission of instructor. LEC
View current sections...
Understand the fundamental principles and advanced implementation aspects of key virtual machine concepts. Topics include principles of virtualization, binary translation, process and system level virtual machines, JIT complication and optimizations in managed environments, garbage collection, virtual machine implementation issues, and virtual machine security. Includes in-depth coverage of the latest developments and research issues in the filed of virtual machines. Prerequisite: EECS 665 and either EECS 643 or EECS 645 or consent of instructor. LEC
View current sections...
Mathematical limitations on the generation, storage, and transmission of information. Shannon's first theorem and data-compaction coding. Mutual information. Shannon's second theorem and channel capacity. Information theory and performance limitations of error-correction coding. Rate-distortion theory. Network information theory. Practical applications drawn from telecommunications and other fields. Prerequisite: EECS 461 or an equivalent undergraduate probability course. LEC
View current sections...
Advanced topics in graphics and graphics systems. Topics at the state of the art are typically selected from: photorealistic rendering; physically-based lighting models; ray tracing; radiosity; physically-based modeling and rendering; animation; general texture mapping techniques; point-based graphics; collaborative techniques; and others. Prerequisite: EECS 672 or permission of instructor. LEC
View current sections...
Introduction to the representation, manipulation, and analysis of geometric models of objects. Implicit and parametric representations of curves and surfaces with an emphasis on parametric freeform curves and surfaces such as Bezier and Nonuniform Rational B-Splines (NURBS). Curve and surface design and rendering techniques. Introduction to solid modeling: representations and base algorithms. Projects in C/C++ using OpenGL. Prerequisite: EECS 672 or permission of instructor. LEC
View current sections...
Data representations, algorithms, and rendering techniques typically used in Visualization applications. The emphasis is on Scientific Visualization and generally includes topics such as contouring and volumetric rendering for scalar fields, glyph and stream (integral methods) for vector fields, and time animations. Multidimensional, multivariate (MDMV) visualization techniques; scattered data interpolation; perceptual issues. Prerequisite: General knowledge of 3D graphics programming or instructor's permission. LEC
View current sections...
An introduction to functional programming. Topics include learning how to program in Haskell; IO and purity in software engineering; functional data structures and algorithms; monads and applicative functors; parsing combinators; Domain Specific Languages (DSLs) and DSL construction; advanced type systems; making assurance arguments; testing and debugging. Prerequisite: EECS 368 or equivalent or consent of instructor. LEC
View current sections...
Comprehensive in-depth coverage to communication networks with emphasis on the Internet and the PSTN (wired and wireless). Extensive coverage of protocols and algorithms will be presented at all levels, including: social networking, overlay networks, client/server and peer-to-peer applications; session control; transport protocols, the end-to-end arguments and end-to-end congestion control; network architecture, forwarding, routing, signaling, addressing, and traffic management; quality of service, queuing and multimedia applications; LAN architecture, link protocols, access networks and MAC algorithms; physical media characteristics and coding; network security and information assurance; network management. Prerequisite: EECS 563 or equivalent or permission of instructor. LEC
View current sections...
‹ First  < 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 >  Last ›

The University of Kansas prohibits discrimination on the basis of race, color, ethnicity, religion, sex, national origin, age, ancestry, disability, status as a veteran, sexual orientation, marital status, parental status, gender identity, gender expression and genetic information in the University’s programs and activities. The following person has been designated to handle inquiries regarding the non-discrimination policies: Director of the Office of Institutional Opportunity and Access, IOA@ku.edu, 1246 W. Campus Road, Room 153A, Lawrence, KS, 66045, (785)864-6414, 711 TTY.