What can I do with a BSCS degree?
Upon graduation, students with a Bachelor of Science in Computer Science have a wide range of career opportunities available to them. They can work as software developers, systems analysts, data scientists, network administrators, cybersecurity specialists, software engineers, artificial intelligence researchers, and more. Additionally, some graduates choose to pursue further education by enrolling in master's or doctoral programs in computer science or related fields.
How long does it take to study an BSCS?
Full-time students can complete the program in 4 years; part-time student may complete it in 4-6 years.
Why Study at WCU?
The Bachelor of Science in Computer Science is an undergraduate degree program that focuses on the study of computers, computational systems, and their applications. It combines theoretical knowledge with practical skills to prepare students for careers in various areas of computer science.
The program typically takes four years to complete and usually starts with foundational courses that cover essential topics such as programming, data structures, algorithms, computer organization, and software development. These courses lay the groundwork for more advanced studies. As students progress through the program, they have the opportunity to specialize in specific areas of computer science based on their interests.
Some common specialization areas include artificial intelligence, data science, computer graphics, human-computer interaction, software engineering, cybersecurity, and computer networks.
A Bachelor of Science in Computer Science equips students with a solid foundation in computer science principles, problem-solving skills, and practical experience necessary for a successful career in the field.
REQUIRED COURSES
Fundamentals of Computer Systems
4
Structured Computer Organization
4
Software Engineering 1
4
Introduction to Cloud Computing
4
Introduction to Computing
4
Technology in the Global Arena
4
Net-centric Computing
4
Intro to Programming
4
Computer Programming 1
4
Computer Programming 2
4
Computer Programming 3
4
Data Structures
4
Principles of Programming Languages
4
Operating Systems Principles
4
Database Management
4
Professional and Technical Writing for CS
4
Discrete Structures OR MAD2104 Discrete
4
Introduction to Theory of Algorithms
4
Program Requirements:
Required Courses = 72 units
Total Elective Courses = 60 units
General Education = 48 units
Total = 180 units
ELECTIVE COURSES
Artificial Intelligence
4
Natural Language Processing
4
Data Mining
4
Software Engineering
4
Software Testing
4
Windows Programming
4
Advanced Windows Programming
4
Introduction to Parallel Computing
4
Algorithm Techniques
4
Advanced UNIX Programming
4
Survey of Database Systems
4
Logic for Computer Science
4
Computational Geometry
4
Database Administration
4
Graph Theory
4
REQUIRED COURSES
Fundamentals of Computer Systems
This course will provide students with an understanding of computers and how they operate as well as a basic
understanding of how to manage and maintain computers and computer systems. These skills will provide students with the ability to configure computers and solve computer problems.
Structured Computer Organization
This course is the study of how the various components of Computer Systems fit together and interact. This
course will focus in particular on the interaction of computer architecture (high-level hardware design) with compilers and operating systems.
Software Engineering 1
The course is designed to present software engineering concepts and principles in parallel with the software
development life cycle. You will also learn about project management for the purpose of delivering high-quality software that satisfies customer needs and is within budget
Introduction to Cloud Computing
This course provides a hands-on comprehensive study of Cloud concepts and capabilities across the
various Cloud service models including Infrastructure as a Service (IaaS), Platform as a Service (PaaS), Software as a Service (SaaS), and Business Process as a Service (BPaaS).
Introduction to Computing
This course, using both lecture and laboratory practice, introduces students to basic computer concepts
in hardware, software, networking, computer security, programming, database, e-commerce, decision support systems, and other emerging technologies such as blogs, wiki, RSS, etc.
Technology in the Global Arena
This course aims to introduce students to the legal, social, and ethical issues that are brought about by the globally-
connected Internet and continuing increases in computing power.
Net-centric Computing
This course deals with the structure, design and implementation of applications enabled by networking
technology. This course will examine the fundamentals of network programming and the client-server architecture as well as exploring the role of protocols, authentication, distributed objects and security
Intro to Programming
This course teaches fundamental concepts and terminology of computer programming. Students will develop
skills in designing and writing simple computer programs. Able to design and implement basic programming solutions including statements, control structures, and methods. • Able to develop simple GUI programs.
Computer Programming 1
This course teaches fundamental concepts and terminology of computer programming. Students will develop
skills in designing and writing simple computer programs. The course requires no programming background. Able to design and implement basic programming solutions including statements, control structures, and methods.
Computer Programming 2
Students explore more advanced concepts in computer science through Python. Students learn modular
design, analyze data from files, explore object-oriented programming, interface with a hardware device, and implement graphical user interfaces.
Computer Programming 3
The course covers the principles and use of object-oriented programming as exemplified in Java. Students will
study searching, sorting, and the relative efficiencies algorithms implementing these tasks. Students will study recursively implemented algorithms, lists, stacks, queues, and tress together with further study of abstract data types. Students will complete a large programming project.
Data Structures
Topics include elementary data structures, (including arrays, stacks, queues, and lists), advanced data
structures (including trees and graphs), the algorithms used to manipulate these structures, and their application to solving practical engineering problems.
Principles of Programming Languages
To convey the central principles in specifying, designing, and implementing programming languages.
This course focuses on the principles of programming languages. Topics covered include programming paradigms, concepts of programming languages, formal syntax and semantics, and language implementation issues.
Operating Systems Principles
This course teaches the basic operating system abstractions, mechanisms, and their
implementations. The core of the course contains concurrent programming (threads and synchronization), inter process communication, and an introduction to distributed operating systems.
Database Management
The course, Database Management Systems, introduces the management of database systems. The course
emphasizes the understanding of the fundamentals of relational systems including data models, database architectures, and database manipulations.
Professional and Technical Writing for CS
This course introduces students to the expectations of written and verbal communication in the
computer emphasizes science profession and explores the ways in which technology and media help shape professional communication.
Discrete Structures OR MAD2104 Discrete Mathematics
The purpose of this course is to understand and use (abstract) discrete structures that are
backbones of computer science. In particular, this class is meant to introduce logic, proofs, sets, relations, functions, counting, and probability, with an emphasis on applications in computer science.
Introduction to Theory of
Algorithms
This course is a traditional introduction to the theory of algorithms for computer science students. It covers
methods to construct algorithms and to analyze algorithms mathematically for correctness and efficiency (e.g., running time and space used).
ELECTIVE COURSES
Artificial Intelligence
This course is a research field that studies how to realize the intelligent human behaviors on a computer. The
main research topics in AI include problem solving, reasoning, planning, natural language understanding, computer vision, automatic programming, machine learning, and so on.
Natural Language Processing
This course is to present an introduction to Natural Language Processing (NLP, a.k.a. computational
linguistics), the study of computing systems that can process, understand, or communicate in human language.
Data Mining
The course provides you the opportunity to learn concepts, principles, and skills to practice and
engage in scalable pattern discovery methods on massive data; discuss pattern evaluation measures; study methods for mining diverse kinds of frequent patterns, sequential patterns, and subgraph patterns; and study.
Software Engineering
This course is a discipline that allows us to apply engineering and computer science concepts in the development
and maintenance of reliable, usable, and dependable software. … The course is designed to present software engineering concepts and principles in parallel with the software development life cycle.
Software Testing
Verification and validation of software products following strict quality control rules. Beginning with code inspection
and code walkthrough, the class will survey test methodologies primarily based on the phases of software development. Major focus will be on unit testing for both BlackBox Testing (BBT) and WhiteBox Testing (WBT) approaches. The coverage will extends to Integration Testing, System Testing and eventually Regression testing. Methodologies for Object Oriented testing will also be covered and practiced. Test metrics will be collected and analyzed for comparison and monitoring of software quality improvement.
Windows Programming
This course emphasizes the fundamentals of structured design, development, testing, implementation,
and documentation. Includes language syntax, data and file structures, input/output devices, files and databases
Advanced Windows Programming
The purpose of this course is to train serious windows programmers by covering advanced features of
Windows Operating Systems. The topic to cover includes but not limited to RPC, database connectivity, and computer graphics. This course is highly practically oriented by covering the subjects in close parallel with hands-on application in the lab. After this course, students will get the mastery of the operating system and the knowledge will be extended to the later releases of Windows OS and other OS such as Unix, Linux and Mac-OS.
Introduction to Parallel Computing
With every smartphone and computer now boasting multiple processors, the use of functional ideas to facilitate
parallel programming is becoming increasingly widespread. In this course, you’ll learn the fundamentals of parallel programming, from task parallelism to data parallelism
Algorithm Techniques
Students study techniques for designing algorithms and for analyzing the time and space efficiency of
algorithms. The algorithm design techniques include divide-and-conquer, greedy algorithms, dynamic programming, randomized algorithms and parallel algorithms
Advanced UNIX Programming
This class covers some of the more advanced topics in UNIX™ programming such as working with file
and directory functions, system I/O, understanding signals, working with and synchronizing Pthreads, and TCP client and server design
Survey of Database Systems
This course in database covers basic concepts and techniques in the implementation of a DBMS, notably
data storage and index structures, query processing, concurrency control and transaction management. The course also introduces students to advanced research topics
Logic for Computer Science
This course introduces mathematical logic from the perspective of computer science, emphasizing decidable
fragments of logic and decision procedures. Course Objectives. The goal of the course is to prepare students for using logic as a formal tool in computer science
Computational Geometry
This course introduces students to the essentials of Computational Geometry and presents an in-
depth study of the fundamental geometric structures and techniques used in this field
Database Administration
As each student is required to have a working knowledge of the Relational Database Model as well as SQL and
PL/SQL programming skills, this course focuses on the administration of a DBMS including creation, management, maintenance, and operation of a database management system
Graph Theory
This course is a study of graphs, trees and networks. … Course Objectives: The successful student will know the
definitions of relevant vocabulary from graph theory and combinatorics, and know the statements and proofs of many of the important theorems in the subject, and be able to perform related calculations