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.
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.
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.
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.
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.
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.
An overview of computer science principles, introducing students to the fundamentals of how computers and software operate. The course includes a study of the underlying structures of computer systems and programming basics, concentrating on programming control structure. Object-oriented ways of thinking are introduced.
An in-depth study of web development and design, emphasizing the creation of interactive and responsive web applications with visually appealing user interfaces. Event-driven programming is studied as well as advanced JavaScript topics such as DOM manipulation and asynchronous programming. Prerequisite: grade of C or higher in 110.