# Computer Engineering Concentration

The concentration in Computer Engineering is offered under the Bachelor of Science degree in Computer Science (BSCS) and involves a high level instruction and experience in computer programming and hardware design. This concentration involves many hardware and software aspects of computing to process information in digital form ranging from word processing to mathematical computations. Devices range in size and power from pocket calculators to personal computers to supercomputers that perform complex tasks. These devices are built as networks of microcircuits, or integrated circuits, which include thousands, or millions of electrical components that often operate at speeds and power levels close to fundamental physical limits like the speed of light. Computer Engineers have job opportunities in a variety of companies such as Intel, HP, and Texas Instruments, and also in industries that build or use computer-based systems. Computer engineers may also find jobs as programmers and can enjoy high starting salaries.

### Degree Requirements

Students should refer to their DegreeWorks degree audit in their Web for Students account for more information regarding their degree requirements.

Code | Title | Hours |
---|---|---|

Major Requirements | ||

General Education Requirements | 42 | |

MATH 2413 | Calculus I ^{6} | 4 |

MATH 2414 | Calculus II | 4 |

PHIL 1350 | Philosophy and Ethics of Science and Technology ^{6} | 3 |

PHYS 2325 | University Physics I ^{6} | 3 |

PHYS 2125 | University Physics I Lab ^{6} | 1 |

PHYS 2326 | University Physics II ^{6} | 3 |

PHYS 2126 | University Physics II Lab ^{6} | 1 |

COSC 1321 | Discrete Structures | 3 |

COSC 1315 | Introduction to Computer Science | 3 |

MATH 2318 | Linear Algebra | 3 |

MATH 357 | Probability and Statistics | 3 |

EE 2305 | Electric Circuits I | 3 |

CS 332 | C++ Programming | 4 |

CS 310 | Analysis of Algorithms | 3 |

EE 321 | Digital Logic | 3 |

EE 320 | Circuit Laboratory | 1 |

EE 322 | Digital Logic Laboratory | 1 |

EE 340 | Computer Architecture | 3 |

CS 352 | Java Programming | 3 |

CS 353 | Advanced Object-Oriented Programming | 3 |

EE 325 | Signals and Systems I | 3 |

EE 326 | Signals and Systems I Lab | 1 |

CS 367 | Software Engineering | 3 |

CS 420 | Computer Networks | 3 |

ENGR 315 | Engineering Computations | 3 |

EE 455 | Digital Circuit Testing and Testability | 3 |

EE 470 | Digital Design Using Very High Speed Integrated Circuit Hardware Description Language (VHDL) | 3 |

CS 490 | CS Senior Design I | 3 |

CS 491 | CS Senior Design II | 3 |

Other Requirements | ||

Select 15 semester credit hour electives from the following: | 15 | |

Neural Networks and Machine Learning | ||

Automata Theory | ||

Mobile App Development | ||

Computer Security | ||

Image Processing and Computer Vision | ||

Special Topics | ||

Information Theory | ||

Systems and Signals II | ||

Minimum Hours for Degree | 123 |

^{6} | Satisfies Core Curriculum |

Note: A minimum of 54 upper division hours (300 and 400 level courses) are required for this degree. Resident credit totaling 25% of the hours is required for the degree. A minimum GPA of 2.0 is required in three areas for graduation: Overall GPA, Institutional GPA, and Major GPA.

### Undergraduate Courses in Computer Engineering

**COSC 1315. Introduction to Computer Science. 3 Hours.**

This course teaches the basics of MATLAB programming. The students will learn how to write MATLAB programs for electrical and computer science applications that include calculations and graphing. The course will also emphasize the documentation of programs. The course will cover concepts that will include arrays and array operations, programming techniques, plotting, and linear algebraic equations with MATLAB. It will provide an overview of MATLAB programming concepts, design, and an introduction to coding. It will focus on creating working computer programs in MATLAB. Laboratory exercises provide practice in writing programs and reinforce concepts. Prerequisite: COSC 1321 or MATH 2305.

**COSC 1321. Discrete Structures. 3 Hours.**

This course covers mathematical mechanisms, which are widely used in the computer modeling and simulations. A discrete nature of a digital computer requires considering discrete rather than continuous models. Since to solve any problem using a computer, a proper model must be developed first, discrete structures and corresponding mathematical tools are very important. Thus the following topics are considered in this course: propositional logic and its role in algorithm design and computer programming, sets and operations on sets, relations and functions, mathematical induction, modular arithmetic and its applications, particularly in encryption, graphs, tress, binary search trees, and Boolean functions.

**CS 310. Analysis of Algorithms. 3 Hours.**

This course introduces basic elements of the design and analysis of computer algorithms. Topics include methods of algorithms description, proving of their correctness, asymptotic notations and analysis, recursion, divide and conquer, and examples of the efficient algorithms design in signal processing. For each topic, besides in-depth coverage, students will discuss one or more representative problems and their algorithms. In addition to the design and analysis of algorithms, students must gain substantial discrete mathematics problem-solving skills essential for computer engineers. Prerequisite: COSC 1321 or MATH 2305.

**CS 332. C++ Programming. 4 Hours.**

This course introduces students to C++ programming language, a dominant language in the industry today. Students will be taught the fundamentals of programming. These concepts are applicable to programming in any language. Topics covered include basic principles of programming using C++, algorithmic and procedural problem solving, program design and development, basic data types, control structures, functions, arrays, pointers, and introduction to classes for programmer-defined data types. Frequent homework and lab assignments will be given during class. Prerequisite: COSC 1315.

**CS 352. Java Programming. 3 Hours.**

This course teaches the basics of Java programming, the foundations of object-oriented programming, and the process of building a project in a modular fashion. Java programming provides an overview of programming concepts, design, and an introduction to coding using the Java language. This course has a focus on creating working computer programs in Java. It will address fundamental concepts of analysis, design, and testing and code development. These include flowcharts, Boolean logic, control flow, data types and structures, variable arrays, functions, and pointers. This course will prepare students for focused studies in any programming language. The student will also learn how to enter, compile, link, and run a computer program using the Java language in a Windows or equivalent environment. Instructors will introduce structured programming through techniques for solving business, engineering and scientific problems. Laboratory exercises will provide practice in writing programs and will reinforce basic programming concepts, logic flow, and structured design. Prerequisite: CS 332.

**CS 353. Advanced Object-Oriented Programming. 3 Hours.**

This course provides an overview of advanced object-oriented programming concepts, design and to coding using the C++ language. It has a focus on creating working computer programs in Visual C++. It addresses advanced concepts of analysis, design, testing, and code development. These include but are not limited to flowcharts, Boolean logic, control flow, data types and structures, Inheritance, Polymorphism Templates, Exceptions and Operator Overloading Strings, Streams, Files and advanced Data Structures topics. This course prepares students for focused studies in gaming or other advanced programming arenas. The student learns how to enter, compile, link, and run a computer program using the C++ language in a Windows, Linux, or equivalent environment. Structured programming will be introduced through techniques designed to solve mathematical, scientific, and engineering problems. Laboratory exercises provide practice in writing programs and reinforce advanced programming concepts, logic flow, and structured design. Prerequisites: CS 332.

**CS 363. Neural Networks and Machine Learning. 3 Hours.**

This course provides the basic concepts of neural networks and machine learning including but not limited to biological foundations of neuronal morphology, machine learning concept and its fundamentals, basics of neural information processing, artificial neuron and its activation functions, multilayer feed forward neural networks and back propagation learning, Hopfield neural networks and associative memories, neuro-fuzzy and kernel-based networks, and support vector machines. Laboratory exercises provide experience with design and utilization neural and other machine-learning algorithms using MATLAB and solving real-world classification, prediction, and pattern recognition problems. This will help students to accomplish specified challenges as they build problem-solving skills. Prerequisite: COSC 1315.

**CS 367. Software Engineering. 3 Hours.**

This course will offer a wide perspective on software design, stages of software development, design of software documentation, and development including requirements analysis, technical design, estimating, programming style, testing and quality, management, and maintenance. A part of the course is a software project, which students shall design. Prerequisite: CS 332.

**CS 380. Automata Theory. 3 Hours.**

This course is a study of the basic types of abstract languages and their acceptors, the Chomsky hierarchy, solvability and recursive function theory, and application of theoretical results to practical problems. Prerequisite: COSC 1321.

**CS 420. Computer Networks. 3 Hours.**

Students learn the basic computer networking concepts including ISO/OSI and TCP/IP reference model for networking protocols. The topic covers network architectures, communication protocols, physical media, error control, data link control, medium access control, local area networks, network layer, congestion control, and introduction to virtual circuit and datagram network. The course will also include the case studies and lab assignments for existing networks and network architecture. Prerequisite: CS 332.

**CS 430. Mobile App Development. 3 Hours.**

The course provides the student with a strong foundation in Java programming and the confidence to build successful mobile applications. Students will learn how to use the basic functionalities including user input, variables, operations, decision-making controls, lists, arrays, and Web Browsers. Students also learn how to implement audio, display pictures, and create animation and graphics in Android apps. Prerequisite: CS 352 or CS 353.

**CS 465. Computer Security. 3 Hours.**

This course will provide a broad introduction to host-based and Internet-based computer security. Topics covered include an introduction to cryptography, authentication protocols, access control, database security, intrusion detection, malicious software such as worms and virus propagation, and techniques to secure the Internet such as firewalls, intrusion detection systems, and Web and IP security. Prerequisite: CS 332.

**CS 467. Image Processing and Computer Vision. 3 Hours.**

This course provides the basic concepts of image processing and computer vision including but not limited to image sensing and acquisition, visual perception, image enhancement (mostly spatial domain image enhancement, but some essential elements of the frequency domain enhancement will be considered), image filtering in spatial and frequency domain, edge detection and image segmentation, elements of morphological image processing, elements of image restoration, image understanding and recognition, elements of color image processing. Laboratory exercises provide experience with design and utilization image processing algorithms using MATLAB and solving real-world problems in medical and satellite image processing, in old images restoration and in digital photography. Students will program different algorithms and use their programs for processing real images. This will help students to accomplish specified challenges as they build problem-solving skills. Prerequisite: COSC 1315.

**CS 490. CS Senior Design I. 3 Hours.**

This course is taken by seniors as the first part of the senior design experience in the semester before CS 491. Projects may involve the design of an algorithm, or a software and/or hardware system and topics covered may include the design process, project planning and management, and project costs, and includes aspects of ethics in computer science design, safety, environmental considerations, economic constraints, liability, manufacturing, and marketing. Projects are carried out using a team-based approach and selection and analysis of a design project to be continued in CS 491 is carried out. Written progress reports, a proposal, a final report, and oral presentations are required. Prerequisite: CS 310, CS 353, CS 367, and CS 410 or by instructor consent; open only to Computer Science majors. Prerequisite or Corequisite: CS 370.

**CS 491. CS Senior Design II. 3 Hours.**

Projects involving the design of a device, circuit system, process, or algorithm that have started in the previous semester will be completed. Team solution to an computer science design problem as formulated and initiated in CS 490 will continue to take place. Written progress reports, a final report, design manuals, and oral presentations are required. Prerequisite: CS 490; open only to Computer Science majors.

**CS 497. Special Topics. 3 Hours.**

Instructors will provide an organized class designed to cover areas of specific interest. Students may repeat the course when topics vary. Prerequisite: Instructor permission.

**EE 2305. Electric Circuits I. 3 Hours.**

This course focuses on the fundamental concepts of engineering with special emphasis on electrical engineering. It includes the concepts of current, voltage, power and engery, Kirchhoff's current and voltage laws, resistance, capacitance, inductance, and series and parallel combinations of circuit elements. Basic techniques such as superposition, mesh current, and node voltage analysis are introduced. Time-domain analysis of first-order circuits RL, RC, and second-order RLC circuits are developed. Prerequisite: MATH 2413.

**EE 317. Information Theory. 3 Hours.**

This course focuses on the quantitative theory of information and its applications to compression as well as reliable communication systems. Topics include mathematical definition and properties of information, source coding theorem, lossless compression of data, optimal lossless coding, noisy communication channels, channel coding theorem, and Gaussian channel. Prerequisite: MATH 357 or EE 307, and MATH 2414.

**EE 320. Circuit Laboratory. 1 Hour.**

This course provides hands on experience with mainstream circuit technology. This shall be accomplished with a set of laboratory experiments that introduce increasingly more complex circuits and techniques. Successful completion of each lab assignment shall 1) require a written report detailing the design solution(s), 2) require the construction of one or more circuits, and 3) require a demonstration that the constructed circuits work properly. Prerequisite: EE 2305.

**EE 321. Digital Logic. 3 Hours.**

This course provides a detailed knowledge of Boolean algebra and its application in digital design. It provides an in-depth coverage of combinational logic circuit analysis and minimalization and design techniques. It also covers the basic concepts of sequential circuits including the use of state diagrams and state tables to represent the behavior of sequential circuits. Prerequisite: MATH 1314, MATH 1316, MATH 2413, or MATH 2414.

**EE 322. Digital Logic Laboratory. 1 Hour.**

This laboratory course consists of multiple projects that the students will complete based upon the concepts learned in EE 321. The overall aim of the course is to increase the students' depth of understanding of digital logic design and implementation. Prerequisite: EE 321.

**EE 325. Signals and Systems I. 3 Hours.**

This course is one of the fundamental courses of Electrical Engineering, providing theoretical concepts and mathematical tools used for the design and analysis of continuous-time linear systems, as well as analog signals. Topics covered in this course include linear convolution, impulse response, Fourier series, Fourier transforms, and Laplace transform. Prerequisite: MATH 2413 and EE 2305.

**EE 326. Signals and Systems I Lab. 1 Hour.**

This course provides practical concepts and software tools for the design and the analysis of both analog signals and continuous-time linear systems. It is based on exercises via computer simulation using MATLAB. The main aim is to get understanding of frequency and time domain analysis of basic signals and linear time-invariant systems employing linear convolution, impulse response, Fourier transforms, and Laplace transform. Prerequisite: MATH 2413 and EE 2305.

**EE 340. Computer Architecture. 3 Hours.**

This course will focus on the interaction of hardware and software in digital computers. It will discuss basic computer structure, machine instructions, assembly language, CPU organization and design, memory addressing, pipelining, input/output organization and computer arithmetic. Prerequisite: EE 321.

**EE 425. Systems and Signals II. 3 Hours.**

This course lays the foundation of the knowledge needed to process information digitally using a variety of hardware platforms, and provides theoretical concepts and mathematical tools used for the design and analysis of discrete time linear systems as well as discrete time signals. Topics covered in this course include discrete convolution, discrete time impulse response, Discrete Fourier Transform (DFT), Discrete Time Fouriere Transform (DFTF), and Z-Transform. Prerequisite: EE 325.

**EE 455. Digital Circuit Testing and Testability. 3 Hours.**

The complexity of digital circuits placed on IC (Integrated Circuit) chips has significant impact on the cost of testing such chips. Testing is performed to ensure that function/performance have not been altered during fabrication. This course introduces current testing techniques for digital circuits and design strategies used to enhance their testability. Prerequisite: EE 321.

**EE 470. Digital Design Using Very High Speed Integrated Circuit Hardware Description Language (VHDL). 3 Hours.**

This course instructs the students in the use of VHDL (Very High Speed Integrated Circuit Hardware Description Language) for describing the behavior of digital systems. It will also teach students the use of the VHDL language for representation of digital signals, use of IEEE standard logic package/library, design of arithmetic, combinational, and synchronous sequential circuits. Prerequisite: EE 321.

**ENGR 315. Engineering Computations. 3 Hours.**

This course covers numerical methods and their use for solving computational problems in engineering. The course is devoted to mathematical essentials and software utilization of the following numerical methods: solving nonlinear equations, solving systems of linear algebraic equations, interpolation, curve fitting, numerical differentiation, numerical integration, and optimization. Engineering applications of the numerical techniques are also considered. Prerequisite: MATH 2413 and COSC 1315.

**MATH 2318. Linear Algebra. 3 Hours.**

This course provides a rigorous study of the concepts and applications of systems of linear equations, matrices, vector spaces, determinants, eigenvectors, eigenvalues, and linear transformations. Appropriate computer software and hand held technologies will be utilized. Prerequisite: MATH 2414 with a C or better.

**MATH 2413. Calculus I. 4 Hours.**

This course provides a rigorous study of the concepts and applications of limits and continuity; the Fundamental Theorem of Calculus; definition of the derivative of a function and techniques of differentiation; applications of the derivative to maximizing or minimizing a function; the chain rule, mean value theorem, and rate of change problems; curve sketching; definite and indefinite integration of algebraic, trigonometric, and transcendental function, with an application to calculation of areas. Appropriate computer software and hand held technologies will be utilized. Prerequisite: MATH 1314 and MATH 1316 with a C or better, or MATH 2412 with a C or better. Placement will also be determined by the Math Placement Exam score.

**MATH 2414. Calculus II. 4 Hours.**

This course provides a rigorous study of the concepts and applications of integration, trigonometric functions, sequences and series, indeterminate forms, improper integrals, and elementary differential equations. Appropriate computer software and hand held technologies will be utilized. Prerequisite: MATH 2413 with a C or better.

**MATH 357. Probability and Statistics. 3 Hours.**

This course provides a rigorous study of the concepts and applications of probability, discrete and continuous distribution, estimation, and hypothesis testing using concepts from calculus. Appropriate computer software and hand held technologies will be utilized. Prerequisite: MATH 2414 with a C or better.

**PHYS 2125. University Physics I Lab. 1 Hour.**

Physics lab covers elementary vector algebra, mechanics, heat, thermodynamics and sound. Prerequisite or Corequisite: MATH 2413. Corequisite: PHYS 2325.

**PHYS 2126. University Physics II Lab. 1 Hour.**

This lab covers electricity and magnetism, light, and modern physics. Prerequisite or Corequisite: MATH 2413. Corequisite: PHYS 2326.

**PHYS 2325. University Physics I. 3 Hours.**

This course is a calculus based physics sequence for students in pre-professional programs, biology, geology, or architecture wo do not expect to do additional work in engineering or physics. Topics include elementary vector algebra, mechanics, heat, thermodynamics and sound. Prerequisite or Corequisite: MATH 2413. Corequisite: PHYS 2125.

## Connect