Computer engineering courses are offered at the undergraduate and graduate level through programs in computer science and engineering or electrical and computer engineering. Graduates of these programs commonly earn degrees such as a Bachelor of Science (BS) in Computer Engineering or a Master of Science (MS) in Computer Science and Engineering. Undergraduate courses typically introduce students to the fundamental aspects of computer engineering, while graduate courses explore more advanced topics and may include extensive research components. Typical course subjects will include the following:
- Interdependence of hardware and software
- Managing and sharing data
- Software development and design
- Legal and ethical responsibilities
List of Courses
This course may be offered at the beginning of undergraduate and graduate programs, either as an introductory or advanced follow-up course, and typically lasts a semester. The primary goal of the programming course is to give students a broad introduction to computer programming languages, usually focusing on the C programming language group.
Students write short programs, design algorithms using media computation, receive a basic training in the principles of software design and apply developing programming skills toward computer engineering problems. Advanced coursework for this subject may include flow control, dynamic memory allocation, software development and recursion.
Algorithms and Data Structures Course
This course introduces students to the principles of object-oriented data programming and structure design, along with the design and implementation of algorithms for abstract data types. The various representations of data are taught here, including strings, stacks, queues and graphs.
Methods for sorting, searching, selection and hashing are also covered. This is a 1-semester course, though it usually involves tools and principles used frequently in other coursework.
Software Engineering Course
The software engineering course is primarily concerned with the life cycle of software development. The curriculum begins with forming project teams, and moves into cost estimation, engineering and design requirements, modeling and analysis.
Following this process, the course moves on to actual programming and design of software, in which students draw upon knowledge gleaned from previous coursework. Towards the end of the course, students learn software testing, maintenance and quality assurance, as well as software verification, validation, documentation and project management.
Computer Architecture Course
This is a high-level course that offers a detailed examination of how computer systems are designed, including the ways in which their various components communicate. Core subject material includes instruction set architecture, hardware design, data path design and control design.
Assembly language and methods of communication used by microprocessors are also key topics, as well as computer arithmetic, microprogramming techniques, pipelining and memory. While the first computer architecture course in most PC engineering programs is presented as a 1-semester introduction, more advanced stages of this material are usually presented as the student moves forward, including advanced computer architecture and microcomputer architecture.