Computer Science encompasses both theoretical and practical aspects of design, analysis, and implementation of computer systems, as well as applications of computing to numerous other fields. Core research areas include: (1) artificial intelligence and machine learning, (2) bioinformatics, (3) computer architecture, (4) embedded systems, (5) graphics and computer vision, (6) database systems and information management, (7) multimedia and gaming, (8) networks and distributed systems, (9) programming languages and compilers, (10) security, privacy, and cryptography, (11) design and analysis of algorithms, and (12) scientific computing.
Programming Languages and Software Engineering faculty in Computer Science investigates new tools, runtime systems, compilers, program analysis techniques and languages with the goal of making software faster, more secure, easier to develop, more reliable, more energy efficient and optimized for new architectures. Our research includes practical implementations that test the concepts developed. CS faculty have made contributions in multiple sub-areas, including systems security, parallelism, program analysis and optimization, just-in-time compilation, verification, testing and memory management.