Students learn basic procedural programming skills in a program such as Matlab, and study various mathematical models along with their applications to engineering. Various deterministic, stochastic, and simulation models are covered. Requirements include modeling projects with written reports and class presentations. Prerequisite: acceptable placement score or grade of C or higher in 220, 325. (Equivalent to MATH 365). QL, WCII

An introduction to the development and implementation of complex systems and effective management strategies to complete projects. Apply estimation, planning, and tracking to optimize systems emphasizing the phases of product lifecycle. Learn to verify and validate designs, manage risk, and formulate technical reviews. Course includes both lecture and lab components per week. Restricted to students with junior or senior standing.

Course includes both lecture and lab components per week. Learn the fundamentals of drafting communication and the visualization of scientific data. Explore the capabilities of computer-aided drafting through the creation and detailing of 2-D drawings and 3-D solid models conforming to engineering drafting standards, and learn to interpret standard engineering drawings. Develop a basic understanding of programming to manipulate data sets and generate presentation-quality plots.

Course includes both lecture and lab components per week. Learn basic electrical circuit concepts including voltage, current, and resistance. Use Ohms Law and Kirchhoffs Laws to evaluate series and parallel combinations of RLC circuits. Analyze direct current and alternating current circuits analytically and experimentally.

Learn the basics of microcontroller internal architecture, functions and applications. Apply input/output interface protocols and debugging to create devices that can run independently. Analyze Low-level data operations, effective memory allocation, management strategies, resource utilization optimization, performance and reliability. This course develops a solid foundation of C programming, emphasizing its application in developing embedded systems. Prerequisites: grade of C or better in 110, MATH-261.

Students will understand data structures and develop skills to design and analyze software algorithms. This course is designed for students with foundational programming knowledge. Topics include arrays, trees, dictionaries, sorting, searching, recursion, and graph traversal. Emphasis will be placed on understanding algorithmic efficiency, Big-O notation, and performance trade-offs, equipping students to write efficient code for complex problem-solving. Prerequisites: 110, MATH-261.

Learn the fundamentals of operating systems that are optimized for embedded environments, with a dual focus on the customization of the Linux kernel and the principles of real-time operating systems (RTOS). Configure and enhance the Linux kernel and implement RTOS for deterministic performance in embedded applications. Prerequisite: grade of C or better in 320.

Students will participate in an off-campus computer science internship, applying course knowledge and skills to problems within a work environment. Internship placements must be established prior to enrollment in the course in consultation with career services and a computer science faculty member. May be repeated for credit. Permission of instructor required. Graded CR/NC. Prerequisite: 310.

Independent reading and/or research under the guidance of a computer science faculty member. Refer to the academic policy section for independent study policy. Independent study contract is required. May be repeated for credit.

Application of computer science principles to solve real world problems at an organization while earning a wage. Students are expected to work part-time during the semester under the supervision of a software engineer. Restricted to computer science majors with junior standing and computer science faculty approval. Prerequisite: 310. Graded CR/NC.