CMPEN 111: Computers and Computer Hardware
1 Credits
CMPEN111
Computers and Computer Hardware
1 Credits
A brief orientation to University life and resources and an introduction to computers and computer hardware. CMPEN 111S Computers and Computer Hardware (1)This course contains two components: an orientation to University life and an introduction to the hardware aspects of computer engineering. In the orientation to University life, students learn about the responsibilities of and expectations on a student including ethical behavior, and explore some of the academic and non-academic resources of the University. In the introduction to computer engineering students learn about some of the fundamental concepts, devices, and methodologies that are involved in the design and use of digital and computer hardware. This exploration begins with a foundation of logic and critical thinking. Logic is examined first from a theoretical problem solving standpoint. The discussion then progresses to an implementation perspective examining how logic devices are created and used. Included is a look at some CAD tools and some logic design laboratory exercises. Using logic as a basic building block, the organization and design of a computer is then examined, ending in an exploration of some of the contemporary methods used to make computers faster and more efficient.
First-Year Seminar
CMPEN 270: Digital Design: Theory and Practice
4 Credits
CMPEN270
Digital Design: Theory and Practice
4 Credits
Introduction to digital systems and their design. Topics include combinational and sequential devices and circuits, modern design tools and design practices. Students may take only one course for credit for CMPEN270 or CMPEN271 and CMPEN270 or CMPEN275. CMPEN270 Digital Design: Theory and Practice (4)CMPEN270 is a first course in digital systems and digital system's design. It lays the groundwork for many later courses in computer organization and architecture and switching theory. The course includes both a lecture component to introduce important concepts, principles, methodologies and theories and a laboratory component in which the lecture material can be applied and practiced. The course introduces the theoretical foundation for digital systems including number systems, a variety of commonly used codes and Boolean algebra. Combinational devices, logic gates, and sequential devices, latches and flip-flops are introduced along with design techniques, methods and tools. Design criteria and objectives are considered and design trade-offs are examined. Higher level design elements are also examined such as decoders, multiplexers, counters, and registers, and their use in system design. Students are exposed to a variety of design tools and implementation techniques, including schematic capture tools, simulation tools, Hardware Description Languages (HDL) and HDL design tools. Laboratory work includes the design, construction and debugging of a variety of digital circuits, and the use of standard laboratory tools such as the oscilloscope and logic analyzer, and various software design tools.
Enforced Concurrent at Enrollment for: PHYS212
CMPEN 271: Introduction to Digital Systems
3 Credits
CMPEN271
Introduction to Digital Systems
3 Credits
Introduction to logic design and digital systems. Boolean algebra, and introduction to combinatorial and sequential circuit design and analysis. Students may take only one course for credit for CMPEN270 or 271. CMPEN 271CMPEN 271 Introduction to Digital Systems (3)This course introduces students to logic design and digital systems. The course begins with an overview of number systems, base conversions, and binary arithmetic. Boolean algebra is presented and several basic theorems and postulates are introduced. Boolean algebra is then used to model digital devices. Canonical forms for expressing Boolean functions are introduced including sum-of-products and product-of-sum forms.Basic Small Scale Integrated (SSI) combinational devices are introduced along with a description of their operations characterization, and use. The basic symbols used in a logic diagram/schematic are introduced and the principles involved in reading and creating logic diagrams/schematics are discussed.A systematic design methodology for combinational circuits is covered, including the concepts of function minimization using Karnaugh maps, handling don't care conditions, and designing multiple output circuits. Medium Scale Integrated (MSI) combinational devices and functions such as multiplexors and decoders are discussed and their use in a variety of applications is explained. Simple programmable logic devices and their use in implementing combinational functions is covered. The process of combinational circuit analysis is discussed and the use and interpretation of timing diagrams is introduced. Binary arithmetic is reviewed along with binary addition and subtraction circuits. Various negative number codes are discussed including 2's complement, l's complement and sign-magnitude representation.The concept of state and memory is introduced along with various sequential devices including the R-S latch, the D latch and the D, T, and J-K flip-flops. Timing considerations such as set-up and hold times for sequential devices is discussed along with various flip-flop triggering methods. The basic model for a sequential circuit/finite state machine is introduced. A systematic design methodology for creating synchronous sequential circuits is covered including state table/diagram creation, state reduction, state assignment, and circuit implementation. The process of sequential circuit analysis is also described.Special sequential devices and circuits are introduced including counters and registers. Their use in various applications is highlighted. The course ends with a discussion of memory devices including RAM's and ROM'S.Throughout the course, students use a schematic capture and design simulation CAD tool to model and test a variety of circuits.
Enforced Concurrent at Enrollment: PHYS212
CMPEN 275: Digital Design Laboratory
1 Credits
CMPEN275
Digital Design Laboratory
1 Credits
Introduction to digital design techniques. Students may take only one course for credit for CMPEN270 or 275.
Enforced Concurrent at Enrollment: CMPEN271 and PHYS212
CMPEN 296: Independent Studies
1-18 Credits/Maximum of 18
CMPEN296
Independent Studies
1-18 Credits/Maximum of 18
Creative projects, including research and design, that are supervised on an individual basis and that fall outside the scope of formal courses.
CMPEN 297: Special Topics
1-9 Credits/Maximum of 9
CMPEN297
Special Topics
1-9 Credits/Maximum of 9
Formal courses given infrequently to explore, in depth, a comparatively narrow subject that may be topical or of special interest.
CMPEN 299: Foreign Studies
1-12 Credits/Maximum of 12
CMPEN299
Foreign Studies
1-12 Credits/Maximum of 12
Courses offered in foreign countries by individual or group instruction.
International Cultures (IL)
CMPEN 331: Computer Organization And Design
3 Credits
CMPEN331
Computer Organization And Design
3 Credits
INTRODUCTION TO MAJOR COMPONENTS OF A COMPUTER SYSTEM, HOW THEY FUNCTION TOGETHER IN EXECUTING A PROGRAM, HOW THEY ARE DESIGNED. CMPEN331 Computer Organization and Design (3) The goals of the course are to introduce students to the major components of a computer system (the data path, the control path, the memory system, the I/O system), how they function together in executing a program, and how they are designed. The relationships between instruction set design, addressing modes, fetch and execute operations, and their impact on the underlying architecture are presented. Students will develop skills both in assembly language programming and in designing architecture components in a hardware description language (VHDL or verilog).CMPEN331 is a required course for both computer engineering and computer science majors.CMPEN331 requires access to PCs/workstations with commercial hardware description language tools (e.g., Synopsys VSS compiler and simulator) and a modern assembler/debugger (e.g., SPIM MIPS assembler, simulator, and debugger).
Enforced Prerequisite at Enrollment: (CMPEN270 or CMPEN271) and (CMPSC121 or CMPSC131 or CMPSC201)
CMPEN 351: Microprocessors
3 Credits
CMPEN351
Microprocessors
3 Credits
Microprocessor architecture; memory system design; assembly language programming; interrupts; the stacks and subroutines; memory and I/O inter- facing; serial I/O and data communications; microprocessors applications.
Enforced Prerequisite at Enrollment: CMPEN271 and CMPEN275
CMPEN 352W: Embedded Systems Design
3 Credits
CMPEN352W
Embedded Systems Design
3 Credits
Design/development of embedded systems for data acquisition, process control, and special-purpose computing systems; peripheral interfacing, serial/parallel communications and bus systems. CMPEN352W Microprocessor-based System Design (3) In this course students learn how to design application specific embedded systems. Embedded systems are increasingly important as they are used in industrial applications, personal computing, and consumer products. Embedded systems are based on microprocessors and microcomputers, but are not intended to be general-purpose computers. In the laboratory students will design, implement, and validate application specific embedded systems. Being a writing-across-curriculum course, students will learn effective techniques of reporting their technical designs.
Enforced Prerequisite at Enrollment: (CMPEN351 or CMPEN472) and EE210
Writing Across the Curriculum
CMPEN 362: Communication Networks
3 Credits
CMPEN362
Communication Networks
3 Credits
Data transmission, encoding, link control techniques; communication network architecture, design; computer communication system architecture, protocols. CMPEN 362CMPEN (E E) 362 Communication Networks (3)CMPEN (E E) 362 is an elective course in both the electrical and computer engineering curricula which provides an overview of the broad field of data and computer communications. First, a general model of the communication task is presented, including the layered concept by which each layer provides services for the layer above. First, the lowest (physical) layer is studied. This involves signal design, Fourier analysis representations, bandwidth concepts, transmission impairments and communication media properties. Then the next higher (link) layer is considered which involves organizing bits into frames, data link and error control methods (including frame sequence numbering and error detection principles). Multiplexing to share a link is studied, including frequency division multiplexing, dedicated time division multiplexing, and statistical time multiplexing.At the network layer level, there are two categories: broadcast (usually local area) and switching networks. Broadcast and local area network studies include bus, tree and star topologies, Ethernet, optical fiber bus networks, ring networks, and medium access control protocols.Switching and routing concepts for networks are explained, including both circuit and packet switching, datagrams and virtual circuits. Properties of frame relay and asynchronous transfer mode (ATM) networks are described. Internetworking frame structures, routing and protocols are studied. Also, bridge routing for local networks is described.At the still higher transport (network end-to-end control) layer, transport protocols, including TCP/EP, are described.
Enforced Prerequisite at Enrollment: CMPEN270 or CMPEN271 Concurrent Courses: STAT318 or STAT401 or STAT414 or MATH414 or STAT418 or MATH418
Cross-listed with: EE362
CMPEN 371: Advanced Digital Design
3 Credits
CMPEN371
Advanced Digital Design
3 Credits
Theory, design, and implementation of digital circuits based on combinational and sequential circuits; implementation of designs using hardware description language. CMPEN371 Advanced Digital Design (3) Students will learn advanced concepts in digital design for complex combinational and sequential logic, and learn how to effectively use minimization and synthesis techniques. Contemporary CAD tools and target digital technologies including Field Programmable Gate Arrays (FPGAs) are utilized. The use of a hardware-description language for digital design is introduced. In the laboratory portion, students will implement, simulate, and test designs.
Enforced Prerequisite at Enrollment: CMPEN271 and CMPEN275 and (CMPSC121 or CMPSC201) and (EE210 or EE211)
CMPEN 395: Internship
1-18 Credits/Maximum of 18
CMPEN395
Internship
1-18 Credits/Maximum of 18
Supervised off-campus, nongroup instruction including field experiences, practica, or internships. Written and oral critique of activity required.
Enforced Prerequisite at Enrollment: Prior approval of proposed assignment by instructor
CMPEN 396: Independent Studies
1-18 Credits/Maximum of 18
CMPEN396
Independent Studies
1-18 Credits/Maximum of 18
Creative projects, including research and design, that are supervised on an individual basis and that fall outside the scope of formal courses.
CMPEN 396A: Current Technologies in Computer Engineering
1-6 Credits
CMPEN396A
Current Technologies in Computer Engineering
1-6 Credits
Investigation of a current technology relevant to computer engineering.
CMPEN 397: Special Topics
1-9 Credits/Maximum of 9
CMPEN397
Special Topics
1-9 Credits/Maximum of 9
Formal courses given infrequently to explore, in depth, a comparatively narrow subject that may be topical or of special interest.
CMPEN 399: Foreign Studies
1-12 Credits/Maximum of 12
CMPEN399
Foreign Studies
1-12 Credits/Maximum of 12
Courses offered in foreign countries by individual or group instruction.
International Cultures (IL)
CMPEN 411: VLSI Digital Circuits
3 Credits
CMPEN411
VLSI Digital Circuits
3 Credits
Basic building blocks of CMOS design, design rules, chip planning, layout design, system power and timing, simulation of VLSI structures.
Enforced Prerequisite at Enrollment: (CMPEN371 or CMPEN 471) and EE310
CMPEN 416: Digital Integrated Circuits
3 Credits
CMPEN416
Digital Integrated Circuits
3 Credits
Analyses and design of digital integrated circuit building blocks, including logic gates, flip-flops, memory elements, analog switches, multiplexers, and converters. CMPEN 416CMPEN 416 Digital Integrated Circuits (3)CMPEN416 is a technical elective available to electrical and computer engineering students. It is intended for students who wish to specialize in the field of digital circuits. This course introduces the basic concepts involved in the design of digital circuits, which find practical application as logic and memory circuits in computers and other digital processing systems. The course emphasizes integrated circuit process-compatible circuit design techniques in recognition of the amazing synergy that has characterized the relationship between computer circuits and integrated circuit processing technology. This course includes three lectures and a two-hour laboratory each week. The only prerequisite is E E 310, a basic circuits course required for both electrical engineering and computer engineering students.CMPEN416 begins with a review of the bipolar junction transistor (BJT) device and proceeds into the more advanced Ebers-Moll device model. This is followed by an examination of a series of BJT-based saturating and non-saturating digital circuits of ever increasing complexity illustrating the evolution of the modern bipolar logic circuit families. The next phase of the course reviews the metal oxide semiconductor field effect transistor (MOSFET) and proceeds along the same path taken for the bipolar transistor circuits. Various MOSFET logic circuit families are introduced and analyzed. Computer semiconductor memory circuits are considered next. Both BJT and MOSFET versions of both static and dynamic read-write and read-only memories are considered. The cell array, memory addressing circuits, and sense amplifier designs are all examined in detail. This is followed by the related subject of programmable logic arrays, the final topic.The emphasis of the laboratory component of the course is to compare the performance of representatives of each class of circuits to computer simulations of the same circuits. Parameters such as input-output voltage transfer characteristics, noise margins, and propagation delays are evaluated by building and measuring laboratory models. Most of the laboratory exercises require the student to evaluate a specified circuit, but the final exercise requires the student to design a circuit to meet a predefined set of specifications, then to prove that the design meets the requirements by measuring the circuit performance. Students are required to write a formal engineering report detailing the results of each laboratory exercise.
Enforced Prerequisite at Enrollment: EE310
Cross-listed with: EE416
CMPEN 417: Digital Design Using Field Programmable Devices
3 Credits
CMPEN417
Digital Design Using Field Programmable Devices
3 Credits
Field programmable device architectures and technologies; rapid prototyping using top down design techniques; quick response systems. CMPEN 417CMPEN (E E) 417 Digital Design Using Field Programmable Devices (3)Field Programmable Devices, such as Field Programmable Gate Arrays (FPGAs) and Complex Programmable Logic Devices (CPLDs) are widely used for rapid prototyping and quick response-time designs. The objective of this course is to introduce the student to digital design using Field Programmable ICs, and to provide an understanding of the underlying technologies and architectures of these Integrated Circuits.The course begins by introducing design alternatives for modern electronic systems identifying and classifying alternative system solutions, and evaluating when particular design solutions are optimal. These alternatives include microprocessors, microcontrollers, off-the-shelf digital ICs, Programmable logic ICs (FPGAs and CPLDs), and various forms of Application Specific Integrated Circuit (ASIC) designs. A homework assignment requires the student to quantitatively evaluate the cost, complexity, packaging, and time-to-market issues for a complex system design specification.Next, the underlying Field Programmable Logic IC architectures and technologies are studied in detail. Following a broad survey of available programmable IC vendors and on-chip programming technologies (and their cost/performance trade-offs), several specific case studies are presented in the class. The first is the Xilinx XC4000xl line, because of the target boards used in the CAD laboratory component for this class. The initial lab portions of the class help the students to specify their design using various forms of design entry tools and also allows them to see how their design map on to the underlying FPGA architecture. The students also learn the underlying algorithms used by the design software they use in their Labs.Next, the systematic top-down method for specifying complex designs using VHDL is introduced. Students are given a supporting homework assignment to develop high-level behavioral models for a simple digital system to reinforce this segment of the course. VHDL behavioral synthesis is now introduced as a preferred path to go from high-level system behavior to actual implementation on the FPGA. The strengths and weaknesses of synthesis are discussed, as are the emerging CAD tool trends. Additional VHDI-based homework assignments reinforce behavioral design and synthesis using commercial CAD tools.The final segment of the class covers special topics that identify current trends in digital system architecture and programmable logic design. These include such topics as partially reconfigurable architectures and dynamic reconfiguration techniques, system design for testability, and field programmable analog arrays. Applications of FPGAs in special purpose computing environments such as signal processing, Java acceleration and image processing are also introduced. In the laboratory, student design project assignments explore larger and more complete system specifications of such things as controllers, CPU and memory design, and signal processing blocks. These assignments reinforce the lecture content as the students model, synthesize and implement their digital designs on the target Xilinx FPGA boards.
Enforced Prerequisite at Enrollment: CMPEN331
Cross-listed with: EE417
CMPEN 431: Introduction to Computer Architecture
3 Credits
CMPEN431
Introduction to Computer Architecture
3 Credits
Introduction to computer architecture. Memory hierarchy and design, CPU design, pipelining, multiprocessor architecture. CMPEN431 Introduction to Computer Architecture (3) This course will introduce students to the architecture-level design issues of a computer system. They will apply their knowledge of digital logic design to explore the high-level interaction of the individual computer system hardware components. Concepts of sequential and parallel architecture including the interaction of different memory components, their layout and placement, communication among multiple processors, effects of pipelining, and performance issues, will be covered. Students will apply these concepts by studying and evaluating the merits and demerits of selected computer system architectures.
Enforced Prerequisite at Enrollment: CMPEN331 or CMPEN371
CMPEN 441: Operating Systems
3 Credits
CMPEN441
Operating Systems
3 Credits
Resource management in computer systems. Process scheduling, memory management, file system design, I/O management, Unix operating system.
Enforced Prerequisite at Enrollment: CMPSC360
CMPEN 454: Fundamentals of Computer Vision
3 Credits
CMPEN454
Fundamentals of Computer Vision
3 Credits
Introduction to topics such as image formation, segmentation, feature extraction, matching, shape recovery, object recognition, and dynamic scene analysis. CMPEN 454CMPEN 454 Fundamentals of Computer Vision (3)CMPEN454 is an introduction to computer vision. The goal of computer vision is to make computers understand and interpret visual information. Computer vision systems bring together imaging devices, computers, and sophisticated algorithms for solving problems in areas such as industrial inspection, medicine, document analysis, autonomous navigation, and remote sensing. The course involves both pedagogical written assignments and computer projects.The beginning of the course gives an overview of computer vision and introduces low level image analysis techniques for binary images. Binary vision systems are useful when the silhouette of imaged objects convey enough information to recognize them. Examples can be found in optical character recognition, chromosome analysis and recognition of industrial parts. Moreover, many techniques developed for binary systems can be applied to gray level or color images. Next, the course covers image segmentation and contours. These topics are the foundation of most computer vision techniques. For an image to be correctly interpreted, it must be partitioned into regions that correspond to distinct objects or parts of objects. First, region based techniques such as thresholding, split and merge, region growing and texture analysis are introduced. Next, edge based techniques using gradient and Laplacian operators are discussed. Finally, contour representations and curve approximations linking edges into region boundaries are studied.Next, depth from vision, with emphasis in stereo vision, is considered. Calculating distances to and among various points in the scene is important in many computer vision tasks such as inspection, robot manipulation, and autonomous navigation. In this part of the course the geometry of stereo systems and how to obtain depth maps from stereo image pairs is studied. Also, alternative 3D imaging sensors such as laser based range finders and radars are discussed.Following stereo, the topic of computer vision is broaden to understand sequences of images over time. In this section techniques using information on spatial and temporal changes are used to design computer vision systems capable of coping with moving and changing objects, changing illumination and changing viewpoints. Visual motion is important primarily for two reasons. First, motion is a very important cue to understand the scene structure. Second, biological systems do use motion to infer properties of the surrounding world with very little a priori knowledge.Finally, the topic of 3D object recognition is discussed. Object recognition entails two main issues: object identification and object localization. Identification determines the objects being imaged while localization determines their position in the world and with respect to the sensors. This topic builds upon all the different techniques discussed until this point.
Enforced Prerequisite at Enrollment: (MATH230 or MATH231) and MATH220 and(CMPSC121 or CMPSC131 or CMPSC201)
Cross-listed with: EE454
CMPEN 455: An Introduction to Digital Image Processing
3 Credits
CMPEN455
An Introduction to Digital Image Processing
3 Credits
Overview of digital image processing techniques and their applications; image sampling, enhancement, restoration, and analysis; computer projects. E E (CMPEN) 455 An Introduction to Digital Image Processing (3) E E/CMPEN455, a technical elective available to both electrical and computer engineering seniors and graduate students, discusses many current techniques for processing and manipulating digital images. The course involves both pedagogical written assignments and computer projects.The beginning of the course gives an overview of digital image processing systems and digital image fundamentals. During this unit, important elements of human visual perception are reviewed; these ideas help motivate many of the computer-based techniques described in subsequent units. Also, the standard model for a digital image, in addition to the concepts of sampling and quantization, are described. Finally, basic topological concepts between digital image pixel are discussed.The next unit considers image transform analysis, with a primary focus on Fourier-based techniques. The one-dimensional Fourier transform is reviewed, and then two-dimensional Fourier transform analysis is discussed. To bridge the gap from the continuous world to the digital world, the sampling theorem is introduced. Next, the Discrete Fourier Transform and its properties are described. Fourier-based filtering techniques, such as the ideal low-pass and Butterworth filters are then introduced. The Fast Fourier Transform is also discussed. Finally, the Discrete Cosine Transform, used later in JPEG and MPEG, is introduced.The next unit discusses techniques for image enhancement and segmentation. These techniques include point-based techniques based on histogram analysis. They also involve linear and nonlinear mask-based methods for noise reduction and region sharpening. Further, techniques of mathematical morphology, which involve an application of set-theoretic concepts to image processing, are described. Finally, image segmentation methods, based on edge detection and thresholding, are described.The final unit considers the concept of image compression. Techniques for image encoding and decoding are discussed. A brief model of the encoding-decoding process is described. Next, compression techniques, such as run-length encoding and Huffman coding, are described. Finally, the multimedia image-compression methodologies, JPEG and MPEG, are discussed.
Enforced Prerequisite at Enrollment: (EE350 or EE353 or EE352) and (CMPSC121 or CMPSC131 or CMPSC201)
Cross-listed with: EE455
CMPEN 461: Communication Networks
3 Credits
CMPEN461
Communication Networks
3 Credits
Data transmission, encoding, link control techniques, network architecture, design, protocols, and multiple access. CMPEN461 Communication Networks (3) This course introduces students to fundamental concepts and principles underlying data communication networks, with an emphasis on the Internet and its five-layer architecture: the application, transport, network, link, and physical layers. The fundamental issues to be covered include, but not limited to, reliable communication over an unreliable network layer, connection establishment/teardown and handshaking, congestion and flow control, path determination, multiple access control. The student learning these principles will gain knowledge that lasts long after today's network standards and protocols have become obsolete.
Enforced Prerequisite at Enrollment: CMPEN271 and (CMPSC121 or CMPSC201)
CMPEN 462: Wireless Communications Systems and Security
3 Credits
CMPEN462
Wireless Communications Systems and Security
3 Credits
This course explores the fundamental concepts and engineering processes of wireless communication systems, sensors, and security algorithms through the design, implementation, and evaluation of next generation wireless network architectures, and network and cryptographic protocols. This course is intended as a senior level course for computational majors such as computer science and computer engineering since it covers hardware and software design concepts associated with wireless access, data transmission, and computational security, security models, and privacy in a broad range of settings. The first part of the course studies programmatic, computational, and engineering issues associated with wireless systems and sensors at the physical protocol layer. Hardware, software, and engineering design considerations associated with MIMO, low latency, high reliability, and high data rate constraints will be analyzed. The next part of this course will introduce virtual machines, function virtualization, and network-slicing for constraint matching, resource scheduling, and mobility management at the data link and network protocol layers. The final component of the course focuses on the security and privacy for wireless systems and sensors including models and algorithms. The design and implementation of cryptographic algorithms for cellular, Wi-Fi, Bluetooth, Zigbee, and next generation systems including Device to Device (D2D), Vehicle to Vehicle (V2V),and Machine Type Communications (MTC) are studied and analyzed. Upon completion of the course students will be able to critically analyze the design, implementation, and protocols associated with wireless systems and sensors and assess the computational security and privacy vulnerabilities associated with these systems.
Enforced Prerequisite at Enrollment: CMPEN362 or EE362
CMPEN 472: Microprocessors and Embedded Systems
3 Credits
CMPEN472
Microprocessors and Embedded Systems
3 Credits
Microprocessors: architecture, design, assembly language, programming, interfacing, bus structure, and interface circuits and their use in embedded systems. CMPEN472 Microprocessors and Embedded Systems (3) In this course students should learn about the operation and design of microprocessor-based systems, including both hardware and software aspects with an emphasis on real time control environments and embedded systems. After completing the course, students should be able to develop, write and debug programs in a microprocessor's assembly language and use standard assembly language program development tools. They should also be able to interpret and analyze basic microprocessor system hardware.This course is a senior level elective for students in computer engineering and computer science.The course requires the use of general department computing facilities consisting of UNIX workstations running the appropriate program development tools.
Enforced Prerequisite at Enrollment: CMPEN331
CMPEN 473: Microcomputer Laboratory
3 Credits
CMPEN473
Microcomputer Laboratory
3 Credits
Design of digital systems using microprocessors. CMPEN473 Microcomputer Laboratory (3) This laboratory course provides senior students with both theory and practice in designing, implementing, and debugging microprocessor-based systems. Students are guided through a series of projects in which they design, develop, and implement all of the components in a microprocessor based single-board system. After completing the course students will be able to design microprocessor based systems, including both software and hardware design. Students will also be able to use standard system design tools including standard laboratory equipment.This course is a senior level elective for computer engineering majors. CMPEN472 is a prerequisite for this course.The course requires the use of a design laboratory including standard test equipment such as an oscilloscope, logic analyzer and signal generator as well as a PC with appropriate design software and a microprocessor or EPROM emulation system.
Enforced Prerequisite at Enrollment: CMPEN472
CMPEN 475: Functional Verification
3 Credits
CMPEN475
Functional Verification
3 Credits
Introduce concepts, methods, and technology for effective functional verification of modern electronic systems. CMPEN475 Functional Verification (3)Verifying design correctness of increasingly complex system-on-chip designs poses a major challenge to the semiconductor industry. Functional or logic errors in a chip design that are not identified early in the design phase can dramatically increase a project's overall cost and schedule. Further, design verification is consuming an ever-increasing portion of IC development time and cost. As much as 70% of effort in a complex IC design project is now attributed to verification. This course will cover five key aspects of verification: an introduction to verification; a detailed description of simulation-based dynamic verification; formal verification; verification methodologies and advanced techniques; and case studies. First, the course will place verification in the context of the chip design process and introduce the verification cycle. Then, it will cover essential methodology principles and introduce the first hands-on example. It will also delve into various topics in dynamic verification, including the basic constructs of stimuli, monitors, checkers, observations categories, assertions, and test benches. Various case studies on actual industry and research designs will be provided. The course will be supplemented by lab-assignments that provide hands-on experience to experiment with methodologies taught in lectures.
Enforced Prerequisite at Enrollment: CMPEN331
CMPEN 480: Computer Engineering Design
3 Credits
CMPEN480
Computer Engineering Design
3 Credits
Engineering design and modeling, engineering economy, project planning, capstone project selections, and technical communication skills. CMPEN480 Computer Engineering Design (3) This course prepares senior computer engineering students for industrial engineering design and project management. It covers the engineering design process, project planning and evaluation, engineering ethics, and engineering economy. In addition, students select, specify, and start their capstone design project, which is completed, in the follow-up course, CMPEN481. Students are expected to carry out a group design project that is on par with industrial expectations. Upon completion of this course a student should have a solid understanding of the engineering design process, a clear capstone project description, should have completed some preliminary design work, and be adequately prepared to complete the project in CMPEN481.
Enforced Prerequisite at Enrollment: CMPEN352W and CMPEN431
CMPEN 481: Computer Engineering Project
3 Credits
CMPEN481
Computer Engineering Project
3 Credits
Group or individual design projects in the area of computer engineering.
Enforced Prerequisite at Enrollment: CMPEN480
CMPEN 482W: Computer Engineering Project Design
3 Credits
CMPEN482W
Computer Engineering Project Design
3 Credits
Computer engineering design project, project management, documentation, reporting, and group and individual communication skills. CMPEN482W Computer Engineering Project Design (3) The two principle goals of CMPEN482W are (1) to introduce the fundamentals of systems engineering and systems engineering management, and (2) to develop written and oral communication skills. The course explores the process of translating a problem statement into an effective and economical computer system that meets the needs of the customer. Topics include a comparison of popular process models, analysis and derivation of requirements, requirements allocation and flow down, the work breakdown structure, object-oriented analysis and modeling, the design and development of the user interface, reliability engineering, scheduling, costing, and ethics. Communication skills are developed through oral presentations and a sequence of writing assignments, beginning with a description of requirements and leading to a final design document.CMPEN482W is not a prerequisite for any other course.CMPEN482W requires access to PCs or Unix workstations having a C++ compiler. Other specialty hardware or software may be required on a semester-by-semester basis.
Enforced Prerequisite at Enrollment: CMPSC311 and EE310 and EE353 Enforced Concurrent at Enrollment: CMPSC473 Recommended Preparation: ENGL202C
Writing Across the Curriculum
CMPEN 494: Research Project
1-12 Credits/Maximum of 12
CMPEN494
Research Project
1-12 Credits/Maximum of 12
Supervised student activities on research projects identified on an individual or small-group basis.
CMPEN 494H: Research Project
1-12 Credits/Maximum of 12
CMPEN494H
Research Project
1-12 Credits/Maximum of 12
Supervised student activities on research projects identified on an individual or small-group basis.
Honors
CMPEN 495: Internship
1-18 Credits/Maximum of 18
CMPEN495
Internship
1-18 Credits/Maximum of 18
Supervised off-campus, nongroup instruction including field experiences, practica, or internships. Written and oral critique of activity required.
Enforced Prerequisite at Enrollment: Prior approval of proposed assignment by instructor
CMPEN 496: Independent Studies
1-18 Credits/Maximum of 18
CMPEN496
Independent Studies
1-18 Credits/Maximum of 18
Creative projects, including research and design, that are supervised on an individual basis and that fall outside the scope of formal courses.
CMPEN 497: Special Topics
1-9 Credits/Maximum of 9
CMPEN497
Special Topics
1-9 Credits/Maximum of 9
Formal courses given infrequently to explore, in depth, a comparatively narrow subject that may be topical or of special interest.
CMPEN 499: Foreign Studies
1-12 Credits/Maximum of 12
CMPEN499
Foreign Studies
1-12 Credits/Maximum of 12
Courses offered in foreign countries by individual or group instruction.
International Cultures (IL)