Skip to Content

Course Search Results

  • 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 4400 AND Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing OR ECE)
  • 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 Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing OR ECE)
  • 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 Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing OR ECE)
  • 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 Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing OR ECE)
  • 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 AND Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing OR ECE)
  • 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 Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing OR ECE)
  • 3.00 Credits

    Computer graphics is the discipline of generating images though computer programs. This course covers modern computer graphics hardware and software. Students will learn raster algorithms in 2D and 3D, coordinate transformation, projections, projections, lighting/shading, and texture mapping, vertex and fragment shaders and how they work. Students will also learn the differences between raster algorithms and ray-tracing algorithms. Prerequisites: 'C-' or better in CS 3500 AND(MATH2250 OR 2270 OR 2271) AND Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing OR ECE)
  • 3.00 Credits

    This course is an introduction to digital image processing. Simply put, image processing is the study of any algorithm that takes an image as input and produces an image as output. Digital images are ubiquitous in today's world, and the number of images available on the internet is exploding. Images are an important form of data in many fields. Examples include microscopy in biology, MRI and CT in medicine, satellite imagery in geology and agriculture, fingerprint and face images in security and many others. Digital image processing is vital in fully harnessing the information in all of this data. Practically every digital image your see today has undergone some form of image processing. Even point-and-shoot digital cameras have a dedicated image processing microchip that performs simple image processing tasks immediately after a photograph is taken. In this course you will learn the basic algorithms of image processing, including image enhancement, filtering, feature detection, geometric transforms, color processing, and compression. The goals of this course are to give you the understanding of how image processing algorithms work and what algorithms to apply to a given problem, and also the foundation necessary to develop your own image processing algorithms. Prerequisites: Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing OR ECE)
  • 3.00 Credits

    This is the capstone team project course for Computer Engineering majors who do not choose to do a thesis or an ECE clinic. The CS/ECE 3992 teams remain intact and the goal is too build and demonstrate the project that was proposed and approved in CS/ECE 3992. Students in this class do not meet in a classroom setting. Each team will meet with the instructor once each week for approximately 1 hour to discuss progress and/or problems as well as demonstrate scheduled milestone results. At the end of the term students are expected to demonstrate their entire operational project to an open house crowd of interested faculty and students. Friends and family are also welcome to attend. A final written report is also turned in which documents the details of all aspects of the project. Prerequisites: "C-" or better in (CS 3992 OR ECE 3992) AND (CS 5780 OR ECE 5780) AND Full Major Status in Computer Engineering.