Computer Science
Bachelor of Science with a concentration in software engineering
Begin your journey into the fascinating world of software engineering with a bachelor’s degree in computer science from the Virginia Commonwealth University (VCU) College of Engineering. We have world-class facilities with a strong focus on research. Combined with our industry connections and access to Richmond-area businesses, VCU Engineering is a solid choice for your education and career development.
What you’ll learn
Our program provides coursework in areas of computer science like:
- Artificial intelligence
- Cloud computing
- Cybersecurity
- Data science
- Machine learning
- Natural language processing
- Software engineering
- Virtual reality
You will develop the advanced software design and problem solving skills to create software solutions for users. You’ll learn to work independently or on a team to build code, ensure a consistent user interface, test software before it's released and maintain software which is sought by many employers. By applying creativity to form innovative solutions, bachelor’s program students will use their knowledge to solve technological problems that meet the needs of our changing society and advance the quality of human life.
The VCU College of Engineering is etched into the landscape of Richmond, giving students access to a culturally vibrant and diverse city full of potential. We focus on developing close partnerships with public institutions and private businesses in order to give you unique learning and job opportunities.
Bachelor’s program students also have access to benefits like:
- Faculty who are industry experts, finding innovative solutions to sustainability problems as respected leaders in their fields with well-funded labs and industry partnerships
- Design your own path to education with flexible electives and three concentrations to choose from: data science, cybersecurity and software engineering
- Dedicated Career Services department that provides internship and employment opportunities
- Industry connections through college partnerships with public and private industry
- Interdisciplinary education to teach collaboration with engineering practitioners outside your field of study
Reference the VCU Bulletin for a full list of computer science classes. Below are a few interesting courses from the program:
Algorithm Analysis with Advanced Data Structures (CMSC 401): Gain understanding of data structures like multiple linked lists, height-balanced trees, B-trees, hashing and graph representation by incorporating these data structures into object-oriented design. You’ll analyze various searching and sorting algorithms and investigate algorithm design topics like divide-and-conquer, dynamic programming and greedy methods.
Introduction to Operating Systems (CMSC 312): You’ll learn topics essential to the working of operating systems like computer systems design, inter-process communications, multi-threading, I/O processing, secondary memory organization, command languages, memory management and job scheduling.
Data Communication and Networking (CMSC 440): Explore computer networking with focus on applications and protocols that run on the Internet. You’ll investigate layered network architecture, studying applications and then proceeding down the network “stack” toward the physical link to computers. Examine the operation of applications such as the web, FTP, e-mail and DNS. At the transport layer, you’ll study both connectionless UDP and connection-oriented TCP, with an in-depth study of TCP operation, specifically flow control and congestion control. Data communications is also covered through various data routing protocols. Additional topics include network security and wireless/mobile networking.
An undergraduate degree in computer science can facilitate career advancement in a number of industries like:
- Commercial banking and credit
- Healthcare
- Information technology
- Internet and telecommunications
- Investment banking
Consider possibilities like:
- Computer programmer: Computer programmers write, modify, and test code and scripts that allow computer software and applications to function properly. They turn the designs created by software developers and engineers into instructions that a computer can follow. In addition, programmers run tests to ensure that newly created applications and software produce the expected results. If the products do not work correctly, programmers check the code or scripts for mistakes and modify them.
- Computer and Information systems manager: Computer and information systems managers, often called information technology (IT) managers or IT project managers, plan, coordinate, and direct computer-related activities in an organization. They help determine the information technology goals of an organization and are responsible for implementing computer systems to meet those goals.
- Software developer: A software developer designs applications or software a user may use to perform a specific task. This may be a specific application or software or it may be a larger system or network related to control or device networks. Senior software developers often assess and improve systems, write new code, develop operational manuals and submit progress reports for the project.
The U.S. Bureau of Labor Statistics provides valuable insights into the field of Computer Science, including salary trends, projected job growth and industry demand. As you research and consider your educational options, take advantage of these resources to align your academic path with promising career opportunities.
Software Developers, Quality Assurance Analysts, and Testers
With the help of our Career Services team, VCU College of Engineering graduates have many opportunities to network with alumni and industry professionals. Our students work at companies like:
- Black Knight Technology Inc.
- Blue River Technology
- Brightspot
- CACI
- Capital One
- CoStar Group
- Cotiviti
- Federal Reserve Bank of Richmond
- Genworth
- HP
- Micron Technology Inc.
- Microsoft
- MITRE Corporation
- NT Concepts
- UST
Application information
First-year applicants who submit all materials by the priority admissions deadline of Jan. 15 for the upcoming fall semester will receive a decision by April 1.*
To be considered for a university-level scholarship your application materials must be received by the Office of Admissions by Nov. 1.
Transfer applicants who submit all materials by the March 17 priority deadline for the upcoming fall semester will receive a decision by May 1.*
*After this deadline decisions are sent on a rolling basis until enrollment capacity is met.