This graduate-level course introduces fundamental principles and practices in embedded systems design and builds upon these principles to study the interaction of computer systems (CPU, memory) and interfacing with those systems. The course covers microcontroller/microprocessor architecture, real-time operating systems (RTOS), hardware/software co-design, system-on-chip (SoC) architectures, and interfacing with peripherals. Prerequisite: three credits of introductory programming and a discrete math course.
Learn optimization and simulation methods including linear optimization, Monte Carlo, and discrete event simulation. Apply modeling to business problems to recommend possible actions toward a solution. Prerequisite: MATH-230 or equivalent and three credits of intro to programming course.
This graduate-level course builds on the foundational concepts of web development introduced at the undergraduate level. This course builds an understanding of how frameworks fit together through project-based learning. Students will gain experience with front-end and back-end development, explore advanced frameworks and tools, and apply best practices in building scalable and efficient web applications. Prerequisite: three-credit web development undergraduate course or equivalent industry experience.
Students work with a team to explore a realistic, open-ended and multifaceted case under the guidance of a faculty advisor. Students carry out and document solution exploration, solution refinement, and prototyping. Restricted to computer science majors with senior standing. Prerequisite: grade of C or highter in 498.
Students work with a team to explore a realistic, open-ended and multifaceted case under the guidance of a faculty advisor. Students carry out and document solution exploration, solution refinement, and prototyping. Restricted to computer science majors with junior or senior standing. Prerequisite: grade of C or higher in 310.
Application of computer science principles to solve real world problems at an organization while earning a wage. Students are expected to work full-time during the summer 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.
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.
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.
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.
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.