12 courses with the subject CMPE, each shown exactly as we captured it from the college's catalog, with every element we hold. Where the wording looks broken, that is our reading of the catalog, not the college's text.
CMPE 210Network Engineering Credits: 33
An introduction to network architectures and engineering. Topics will include network physical media, protocols, software interfaces, routing devices, performance, reliability, and security. Students completing this course will be able to design, build, test, and improve computer networks to meet a variety of goals including cost, reliability, throughput, latency, and security.
An introduction into the organization and architecture of CPU, memory, and I/O devices, and the interaction between software and hardware. Topics include assembly language programming, Von Neumann architecture, representing data and instructions in memory, integer and floating point arithmetic in hardware, pipelining, memory systems, caching, the I/O system, and performance analysis. At the end of this course students will be able to write simple and complex programs in Assembly language, convert between C and Assembly, assess performance of a program on a machine, and understand how modern processors achieve multiple instructions per cycle.
CMSC 111 with minimum grade of C or ENGR 120 with minimum grade of C
Corequisite
MATH 225
CMPE 230Computer Security Credits: 33
An introduction to computer security. Topics will include: access controls, encryption, malicious software, denial of service attacks, intrusion detection, buffer overflow attacks, trusted computing, social engineering, physical security, and penetration testing. Students completing this course will be able to identify different types of cyber- and physical-attacks and the standard methods to prevent, detect, and defend against them.
Data representation, number systems and codes, conversion between number systems, Boolean algebra, logic functions simplification, combinational and sequential logic, flip-flops, counters, registers, multiplexers, decoders, memory devices, programmable logic devices, digital arithmetic, introduction to Hardware Description Language, and basic computer architecture.
An introduction to computer systems engineering, with an emphasis on systems administration, computer system design, analysis, and testing. Students who complete this course will design, configure, and build computer systems to meet set goals such as performance, reliability, or cost; and then install, configure, and manage a variety of UNIX and Windows operating systems and critical services.
A study of operating systems concepts and interfaces, with special emphasis throughout the course on the concept of abstraction and separating mechanism from policy as a design technique. Topics include UNIX shells and common commands, writing shell scripts, important system calls, performance benchmarking, OS impact on program design and performance, processes, multiprogramming, multiprocessing, threading, scheduling, process isolation, inter-process communication, mutual exclusion, deadlock detection and avoidance, file system design, permissions and protections, and RAID. At the end of the course, students will be able to describe the importance of abstraction as a design pattern, and use it to explain the organization of OS components, interact with the UNIX shell and write shell scripts, and write programs using important system interfaces, understand the performance impact of making system calls, and independently find sources to guide their future development.
An introduction to microcontroller programming and interfacing. Topics include: architecture of microcontrollers, mechanics of mapping voltages to logic signals, building a proper device abstraction layer, writing quality code, compliance with MISRA-C and other standards, GPIO, interrupts, timers, I2C, SPI, RS232, controller motors and servos, analog to digital conversion, displays, speakers, microphones, acting as a USB device, and designing complete embedded systems involving microcontrollers. Students should have a basic understanding of circuits, voltage, current, resistors, and capacitors.
An advanced continuation of computer organization, this class will cover topics including Intel assembly language, high-performace computing with GPGPU/CUDA and OpenCL, an introduction to distributed processer systems and super-computers using MPI, and emerging architectures such as quantum computing.
This course explores the design and implementation of operating systems. Topics include designing interfaces between hardware and application systems, creating layers of abstractions to extend lower-level services, bringing a CPU from POST to regular operation, development of device drivers and other services within the kernel, context switching, interrupt handling, building character and block drivers, deferred operations, memory mapping and DMA arbitration. By the end of the course, students will have written a primitive operating system, understand the device abstraction layer and how to integrate a device into it, and built device drivers for Linux and Windows.
CMPE 412Networks and Computer Security Credits: 44
Topics include encryption, symmetric and public key algorithms, key distribution, access controls, digital signature, authentication, malicious software, intrusion detection, social engineering, network physical media, types of networks and internetworks, data link layer, application layer, transport layer, network protocols, and network security.
CMPE 420Digital and Reconfigurable Computing Credits: 44
An introduction to high-speed and reconfigurable computation using FPGAs. Topics include behavioral HDL modeling, simulation, and testing; developing peripherals to interface to a variety of devices such as RS232 and I2C; developing computational elements to off-load computing tasks from the CPU; direct memory access (DMA) and bus-mastering; generating and handling interrupts; mixed PS-PL interactions; prototyping circuits in an FPGA; and converting a design to a VLSI ASIC.
CMPE 499Engineering Design & Development Credits: 22
This is the integrated engineering capstone course that is shared between computer, electrical, and mechanical engineering students. Students will work together in teams to build requirements, design, build, and test an electro-mechanical component or system. Project topics vary every semester, although there is usually an external customer that will work with students. The instructor of record for the course serves as the project manager, assessing the individual and team performance, and students will be assessed on their ability to act as a professional working in the field. The course meets for 2 credit hours per week reflecting the amount of time the students will meet as one collective group with the faculty, but students should expect to work substantially more hours with their team, outside of class. Graduate students are not permitted to take this course.