Skip to Content

Course Search Results

  • 3.00 Credits

    Introduction to field of artificial intelligence, including heuristic programming, problem-solving, search, theorem proving, question answering, machine learning, pattern recognition, game playing, robotics, computer vision. Undergraduate students only. Prerequisites: 'C-' or better in (CS 3500 AND CS 4150 AND (CS 3130 OR ECE 3530)) AND (Full Major status in Computer Science OR Computer Engineering OR Data Science OR Software Development)
  • 3.00 Credits

    Introduction to computer systems from a programmer's point of view. Machine level representations of programs, optimizing program performance, memory hierarchy, linking, exceptional control flow, measuring program performance, virtual memory, concurrent programming with threads, network programming. Prerequisites: 'C-' or better in CS 3810 AND Full Major status in Computer Science OR Computer Engineering OR Software Development
  • 3.00 Credits

    This course teaches the security mindset and introduces the principles and practices of computer security as applied to software, systems, and networks. It covers the foundations of building, using, and managing secure systems. Topics include standard cryptographic functions and protocols, and threats and defenses for real-world systems. This class is open to undergraduates. It is recommended that you have a solid grasp over topics like software engineering, software debugging, basic networking, computer organization, the web and databases, and the command-line terminal; and familiarity with languages such as Python, SQL, HTML, and C/C++. Prerequisites: 'C-' or better in CS 3500 AND Full Major status in Computer Science OR Software Development
  • 3.00 Credits

    Lexical analysis, top-down and bottom-up parsing, symbol tables, internal forms and intermediate languages, runtime environments, code generation, code optimization, semantic specifications, error detection and recovery. Use of software tools for lexical analysis and parsing. Prerequisites: 'C-' or better in (CS 3100 AND CS 4400) AND (Full Major status in Computer Science OR Computer Engineering OR Software Development)
  • 3.00 Credits

    A comprehensive study of the principles and practices of data communication and networks. Topics include transmission media, data encoding, local and wide area networking architectures, internetwork and transport protocols (e.g., IPv4, IPv6, TCP, UDP, RPC, SMTP), networking infrastructure (e.g., routers, nameservers, gateways), network management, distributed applications, network security, and electronic commerce. Principles are put into practice via a number of programming projects. Undergraduate Students only. Prerequisites: 'C-' or better in CS 3500 AND Full Major status in (Computer Science OR Computer Engineering OR Software Development)
  • 3.00 Credits

    This course is the capstone experience for graduating Computer Science seniors. It involves the development of significant software systems by small, self-selected student teams, with emphasis on applying sound, disciplined software engineering practice. Projects are defined and selected at the beginning of the semester, after which progress is demonstrated through documentation, meetings, and demos. The class culminates in a Demo Day at which students present their projects to faculty, students and project sponsors. Prerequisites: 'C-' or better in CS 4000 AND Full Major status in Computer Science OR Full Major status in Software Development
  • 3.00 Credits

    An introduction to the theory and practice of application development for mobile phones and tablets, including a focus on general program organizational techniques. Topics include native language foundations, automatic UI layout techniques, custom views and controls, data persistence, data driven user interfaces, application lifecycle, application architectural models like Model-View-Adapter, internet service interaction, RESTful web services, and 2D OpenGL rendering. Students will complete several programming projects during the course to explore these topics. A final project of the student's own design will make up a large part of the class. Prerequisites: 'C-' or better in CS 3505 AND (Full Major or Minor status in Computer Science OR Full Major status in Computer Engineering OR Full Major status in Software Development)
  • 3.00 Credits

    Software architectures, programming models, and programming environments pertinent to developing web applications. Topics include client-server model, multi-tier software architecture, client-side scripting (JavaScript), server-side programming (Servlets and JavaServer Pages), component reuse (JavaBeans), database connectivity (JDBC), and web servers. Prerequisites: 'C-' or better in CS 3505 AND (Full Major status in Computer Science OR Computer Engineering OR Software Development)
  • 3.00 Credits

    This course explores advanced topics in web software development including REST APIs, testing infrastructure, cloud deployment, certificates, secure sessions, user accounts and permissions, authentication, and ethical considerations in web software. Students will create an advanced web application utilizing these topics. Prerequisites: 'C-' or better in CS 3550
  • 3.00 Credits

    How does a web browser work? This class covers all the major components of a modern web browser, including networking, graphics, layout, styling, and JavaScript execution. Particular focus is placed on the browser rendering pipeline of parsing, styling, layout, and rendering. Students write their own web browser and implement extensions like typographic flourishes, scrollbars, text editing, and HTML canvas. Prerequisites: 'C-' or better in CS 3500 AND Full Major status in Computer Science OR Software Development