Online Computer Science Degree
Bachelor of Science in Computer Science
Computer science and software engineering professionals can be found across industries as firms increasingly rely on new technology. In addition to exploring important undergraduate foundation studies, the bachelor of computer science degree program is designed to provide the opportunity to study computer programming languages, computer network systems and software engineering skills.
The systems security and project management components of this degree are designed to help students to develop industry-relevant skillsets. In this computer science online degree program, you could study how to build computer software solutions through programming with algorithmic techniques while exploring a broad range of theoretical and practical knowledge, methods, processes, and skills. The focus of the online Computer Science degree program is the science and theories behind the codes that help make systems run more smoothly.
BSCS concentrations include:
The bachelor’s degree in computer science program:
- Allows you to choose your electives from a range of courses to best fit your needs and goals
- Has CTU Fast Track™ exams available, a series of mini modules designed to test your knowledge of key course objectives, offering the opportunity to earn college credit for what you already know
- Is ranked among the Best Online Bachelor’s Programs by U.S. News & World Report for the ninth year in a row*
We're Flexible So You Can Be Too
In CTU’s bachelor in computer science degree program, students come first. Our flexible online course schedule helps you to build a class schedule around your schedule. And with grants and scholarships available for those who qualify, a degree from CTU can be both achievable and affordable. Learn more below or fill out the form to speak with an admissions advisor.
* CTU programs are ranked among U.S. News & World Report’s 2023 Best Online Programs.
Relevant Institutional/Programmatic Accreditation
CTU is institutionally accredited by the Higher Learning Commission www.hlcommission.org
- January 02, 2024
- February 06, 2024
- March 19, 2024
- Colorado Springs
Estimate Tuition and Grad Date
Total tuition for this degree program will vary depending on your educational needs, existing experience, and other factors.Estimate your costs, potential savings and graduation date
The Bachelor of Science in Computer Science program is a 183-credit-hour program offered online and at the Colorado campuses. The program consists of 51 credit hours of general education, 88 credit hours devoted to the computer science core, and 44 credit hours a student can apply to a concentration or computer science electives.
This degree program is designed for students who are interested in pursuing a career centered on building computer software solutions through programming with algorithmic techniques. Students will explore a broad range of theoretical and practical knowledge, methods, processes, and skills to effectively design and develop computer software according to domain-specific requirements. The curriculum offers broad and detailed knowledge on how a computer’s software works, and how to design and develop different levels and types of computer software.
This program differs from the curriculum of the computer engineering program, which is focused on how to design and develop computer hardware. It is also different from the curriculum of the Information Technology program, which is focused on how to apply both computer hardware and software to design, develop, and support high-level, end-user-oriented business systems, services, or applications.
This program does not lead to additional licensure or certification. As such, CTU has made no determination regarding prerequisites for licensure or certification in any state or jurisdiction.
College of Computer Science, Engineering and Technology Mission Statement
Through innovative industry-current curricula and technology-enabled student-centered teaching, the College of Computer Science, Engineering and Technology empowers students to become motivated, creative, ethical, and skillful professionals who can resolve challenges in Computer Science, Computer/Electrical Engineering, and Information Technology in order to meet the needs of the digital economy.
Courses: General EducationCredits
Course Title Course Description Credit Hours COMS105This course explores the importance of effective interpersonal communication. This course covers: how interpersonal communication impacts an individual, how to recognize the different methods of communication and establishing and maintaining personal and professional relationships through effective communication. Interpersonal Communications 4.5 or COMS203This course is designed to assist in sharpening students’ skills in oral communication with a focus on presenting in professional settings. Understanding basic communication concepts: brevity, precision and adherence to common delivery methods are hallmarks of clear, consistent and concise communication. Speech Communications 4.5 ENGL104ENGL104 is the first course in a sequence of two composition classes designed to empower students to develop their voice, build confidence in writing, and develop both their writing and critical thinking skills. Students will have the opportunity to practice adapting their writing for different audiences, purposes, and platforms, and will be able to explore how the choices they make influence the meaning and success of their written communications. This course explores the use of the writing process to compose clear, organized writings that are appropriate for various audiences and purposes. This course introduces the importance of clear and persuasive writing in personal, professional, and academic contexts. Introductory Written Communication 4.5 ENGL105ENGL105 is the final course in the composition sequence and builds on the writing skills developed in ENGL104. In this course, students continue to practice writing for a variety of contexts, purposes, and audiences. Throughout the course, students incorporate research into their writing by using digital tools and resources to identify and cite credible sources following CTU APA guidelines. Professional Written Communications 4.5 HIST101This course focuses on the key people, social experiments, and technologies that continue to impact our lives. Particular attention is paid to the latter half of the 20th Century and the dawn of a new millennium in America – a time that, through the lens of history, both gives us pause and inspires hope for the future. Modern American History: 1950 to the 21st Century 4.5 MATH111This course is designed to review concepts of elementary algebra and introduce students to additional algebraic concepts used in computing disciplines. Students will have the opportunity to develop problem solving skills for success in technical fields. Specifically, this course covers the relationship between functions and their graphs, techniques for solving a variety of equations, and matrices for solving systems of linear equations. College Algebra for Technical Programs 4.5 PHIL101This course is designed to provide students a basic understanding of moral and ethical theories and concepts. The activities and discussions encourage students to explore and solve ethical dilemmas by identifying and applying moral and ethical theories. Students will also be encouraged to explain their reasoning from cultural, professional, and personal standpoints. A variety of ethical issues and methodologies will be explored, as students evaluate moral dilemmas in an assortment of work and life scenarios. Introduction to Ethics 4.5 PSYC102Psychology is fundamental to every field in academic study. This course is designed to teach students a basic understanding of human behavior as well as emotional and cognitive development. Coursework incorporates terminology, principles, and foundational theories that comprise modern concepts of introductory psychology. This course is designed to teach students using practical, real-world application of course concepts within their professional, personal, and relational lives. Introductory Psychology 4.5 SCI101This course introduces students to the physical, life, and Earth sciences. Students have the opportunity to explore the principles of scientific critical thinking. Utilizing the Scientific Method, as well as other quantitative and qualitative approaches, students can draw meaningful conclusions about the real world. Introduction to the Sciences 4.5 SCI103
This is a learning experience that complements the Introduction to the Sciences course. Since the course addresses how scientific thinking and the resultant technology has changed modern life, this lab will provide students with experiences in the scientific approaches of different sciences covered, such as: biology, chemistry, physics, geology and astronomy. This lab will be constructed specifically to extend the learning from each unit of the Introduction to the Sciences course, designed to provide experiences which deepen students’ familiarity with the scientific method and way of asking questions and solving problems.
Science and Technology- Laboratory Course 1.5 SCI201This course analyzes the interrelationships between the natural environment and human activities. In this course, students are taught about the preservation and conservation of natural resources and the resilience of the natural environment with respect to the carrying capacity of the earth. Furthermore, students will explore topics related to environmental ethics and apply principles of sustainability to issues impacting natural resources and biodiversity. Finally, this course will teach a holistic approach in learning about environmental problems and rehabilitation through individual and group behavioral changes and environmental regulations. Environmental Science and Sustainability 4.5 SOCL102This course introduces students to the study of sociology and how it applies to careers, community, and family. Sociology examines the nature of society including the theories and principles of multi-cultural and social interactions. This course addresses how the concepts of social organization, social institutions, and social changes influence everyday life. Introductory Sociology 4.5 UNIV104UNIV104 is designed to provide students with a foundation for success in CTU’s undergraduate academic environment. This course introduces effective academic strategies and resources integrating them with career planning methods that can be leveraged to pursue future academic and professional goals. Academic and Career Success 4.5 Total Credit Hours: 51
Course Title Course Description Credit Hours CS101This course introduces students to the foundational aspects of Computer Science as a discipline. Students will be provided with an overview of core Computer Science knowledge areas. The course will discuss the spectrum of computation technologies and their typical applications. Finally, the course will discuss problem-solving techniques and critical thinking methods that are commonly used in Computer Science. Problem Solving in Computer Science 4 CS118This course is designed to provide a comprehensive introduction of programming languages including assembly, scripting, procedural, and Object-Oriented languages. For each type of programming language, construction components and techniques will be presented and the main application suitability will also be discussed with real world examples. Students will also explore and apply common programming language constructs (e.g., data type, function, procedure, linear, branching, iteration, subroutines, etc.) through assignments in which students will be required to use proper language constructs to design programming logic. Students will also explore the process of problem-solving by programming. Principles of Programming Languages 4 CS119This course introduces students to an introductory programming language which can demonstrate several common types of programming models such as scripting, procedural, and object-oriented programming in one language. The course covers algorithmic logic, basic declarations and statements, control structures, data and program design, basic concepts of object-orientation, and also covers how to organize multiple program components into a single programming project. Students will be required to complete several programming/scripting exercises throughout the course. The course will assist students in building up a practical foundation to study other programming languages. Introduction of Programming 4 CS141This course introduces students to the fundamentals of computer organization and architecture. Topics include basic assembly-level machine organization, memory system organization and architecture, computer interfacing and communication, multiprocessing and alternative architectures, as well as the concepts of performance and the architectural support for performance enhancements. Fundamentals of Computer Organization and Architecture 4 CS219This course will give students the opportunity to extend their programming skills through use of Python programming language. The foundation of object-oriented and event-driven programming will be discussed and applied in this course. Topics studied will include the use of data structures, the creation of classes and objects, and the application of inheritance and polymorphism, etc. Students need to demonstrate an intermediate level competency of using Python to conduct programming tasks. Python Programming 4 CS221This course will give students the opportunity to extend their database knowledge and skills through applying the theory from CS252 into practical applications implemented by programming in Structured Query Language (SQL). In a lab setting, students will explore how to analyze a business problem, model data flow, create a conceptual and logical database designs, and implement these designs through programming in SQL. Students will also develop applications to access these databases. Students need to demonstrate an intermediate level competency of using SQL to develop database based applications. SQL Programming 4 CS226This course provides students an opportunity to learn Java, another object-oriented programming (OOP) language, through the development of a software application. Students will use various Java language features to create classes and objects, and apply inheritance to construct solutions. In a lab setting, students will use an IDE (Integrated Development Environment) to incrementally implement and test the software application. Students need to demonstrate an intermediate level competency of using Java to conduct programming tasks. Java Programming 4 CS228This course provides students an opportunity to learn C++, another object-oriented programming (OOP) language, through the development of a software application. Students will apply C++ language features to create classes and objects; and also apply object-oriented features such as inheritance, operator overloading, polymorphism, and templates to construct solutions. In a lab-oriented setting, students will incrementally implement and test the software application. Students need to demonstrate an intermediate level competency of using C++ to conduct programming tasks. C++ Programming 4 CS233This course introduces students to the principles and idiosyncrasies behind representatives of some of the different types of data structures. The course includes an examination of arrays, stacks, queues, lists, and trees. Students will study these principles through the completion of several programs. Fundamentals of Data Structures 4 CS253This course introduces the basic database management system (DBMS) concepts including relational data models, database management system architecture and components, as well as structured query language (SQL), etc. Topics such as conceptual, logical and physical database designs will be covered and applied for several small real-world database application projects. Introduction to Database Systems 4 CS267Students are introduced to classical algorithms, including searching and sorting, hashing and information retrieval, with an emphasis on their applicability to solve real-world problems. Basic techniques to analyze and design algorithms are covered. Average and asymptotic behaviors are discussed. Complexity algorithms issues, performance characteristics, and estimating their potential effectiveness in applications are explored.
Computer Algorithms 4 CS311As a foundation course for students looking to acquire programming skills in mobile platforms, this course introduces students to application development process for mobile devices. The course illustrates the commonalities and differences between the development process and workflow, application design methodology and principles, as well as the implementation tools for mobile computing as contrasted with those for desktop computing. The design and implementation constraints will be covered and addressed through a hand-on project to build a solution to a problem involving mobile computing. Mobile Programming 4 CS337Parallel programming is a fundamental programming skill to construct high performance solutions for complicated computation tasks. This course introduces the basic concepts of parallel programming including parallel computer architectures, analytical modeling of parallel programs, and principles of parallel algorithm design, as well as effective techniques commonly used in coding, debugging, and testing parallel software. Introduction to Parallel Computing 4 CS341In this course, students are introduced to the design and the implementation concepts of modern operating systems. The topics covered include basic capabilities of operating systems, virtual memory, resource allocation and management, concurrent processes and threads, deadlock detection and prevention, protection and security, I/O and file systems, batch and interactive subsystems. Completion of the course requires the student to perform several lab exercises that investigate and exercise key operating system features. Principles of Operating Systems 4 CS349This course introduces students to the software development processes and methods. The course explains the traditional Software Development Life Cycle (SDLC) encompassing requirements collection and analysis, design, implementation, testing and the maintenance phases. The course also introduces principles and techniques supporting topics such as software development project management, people management, software requirements, system models, software design, verification and validation, software maintenance and enhancements, and ethical responsibilities. Software Engineering 4 CS356Big data analytics is a critical tool to enable corporations to gain and keep their competitive advantages. To be able to apply various computer technologies to either establish or execute business related data analysis applications is a key skill for any professional with a computer science degree. This course explores the fundamental computer technologies that are required for utilizing a big data analytics applications, including how to store, pre-process, query and visualize big data, as well as how to extract the useful business information through various highly efficient data analysis techniques running on various types of computer platforms connected by various types of communication networks. Foundations of Big Data Analytics 4 CS491This is the first course in a two course sequence that entails the end-to-end development of a software application in a project team setting. Students in this class will work in project teams. Every student will join only one project team and will assume at least one type of job function typical in a software development project, such as requirement collection and analysis, system function specification, architecture design, component design, prototyping, implementation, testing, project management, etc. Each project team typically consists of students from the same concentration. However, students from the different concentrations may be allowed to work in the same project team. The course reinforces the principles of requirements collection/analysis and software design using engineering processes, methods and tools. As members of a project team, students will work to define the problem or opportunity, identify constraints, collect the requirements, complete a high level design, and prepare a product prototype. Students also deliver a professional report and presentation. Computer Science Team Project I 4 CS492This is the second course in a two course sequence that entails the end-to-end development of a software application in a project team setting. The course reinforces students' abilities to choose and apply the right principles, engineering processes, methods, and tools to conduct productive software implementation and testing. As members of a project team, students will use the requirements, design specifications, and the prototype created in CS491 to implement and test the produced software application. Every project team will provide a live demo of the running application they have produced to other project teams, and students will be required to provide their feedback regarding the demos made by other project teams. Computer Science Team Project II 4 CSS150
This course provides the foundation for the study of computer system security. The course centers around the ten domains comprising the Information Security Common Body of Knowledge. Topics include access control systems, telecommunications and network security, cryptography, operations security and business continuity and disaster recovery planning. Students will be exposed to security management practices as well as security architecture and models security laws, investigations and ethics.
Introduction to Computer Security 4 IT204This course serves as an introduction for students to acquire a foundation in current data communication and networking technologies. The course provides an introduction to the hardware, media, Ethernet, addressing, IP Configuration, components, and connections of a network. Network concepts such as network topologies, and major protocols, as well as the basic functions of network administration and operation are covered. Fundamentals of Networking 4 MATH211This course introduces students to Discrete Math concepts and provides tools for logical thinking critical for success in computer science and information technology applications. Students will have the opportunity to become familiar with number systems, logic, Set Theory, sorting and searching algorithms, data structures, and counting theories. In addition, they will focus on problem solving strategies important for success in technical careers. Applications of Discrete Mathematics for Computer Systems and IT 4 MATH311An elementary coverage of statistical techniques is augmented at each step with the aid of technology for data processing and analysis in making inferences. Graphical presentation and statistical measures are studied, followed by basic probability concepts leading to binomial and normal distributions. Hypothesis testing is applied to drawing inferences for one and two population parameters. A graphing calculator or equivalent technology is required. Data Driven Statistics for Computer Systems and IT 4 Total Credit Hours: 88
Course Title Course Description Credit Hours Select 44 Credits from the list of courses as shown below 44 Total Credit Hours: 44
Courses- Elective ChoicesCredits
Course Title Course Description Credit Hours CS227This course introduces students to the basic features of the Linux operating system and the fundamentals of Linux programming. Through several hands-on exercises and projects, students will be exposed to the Linux utility commands, file system and directories, the Linux shells, and the shell script programming. Students need to demonstrate an intermediate level competency in Linux shell programming. Linux Programming 4 CS349This course introduces students to the software development processes and methods. The course explains the traditional Software Development Life Cycle (SDLC) encompassing requirements collection and analysis, design, implementation, testing and the maintenance phases. The course also introduces principles and techniques supporting topics such as software development project management, people management, software requirements, system models, software design, verification and validation, software maintenance and enhancements, and ethical responsibilities. Software Engineering 4 CS361This course introduces students to the theories, principles, and practices of user interface design for computer-based systems. Topics such as the human computer interaction, user interface design framework, platform consideration, user profiling, prototyping and usability testing will be covered. Principles of User Interface Design 4 CS367This course introduces students to the basic concepts of streaming data, which includes resources of streaming data, the characteristics and properties of various types of streaming data and the principles, models, methods and technologies that can be effectively applied for streaming data analytics. The course will examine the most common challenges of streaming data analytics—data collection, measurement, tracking, analysis, security, query processing and reporting. Students will conduct some case studies of the applications of streaming data analytics. Streaming Data Analytics 4 CS368This course introduces students to various practical techniques for conducting requirements elicitation, specification, analysis, and validation. The additional topics covered during this course include requirements traceability, software quality matrix, and use case scenario development. Fundamentals of Software Requirements 4 CS374This course introduces students to the fundamentals of software design. Software Design consists of a set of commonly used design principles, design paradigms, design models, and design patterns. Through several working projects, students will learn how to choose proper design principles, design paradigms, design models and design patterns based upon the requirements specification. Also students will explore how to make correct adjustments to a design when some requirements have been changed. Fundamentals of Software Design 4 CS378This course introduces students to the foundation, application background, design and implementation principles of NoSQL databases. The course illustrates the commonalities and differences between NoSQL databases and relational databases. The course covers how to best use different NoSQL databases in their working environments. The design of NoSQL-based applications in a variety of platforms such as Windows, Linux, and the Cloud is discussed. Students will develop procedures and processes to ensure scalability and availability of a NoSQL database based on the application requirements. NoSQL Databases 4 CS379This course introduces students to the foundations, commonly used algorithms and techniques, as well as various types of applications of Machine Learning which is a branch of Artificial Intelligence. The course discusses the strengths and weaknesses of different machine learning methodologies such as decision trees, neural networks, clustering, Naive Bayes, and regression based on the application requirements. Students will complete several small software assignments to implement Machine Learning functionality in a given application. Machine Learning 4 CS468This course introduces students to how to apply the agile software development approach (process and techniques) to develop Software as a Service by using a proper type of cloud (private, public, or hybrid) enabled web application framework. Students will explore the principles and highly effective methods to design, implement and testing as well as deploying a software on a public cloud as a service. Software Service Construction 4 CS469Software Quality Assurance (SQA) is a set of systematic activities that software testers must perform in order to ensure the quality of a software project. This course provides an overview of the techniques, approaches, and processes used for SQA. The course covers various types of tests, such as unit testing, usability testing, stress testing, integration testing, and system testing. Students will have the opportunity to apply SQA theory as they perform software tests. Software Quality Assurance 4 CS473This course introduces students to the foundations, commonly used algorithms, techniques and tools, as well as applications of data mining. The course will cover data collection and preparation, data classification, mining association rules, clustering, and the real-world applications where these techniques are used. Students will develop software to conduct data mining functionality based on the application requirements. Data Mining 4 CS479Data visualization techniques allow people to transform data into charts and tables that analyze complex data sets to generate insights, and to present analytical output as meaningful information. This course introduces students to data visualization principles, techniques, tools and best practices. The course covers how to organize data into manageable and logical components for analysis and visualization. Students will design and implement some data visualization functionality with a given interactive data visualization tool and the given application requirements of analyzing a complex data set. Data Visualization 4 CSS200
This course identifies and explains technical issues involved in network security. It also covers the fundamentals of wireless networking protocols, their security issues and threats. Covered topics include cryptography applications; access control; firewalls; key management network security issues; application, e-mail and middleware security; wireless local area network technologies.
Principles of Network Security 4 CSS250
This course addresses the concepts of risk management. The course explores general methodologies used to assess and manage risks to information security. The course also identifies the activities involved in the process of information security risk management for a business organization. Activities such as detection, recovery and damage control methods will be explored.
Security Risk Management 4 CSS280
This course covers ways that computers and networks are attacked by hackers using techniques and common utilities. Learners explore security threats and ways that system vulnerabilities are exploited to attack systems. Topics include Intrusion Detection Systems (IDS), ethical hacking techniques, sniffers, protocols, social engineering, vulnerability analysis, and penetration testing to ensure infrastructure security.
Ethical Hacking 4 CSS321
Software is essential to the operation of the commercial, government and military sectors of our nation. It is estimated that 90 percent of reported security incidents result from exploits against defects in the design or code of software. Therefore, ensuring the integrity of software is imperative to protecting the infrastructure of these sectors from threats and vulnerabilities. This course uses the Security Development Model, to identify and implement security activities that must be applied during each phase of a software development lifecycle model. Static analysis tools, testing strategies and auditing processes used for verification of secure code are applied in a test environment. Management’s role in the development of techniques for the enforcement of software assurance processes is explored.
Software Assurance 4 EM200Web development is a broad field and this class provides a basic foundation for follow-on web related classes. The focus for this class is to produce and manipulate actual code creation with HTML5 and CSS3 (or updated industry web standards) for structuring/presenting content on the web. W3C provides industry guidelines related to current web design practices and standards. Students employ, interpret, manipulate and generate HTML5 and CSS3 code using Notepad++ or TextWrangler (Mac platform) or other industry standard text editor. Students will learn the history of the Internet, the various iterations of HTML web mark-up language to the current version, HTML5. The use of Cascading Style Sheet (CSS) Language for formatting web content will be emphasized. The creation of complete one or more web sites to utilizing the variety of web element will be required . Introduction to Website Development 4 IT304The Computer Networks and Communications course reinforces the network objectives identified in IT204 course. It presents concepts of data communications and network design within the wide area networking including the operation of telecommunication systems, transmission media and communications hardware, network topologies, switching methods and protocols, security and existing network analysis. Computer Networks and Communications 4
Total Credit Hours: 183
Accreditations and Alignments
Outcomes for this program align with the educational standards of ABET.
Compare Related Areas of Study
Compare up to three additional degrees
Ways to Save
Program details are provided lower on the page.
Classes start January 2, 2024 *
*Start dates may vary by program and location.
CTU’s Bachelor of Science in Computer Science (BSCS) Degree Program is designed to provide knowledge, skills, and abilities relevant for pursuing potential opportunities in the workforce. This bachelor’s degree program emphasizes building computer software solutions through programming with algorithmic techniques. Students will explore a curriculum of broad and detailed knowledge on how a computer’s software works, and how to design and develop different levels and types of computer software. This program differs from the curriculums of the computer engineering program, which is focused on how to design and develop computer devices, and how to apply both computer hardware and software to design, develop, and support end-user-oriented business systems, services, or applications.
As you work to complete your BSCS, you will be immersed in courses where you will study these topics and much more: fundamentals of computer organization and architecture; computer algorithms, computer data structure, operating systems, Python programming, Java programming, C++ programming, SQL programming, mobile programming, parallel computing, and software development processes and methods.
Courses for the BSCS start online and at our Colorado Springs and Denver South campuses approximately every five weeks. Completion of the CTU admissions process will depend on how quickly you complete the steps in the CTU online application process. You may complete the application process over the phone with an advisor or you may go online. Once you’ve completed the online application, you may hear from an advisor within the following 24 hours to discuss the next steps toward starting your degree program.
The BSCS degree program consists of 183 credits. You may be eligible for transfer credit, which is evaluated on an individual basis. Not all credits are eligible to transfer. CTU Fast Track™ exams offer the opportunity to earn college credit for what you already know—allowing you to complete your degree up to 30% faster.*
* The ability to reduce time in school and/or reduce tuition towards the full cost of a degree program depends on the number of CTU Fast TrackTM exams successfully passed. Fast Track program credits are non-transferable. Not all programs are eligible for possible 30% reduction in time and money. Courses eligible are subject to change. Students should not rely on potential Fast Track savings or eligibility when making an enrollment decision.
Through innovative industry-relevant curricula and technology-enabled student-centered teaching, you will study through classroom learning and hands-on experience that aligns to industry standards and helps you work to develop skills that are applicable to the needs of the digital economy.