Skip to Content

Course Search Results

  • 2.00 - 6.00 Credits

    Students are required to complete a substantial computer science project. Students must demonstrate proficiency in research, design, analysis, project planning, implementation, testing, presentation and documentation. Students receive T (temporary) grades until their final design review, after which these grades are changed retroactively. Students must be enrolled in CS 6010 at the time of their final design review.
  • 2.00 - 6.00 Credits

    Students are required to complete original computer science research resulting in a thesis. Students must demonstrate proficiency in research, design, analysis, project planning, implementation, testing, presentation and documentation. Students receive T (temporary) grades until their final design review, after which these grades are changed retroactively. Students must be enrolled in CS 6011 at the time of their final thesis defense.
  • 3.00 Credits

    Distributed systems or distributed computing deals with the issues encountered while running programs across a computer network. This course will cover key topics including: models of distributed systems, timing, synchronization, coordination and agreement, fault tolerance, naming, security, and middleware. Students will learn both the theoretical background of distributed systems as well as work on hands-on projects developing distributed systems applications. Prerequisite:    CS 3100
  • 3.00 Credits

    The growth of the Internet of Things (IoT) is changing the way we interact with the world by saving time and resources and opening new opportunities for growth and innovation. This course explores the fundamentals of the world of IoT, including design considerations and constraints. It provides an overview of the networks and security issues related to IoT devices. Course participants will get hands-on experience using Arduino and/or Raspberry Pi hardware and software platforms, learn different communication protocols, how to harness the data from IoT devices, and review capabilities of cloud-based IoT platforms. Prerequisite:    CS 2810 and ECE 3710
  • 3.00 Credits

    The course teaches advanced topics of perception, mapping, route planning and navigation concepts. In this course the students will create maps of the operational environment using SLAM. Given the map, the students would drive the vehicle autonomously to a specified destination. Topics that will be covered include camera calibration, advanced computer vision and path planning. The course will conclude with a capstone project with the expectation that the student can program the vehicle to navigate in a dynamic environment, follow road markings, and reach a specified goal; latitude and longitude.
  • 3.00 Credits

    Introduction to fundamental principles of advanced algorthm design, including asymptotic analysis; divide-and-conquer algorithms and recurrences; greedy algorithms; practical data structures (heaps, hash tables, search trees, graphs); dynamic programming; graph algorithms; and randomized algorithms. Prerequisite:    CS 2420
  • 3.00 Credits

    This course aims to improve student awareness of standard software engineering tools and techniques and make them more capable team members/leaders in software development projects. In this course, students build on their software engineering knowledge by evaluating the Software Development Lifecycle (SDLC) of an existing undergraduate capstone project (or and re-engineering it with specific techniques for maintenance, scalability, dependability, reliability, safety, security, and resilience. Topics such as reverse engineering, design recovery, program analysis, program transformation, refactoring, traceability, and program understanding will be investigated. Accompanying lectures aim to provide timely concepts from the software engineering body of knowledge as they relate to the course work. There will also be class discussions and demonstrations around practical aspects of improving software-related skills that draw upon the students' collective experience and upon the research. Prerequisite:    CS 3100
  • 3.00 Credits

    This course covers advanced topics in artificial intelligence from the perspective of implementing intelligent agents through software. Students are expected to have a basic understanding of search and knowledge reasoning. Topics include quantifying uncertainty, probabilistic reasoning and planning, supervised learning, reinforcement learning, natural language processing, and perception. CS 4500 (Introduction to Artificial Intelligence) or a similar course is not required but may be helpful prior to taking this course. Prerequisite:    CS 3100
  • 3.00 Credits

    The course covers design, management, implementation, and programming of relational database systems in a high-volume data environment. Database design principles like E-R modeling, schema design and refinement, normal forms, and constraints are introduced. Data Definition Language queries and Data Manipulation Language queries are covered to implement and query a database. Other SQL implementation topics like stored procedures, functions, triggers, and indexes are covered. Advanced database topics like big data analytics, storage management principles, query processing and optimization, transaction management, concurrency control, parallel and distributed databases are covered. The course also introduces alternatives to relational databases. Prerequisite:    CS 2550
  • 3.00 Credits

    This course is the first in a two-course sequence that prepares students to apply practical solutions to modern data science problems as a professional data analyst. The data management, storage, and manipulation common in data science are taught along with applied machine learning and statistics. Topics include, but are not limited to, the following: data wrangling, feature reduction, data visualization, descriptive and inferential statistics, applied statistical models, applied machine learning, natural language processing, prediction algorithms, and forecasting.