- Large scale application development and deployment.
- Legacy application migration
- Support policies and procedures
- Budget, Project, Vendor and Team management.
- Leadership and Teambuilding
Languages: C++, Rust, Python, Go, Julia, Java
- Poster: Author Credit: Classifying and Mitigating Side-Channel Vulnerabilities between VMs
- Poster: Author Credit: Open and Secure Vehicle Data Collection Standard
Focuses on design and implementation of network programs and systems, including topics in network protocols, architectures, client-server computing, software-driven networking, and other contemporary network hardware-software system design and programming techniques. Familiarity with C and Unix is required.
Basics of graph theory and convex optimization; consensus on graphs, parallel and distributed computation methods, regret and convergence analysis, cooperative games, and elements of online optimization. The techniques and methodologies presented in the course are introduced through application setups including power and energy systems, sensor networks, transportation systems, and social networks.
An applied analysis and design class addressing the use of object-oriented techniques. Topics include domain modeling, use cases, architectural design and modeling notations. Students apply the techniques in analysis and design projects
Research and review technological impact on the democratic process of infromation sharing and the proliferation of infromation bubbles and its impact on society.
Explores algorithms that can extract information about the world from images or sequences of images. Topics covered include: imaging models and camera calibration, early vision (filters, edges, texture, stereo, optical flow), mid-level vision (segmentation, tracking), vision-based control and object recognition. Recommended prerequisite: probability, multivariate calculus and linear algebra.
Studies design, analysis and implementation of computer graphics techniques. Topics include interactive techniques, 3D viewing and models, clipping, transformations, projection, removal of hidden surfaces, lighting, textures and shadows. Knowledge of basic linear algebra is required.
Introduces core concepts in cybersecurity including confidentiality, integrity, authentication, risk management, and adversarial thinking. The concepts will be applied to both traditional information technology (IT) systems and cyber physical systems (CPS). At the conclusion of the course, students should have a solid foundation in cybersecurity and hands-on experience.
Develops the skills and practices necessary to apply user-centered approaches to software requirements analysis, and the design and evaluation of computer applications.
Studies design, analysis and implementation of advanced computer graphics techniques. Topics include shaders, using the GPU for high performance computing, graphics programming on embedded devices such as mobile phones; advanced graphics techniques such as ray tracing.
Examines systems that span multiple autonomous computers. Topics include system structuring techniques, scalability, heterogeneity, fault tolerance, load sharing, distributed file and information systems, naming, directory services, resource discovery, resource and network management, security, privacy, ethics and social issues.
Provides an introduction to software engineering concepts and techniques. Topics include the history of software engineering, fundamental software engineering principles and theory, software life cycles, software testing, and the design and implementation of concurrent and large-scale software systems.
Teaches basic exploit design and development through hands-on experimentation and testing. Uses a controlled environment to give students a "playground" in which to test penetration skills that are normally not allowed on live networks.
Instructs new Ph.D students in Computer Science how to obtain a Ph.D and how to become an effective member of the computer science research community. Makes students aware of formal requirements, educational objectives, and research themes. Provides evaluative criteria and guidelines for all objectives to be achieved.
Learn about innovative research and teaching in computer science by attending talks and discussions by leading researchers and educators. Learn professional presentation skills and etiquette of participating in scientific research presentations.
Learn how to make the most of your CS PhD by understanding and preparing for a career as a computer science research in academia, industry, and government. Students need to take this class once they complete Preliminary Exam and before their proposal defense.
Academic Work Experience
Professional Work Experience