Computer Science (CMSC)
College of Computer, Mathematical, and Natural Sciences
What is the Computer Science (CS) major?
Computer Science is the study of computing and computational systems, ranging from the design and development of applications to the theory behind them. Principal areas within computer science (alphabetically listed) include artificial intelligence, bioinformatics, computer systems and networks, database systems, human-computer interaction, scientific computing, programming languages, software engineering, theory of computing, and vision and graphics. A computer scientist is concerned with problem solving on the abstract level, the analysis level, and the application level often in ways that overlap and intersect with other areas of study.
While knowing how to implement a computer program is essential to the modern study and practice of computer science, programming is only one element of the field. Computer scientists also design and analyze algorithms to solve both abstract and real-world problems, and study the performance of computer hardware and software. The problems that computer scientists encounter range from the abstract (such as determining what problems can be solved with computers and the complexity of the algorithms that solve them) to the tangible (such as designing secure, easy-to-use applications for desktop and handheld computers, distilling information from huge data sets, and analyzing interactions between humans and computers).
What are the interests of students who major in Computer Science?
Computer Science majors have a broad range of interests in various forms of computing that include solving practical challenges via computational analysis, exploring how computing can enhance the abilities of companies and society, designing computational systems in order to develop the tools required to build large software systems, or even solving theoretical problems. In addition to computing related activities, Computer Science majors also participate in essentially every extracurricular activity at Maryland, from hackathons and coding challenges to the music and other arts, to entrepreneurship and business.
What is the day-to-day work of a Computer Science graduate?
Computer Science graduates may work as software developers, software engineers, systems analysts and project managers, and solve all types of problems via computing. They can build novel products at large or small tech-focused companies, but can also choose to work in environments like financial institutions, hospitals, hotel chains, or shipping companies satisfying in-house computing needs. Some students go on to graduate studies, work in the research divisions of government labs and companies, or launch their own startup ventures.
What are the lower level requirements of the Computer Science major?
In their first year, CS students take two semesters of Object-Oriented Programming (CMSC131 and 132). They then spend a year taking introductory courses in Computer Systems, Discrete Structures, Programming Languages and Algorithms. Math requirements for the major include two semesters of Calculus (MATH140 and 141), a 400-level Statistics class, and one additional Math or Statistics class that has MATH141 or higher as a prerequisite.
How is math applied to the major?
Mathematics is an integral part of much of what computer scientists do, from analyzing the performance of algorithms, to proving properties of programs, to numerically solving systems of equations, to creating visual displays of data.
What are the strengths of students in this major?
Computer Science majors develop strong math and analytical skills, and become good problem solvers. Most importantly Computer Science projects are collaborative, often with people who are not computer scientists, so majors must exhibit patience and develop clear communication skills.
What are the some of the experiences Computer Science students have had prior to college?
Computer Science students come from widely varying backgrounds. Some students have limited or no past experience with computer science concepts, programming, or theory. Other students have significant experience; including taking classes in high school or community colleges, or participating in coding camps and other computing related activities, or being self-taught.
What is cybersecurity?
From a Computer Science perspective, cybersecurity is the study of the theory and practice of protecting computing systems (hardware, software, and data) from accidental or intentional damage or unauthorized access. Areas of special interest include network security, programming language security, and cryptography.
How does a Computer Science major prepare to work in cybersecurity?
Computer Science has specializations in both cybersecurity and in data science, with coursework for either specialization also fulfilling requirements for the Computer Science major. The cybersecurity specialization prepares students for careers related to systems, network, and programming language security, and cryptology.
What is Data Science?
From a Computer Science perspective, data science is an emerging interdisciplinary field that creates data-centric products, applications or programs to address specific scientific, socio-political, or business questions. Data science is about the scientific methods, processes and systems used to extract useful data to inform companies of trends in social and economic behaviors. Data science is also commonly referred to as big data analytics, predictive analytics, advanced analytics, etc.
How do Computer Science students prepare to work in data science?
Computer Scientists who want to work in data science related fields learn statistical methods for analyzing data, and develop tools using database and machine learning techniques to manage, analyze, and extract information from large datasets. Data science requires the ability to integrate data, operate on data at scale, analyze data, make predictions, find patterns, and form and test hypotheses. It incorporates practices from a variety of fields in Computer Science, chiefly machine learning, statistics, databases, and visualization.