Bachelor of Science (BS) in Computer Science
Learn how to solve problems through computational methods
Computers are becoming increasingly woven into all aspects of our lives, which means the value of a Bachelor of Science in Computer Science is becoming even more valuable. Our mathematically rigorous courses provide students with the fundamentals they need to enter the workforce or continue to graduate school.
In addition to your course work, you can gain hands-on experience in software development, software testing, database administration, network administration and other jobs through an internship or by taking part in the co-operative education program in the Swanson School of Engineering. Students also gain valuable experience through the required Capstone Experience.
As one of the oldest Computer Science departments in the country, our graduates have made innovative and worthy contributions to a wide range of industries and academic institutions.
Our core courses provide an introduction to the fundamental areas and basic concepts of computer science. These courses include the study of modern languages such as Java. Also included is a careful investigation of fundamental problem-solving techniques used on an important variety of computational problems.
The curriculum for the BS degree program consists of eight required courses (25 credits) and five elective courses (15 credits). This makes a total of 40 computer science credits. They include:
- A three-course programming sequence: CS 0401, CS 0445, and CS 1501 (10 credits).
- A three-course systems sequence: CS 0447, CS 0449, and CS 1550 (9 credits).
- A two-course sequence on discrete mathematics and theoretical computer science: CS 0441 and CS 1502.
The five elective courses required for the major can be any regular CS course numbered 1000 or higher (internships, directed studies, CS 1640, and CS capstone courses may NOT be used as elective major courses).
Students should have some programming experience (usually acquired in high school) before taking CS 0401. Any high school course that includes the writing of several Pascal, C++, or Java programs would suffice. It is also possible to take one of the department’s programming service courses, such as CS 0007 or CS 0008, as preparation.
All courses, except CS 0401, are offered for three credits. Some courses may be cross-listed with courses in the Swanson School of Engineering. Numbers in parenthesis refer to cross listings. Indications of frequency of offering are approximate and subject to change. Please note: Students must achieve a C or better in order to use a course to satisfy the pre-requisite for any subsequent Computer Science course.
Core Courses for Majors
- 0401 INTERMEDIATE PROGRAMMING USING JAVA (COE 0401)
- 0441 DISCRETE STRUCTURES FOR COMPUTER SCIENCE
- 0445 DATA STRUCTURES (COE 0445)
- 0447 COMPUTER ORGANIZATION AND ASSEMBLY LANGUAGE (COE 0447)
- 0449 INTRODUCTION TO SYSTEMS SOFTWARE (COE 0449)
Upper-level Courses for Majors
- 1501 ALGORITHM IMPLEMENTATION (COE 1501)
- 1502 FORMAL METHODS IN COMPUTER SCIENCE
- 1510 DESIGN AND ANALYSIS OF ALGORITHMS (CS 2012)
- 1511 INTRODUCTION TO THEORY OF COMPUTATION
- 1515 SCIENTIFIC COMPUTATION
- 1520 PROGRAMMING LANGUAGES FOR WEB APPLICATIONS (COE 1520)
- 1530 SOFTWARE ENGINEERING (COE 1530)
- 1538 INTRODUCTION TO SIMULATION
- 1541 INTRODUCTION TO COMPUTER ARCHITECTURE (COE 1541)
- 1550 INTRODUCTION TO OPERATING SYSTEMS (COE 1550)
- 1555 DATABASE MANAGEMENT SYSTEMS (CS 2055)
- 1566 INTRODUCTION TO COMPUTER GRAPHICS
- 1567 PROGRAMMING AND SYSTEM DESIGN ON A MOBILE ROBOT PLATFORM
- 1571 INTRODUCTION TO ARTIFICIAL INTELLIGENCE
- 1573 ARTIFICIAL INTELLIGENCE APPLICATION DEVELOPMENT
- 1621 STRUCTURE PROGRAMMING LANGUAGES
- 1622 INTRODUCTION TO COMPILER DESIGN (COE 1622)
- 1630 SOFTWARE-SYSTEM DESIGN MANAGEMENT
- 1631 SOFTWARE DESIGN METHODOLOGY (COE 1631)
- 1632 SOFTWARE QUALITY ASSURANCE
- 1635 INTERFACE DESIGN METHODOLOGY
- 1640 BIOINFORMATICS SOFTWARE DESIGN (BIOSC 1640)
- 1645 INTRODUCTION TO HIGH PERFORMANCE COMPUTING SYSTEMS (CS 2045)
- 1651 ADVANCED SYSTEMS SOFTWARE UHC (COE 1651)
- 1652 DATA COMMUNICATION & COMPUTER NETWORKS
- 1653 APPLIED CRYPTOGRAPHY AND NETWORK SECURITY
- 1655 SECURE DATA MANAGEMENT & WEB APPLICATIONS
- 1656 INTRODUCTION TO DATA SCIENCE (CS 2056)
- 1666 PRINCIPLES OF COMPUTER GAME DESIGN & IMPLEMENTATION
- 1671 HUMAN LANGUAGE TECHNOLOGIES
- 1674 INTRODUCTION TO COMPUTER VISION
- 1675 INTRODUCTION TO MACHINE LEARNING
- 1699 SPEC TOPICS IN COMPUTER SCIENCE
Capstone Courses for Majors
- 1900 INTERNSHIP
- 1950 DIRECTED RESEARCH
- 1980 TEAM PROJECT DESIGN & IMPLEMENTATION
- 1981 PROJECT STUDIO
Introductory Service Courses Primarily for Non-majors
- 0004 INTRODUCTION TO COMPUTER PROGRAMMING-BASIC
- 0007 INTRODUCTION TO COMPUTER PROGRAMMING
- 0008 INTRODUCTION TO COMPUTER PROGRAMMING WITH PYTHON
- 0090 SUSTAINABILITY AND COMPUTING
Intermediate Service Courses