Department website: https://lcsee.statler.wvu.edu/
Nature of Program
Computer science is a discipline that involves the understanding and design of computational processes. The discipline ranges from a theoretical study of algorithms and information processing in general, to a practical design of efficient and reliable software that meets given specifications. This differs from most physical sciences, engineering included, that separate theoretical underpinnings of the science from applications within it. The computer science major prepares students for careers in fields such as software development, cybersecurity, machine learning, data analytics, virtual reality, and human computer interfaces. The computer science program is accredited by the Computing Accreditation Commission (CAC) of ABET, http://www.abet.org.
Program Educational Objectives
The Program Educational Objectives (PEO) of the Bachelor of Science in Computer Science (B.S.C.S.) program at West Virginia University is to produce graduates who will apply their knowledge and skills to achieve success in their careers in industry, research, government service or graduate study. It is expected that in the first five years after graduation our graduate will achieve success and proficiency in their profession, be recognized as leaders, and contribute to the well-being of society.
Student Outcomes
Upon graduation, all Bachelor of Science students in Computer Science will:
- Be exposed to a variety of programming languages and systems and will be proficient in programming in at least two languages
- Have knowledge of the basic principles and methods of programming language translation, formal languages, and automata
- Have knowledge of the basic principles of data structures, discrete mathematics and algorithms, and be able to apply this knowledge to problem solving in relevant application areas
- Be familiar with principles of computer organization, operating systems, and networks
- Have knowledge of software engineering principles and be able to design, implement, and analyze moderately complex and robust systems.
- Be able to communicate ideas effectively in writing
- Be able to communicate ideas effectively verbally
- Be able to work and learn effectively as members of a team
- Have knowledge of and a commitment to the social and ethical responsibilities of computing professionals
- Have experienced a well-rounded education in areas outside of the computer science major, with emphasis on the arts, sciences, and humanities
- Be familiar with laboratory procedures and use of the scientific method in at least two different physical or biological sciences
- Be familiar with advanced concepts of some specialized computer science areas
- Have knowledge of mathematics through differential and integral calculus, discrete mathematics, and probability and statistics
Click here to view the Suggested Plan of Study
Curriculum in Computer Science
General Education Foundations
Please use this link to view a list of courses that meet each GEF requirement.
NOTE: Some major requirements will fulfill specific GEF requirements. Please see the curriculum requirements listed below for details on which GEFs you will need to select.
General Education Foundations | ||
F1 - Composition & Rhetoric | 3-6 | |
Introduction to Composition and Rhetoric and Composition, Rhetoric, and Research | ||
or ENGL 103 | Accelerated Academic Writing | |
F2A/F2B - Science & Technology | 4-6 | |
F3 - Math & Quantitative Skills | 3-4 | |
F4 - Society & Connections | 3 | |
F5 - Human Inquiry & the Past | 3 | |
F6 - The Arts & Creativity | 3 | |
F7 - Global Studies & Diversity | 3 | |
F8 - Focus (may be satisfied by completion of a minor, double major, or dual degree) | 9 | |
Total Hours | 31-37 |
Please note that not all of the GEF courses are offered at all campuses. Students should consult with their advisor or academic department regarding the GEF course offerings available at their campus.
Curriculum Requirements
To receive a degree of bachelor of science in computer science, a student must meet the University’s undergraduate degree requirements, take all the courses indicated below, and attain a grade point average of 2.25 or better for all Lane Department of Computer Science and Electrical Engineering courses, in all WVU courses, and overall. If a Lane Department of Computer Science and Electrical Engineering course is repeated, only the last grade received is used to compute the major grade point average, and the course credit hours are counted only once. This requirement assures that the student has demonstrated overall competence in the major.
All CPE, CS, MATH, and STAT courses must be completed with a grade of C- or better. | ||
Non-Computer Science Core | ||
COMM 112 | Small Group Communication (GEF 4) | 3 |
ENGR 101 | Engineering Problem Solving 1 | 2 |
ENGR 191 | First-Year Seminar | 1 |
Calculus I (GEF 3): | 4 | |
Calculus 1 | ||
Calculus 1a with Precalculus and Calculus 1b with Precalculus | ||
MATH 156 | Calculus 2 (GEF 8) | 4 |
MATH 251 | Multivariable Calculus (Minimum Grade of C- Required) | 4 |
STAT 215 | Introduction to Probability and Statistics (Minimum grade of C- required) | 3 |
ENGL 305 | Technical Writing | 3 |
Lab Science I (GEF 2B) & II (GEF 8): Select one of the following 8-hr sequences | 8 | |
Principles of Biology and Introductory Physiology | ||
Fundamentals of Chemistry and Fundamentals of Chemistry | ||
Principles of Chemistry and Principles of Chemistry | ||
General Physics and General Physics | ||
Planet Earth and Planet Earth Laboratory and Earth Through Time and Earth Through Time Laboratory | ||
Environmental Geoscience and Environmental Geoscience Laboratory and Earth Through Time and Earth Through Time Laboratory | ||
Lab Science III (GEF 8): Choose an additional 4-hr lab science from a second discipline | 4 | |
Principles of Biology | ||
Fundamentals of Chemistry | ||
Principles of Chemistry | ||
Planet Earth and Planet Earth Laboratory | ||
Environmental Geoscience and Environmental Geoscience Laboratory | ||
General Physics | ||
Major requirement Extra GEF 2-7 | 3 | |
Free Electives (200 level or higher) | 6 | |
Computer Science Core Requirements | ||
CPE 271 | Introduction to Digital Logic Design | 3 |
CPE 272 | Digital Logic Laboratory | 1 |
Select one of the following: | 3 | |
Microprocessor Systems and Microprocessor Laboratory | ||
Computer Architecture | ||
CS 110 | Introduction to Computer Science | 4 |
CS 111 | Introduction to Data Structures | 4 |
CS 210 | File and Data Structures | 4 |
CS 220 | Discrete Mathematics | 3 |
CS 221 | Analysis of Algorithms | 3 |
CS 230 | Introduction to Software Engineering | 4 |
CS 310 | Principles of Programming Languages | 3 |
CS 350 | Computer System Concepts | 3 |
CS 410 | Compiler Construction | 3 |
CS 450 | Operating Systems Structure | 3 |
CS 453 | Data and Computer Communications | 3 |
CS 480 | Capstone Project - Design (Fulfills Writing and Communications Skills Requirement) | 2 |
CS 481 | Capstone Project - Implementation | 3 |
Concentration Areas (CA) | 15 | |
Choose two courses from two CAs and one course from the remaining CA. | ||
CA 1: Theory of Computing | ||
Design of Algorithms | ||
Automata Theory | ||
Discrete Mathematics 2 | ||
CA2: Software and Knowledge Engineering | ||
Advanced Software Engineering | ||
Database Design and Theory | ||
Introduction to Computer Graphics | ||
Artificial Intelligence | ||
Game Development | ||
CA3: Computer Systems | ||
Computer Incident Response | ||
Cybersecurity Principles and Practice | ||
CS 493 | Concurrent Programming | |
GEF Electives 1, 5, 6, 7 | 15 | |
Total Hours | 124 |
Suggested Plan of Study
It is important for students to take courses in the order specified as closely as possible; all prerequisites and concurrent requirements must be observed. A typical B.S. degree program that completes degree requirements in four years is as follows.
First Year | |||
---|---|---|---|
Fall | Hours | Spring | Hours |
CS 110 | 4 | CS 111 | 4 |
COMM 112 (GEF 4) | 3 | ENGL 101 (GEF 1) | 3 |
ENGR 101 | 2 | MATH 156 (GEF 8) | 4 |
ENGR 191 | 1 | GEF 5 | 3 |
MATH 155 (GEF 3) | 4 | Lab Science II (GEF 8) | 4 |
Lab Science I (GEF 2) | 4 | ||
18 | 18 | ||
Second Year | |||
Fall | Hours | Spring | Hours |
CS 210* | 4 | CPE 271 | 3 |
CS 220* | 3 | CPE 272 | 1 |
ENGL 102 (GEF 1) | 3 | CS 230 | 4 |
MATH 251 | 4 | STAT 215 | 3 |
Lab Science III (GEF 8) | 4 | GEF 6 | 3 |
18 | 14 | ||
Third Year | |||
Fall | Hours | Spring | Hours |
CS 221 | 3 | CS 310* | 3 |
CS 350 | 3 | CS 450* | 3 |
CS 455 (or CPE 310/311) | 3 | Concentraion Area Course | 3 |
Concentration Area Course | 3 | 2xx Free Elective | 3 |
GEF 7 | 3 | ENGL 305 | 3 |
15 | 15 | ||
Fourth Year | |||
Fall | Hours | Spring | Hours |
CS 410* | 3 | CS 481 | 3 |
CS 480 | 2 | Concentration Area Course | 3 |
Two Concentration Area Courses | 6 | 2xx Free Elective | 3 |
CS 453 | 3 | Extra GEF (2-7) | 3 |
14 | 12 | ||
Total credit hours: 124 |
* | Offered once per year in the semester shown. |
Area of Emphasis in Cybersecurity
A minimum grade of C- is required in each course. | ||
CS 453 | Data and Computer Communications | 3 |
CS 465 | Cybersecurity Principles and Practice | 3 |
CYBE 366 | Secure Software Development | 3 |
CYBE 467 | Practicing Cybersecurity: Attacks & Countermeasures | 3 |
Select one of the following: | 3 | |
Computer Incident Response | ||
Host Based Cyber Defense | ||
Total Hours | 15 |
Program Educational Objectives
The Program Educational Objectives (PEO) of the Bachelor of Science in Computer Science (B.S.C.S.) program at West Virginia University is to produce graduates who will apply their knowledge and skills to achieve success in their careers in industry, research, government service or graduate study. It is expected that in the first five years after graduation our graduate will achieve success and proficiency in their profession, be recognized as leaders, and contribute to the well-being of society.
Student Outcomes
Upon graduation, all Bachelor of Science students in Computer Science will:
- Be exposed to a variety of programming languages and systems and will be proficient in programming in at least two languages
- Have knowledge of the basic principles and methods of programming language translation, formal languages, and automata
- Have knowledge of the basic principles of data structures, discrete mathematics and algorithms, and be able to apply this knowledge to problem solving in relevant application areas
- Be familiar with principles of computer organization, operating systems, and networks
- Have knowledge of software engineering principles and be able to design, implement, and analyze moderately complex and robust systems.
- Be able to communicate ideas effectively in writing
- Be able to communicate ideas effectively verbally
- Be able to work and learn effectively as members of a team
- Have knowledge of and a commitment to the social and ethical responsibilities of computing professionals
- Have experienced a well-rounded education in areas outside of the computer science major, with emphasis on the arts, sciences, and humanities
- Be familiar with laboratory procedures and use of the scientific method in at least two different physical or biological sciences
- Be familiar with advanced concepts of some specialized computer science areas
- Have knowledge of mathematics through differential and integral calculus, discrete mathematics, and probability and statistics
Computer Science Minor
MINOR CODE - U002
Any student may take a minor in computer science by taking the following courses and making a minimum overall GPA of 2.0 in all courses required for the minor and a C or higher in each course.
A minimum overall GPA of 2.0 and a C or higher must be earned in all required courses. | ||
CS 110 & CS 111 | Introduction to Computer Science and Introduction to Data Structures | 8 |
Select one of the following: | 3 | |
File and Data Structures | ||
Discrete Mathematics | ||
Introduction to Software Engineering | ||
CS 310 & CS 350 | Principles of Programming Languages and Computer System Concepts | 6 |
At least one CS 400-level course | 3 | |
Total Hours | 20 |
CS 101. Intro to Computer Applications. 4 Hours.
Introduction to spreadsheets and databases for problem-solving in disciplines such as math, science, engineering, business, social sciences, behavioral sciences, and environment: using computer applications to create technical reports and presentations.
CS 110. Introduction to Computer Science. 4 Hours.
PR: (MATH 126 and MATH 128) or MATH 129 or MSAT score of 600 math ACT score of 26. Programming and design; simple data types, variables, and expressions; program modularization through procedures, functions, and classes; repetition, selection through control structures; structured data types including arrays and records; application. (3 hr. lec., 1 hr. lab.).
CS 111. Introduction to Data Structures. 4 Hours.
PR: CS 110 with a minimum grade of C-. Software development with abstract data types; elementary data structures including lists, stacks, queues and binary trees. Object-oriented design and development, dynamic allocation, recursion, design methodology. (3 hr. lec., 2 hr. lab.).
CS 191. First-Year Seminar. 1-3 Hours.
Engages students in active learning strategies that enable effective transition to college life at WVU. Students will explore school, college and university programs, policies and services relevant to academic success. Provides active learning activities that enable effective transition to the academic environment. Students examine school, college and university programs, policies and services.
CS 210. File and Data Structures. 4 Hours.
PR: CS 111 with a minimum grade of C- or consent for non-majors. Complex internal data structures including hashing, record collision and overflow techniques. Extension of internal data structures to external storage; indexed structures, external sorting and merging, direct access methods.
CS 220. Discrete Mathematics. 3 Hours.
PR: (CS 110 with a minimum grade of C- or CS 122) and (MATH 154 or MATH 155). Mathematical concepts used in computer science such as sets, relations, functions, counting principles, graphs, trees, and automata; introduction to basic graph algorithms and applications. (3 hr. lec.).
CS 221. Analysis of Algorithms. 3 Hours.
PR: WVU sections require CS 111 with a grade of C- or better and CS 220 with a grade of C- or better and MATH 156, WVUIT sections require CS 201 and CS 220 and MATH 156. Introduction to algorithm design and analysis. Growth rate of functions and asymptotic notation. Divide-and-conquer algorithms and recurrences; searching and sorting; graph algorithms including graph searching, minimum spanning trees, and shortest paths.
CS 230. Introduction to Software Engineering. 4 Hours.
PR: CS 111 with a minimum grade of C-. Techniques and methodologies of software engineering; specification, modeling,requirement analysis and definition, design, quality assurance, testing, reuse, development tools and environments.
CS 293. Special Topics. 1-6 Hours.
PR: Consent. Investigation of topics not covered in regularly scheduled courses.
CS 310. Principles of Programming Languages. 3 Hours.
PR: CS 111 with a minimum grade of C- or CS 201. Theoretical and practical aspects of languages including internal representations, run-time environments, run-time storage management; historical, current, special purpose and experimental languages; finite-state automata, regular expressions and context-free grammars, language translation, semantics and paradigms. (3 hr. lec.).
CS 350. Computer System Concepts. 3 Hours.
PR: CS 111 with a minimum grade of C-. System software organization; operating system concepts including processes, threads, memory management, and the user interface; elementary network concepts. (Equivalent to CS 355).
CS 410. Compiler Construction. 3 Hours.
PR: WVU sections require CS 310 with a C- or better or consent for non-majors, WVUIT sections require CS 310 or consent for non-majors. Theory and practice of the construction of programming language translators; scanning and parsing techniques, semantic processing, runtime storage organization, and code generation; design and implementation of interpreter or compiler by students. (3 hr. lec.).
CS 420. Design of Algorithms. 3 Hours.
PR: CS 221 with a C- or better and completed Pre-CS or consent for non-majors. Algorithm design paradigms: divide-and-conquer, dynamic programming, greedy. Advanced data structures: balanced search trees, mergeable heaps, union-find. Introduction to computational complexity. Selected topics such as backtracking, branch-and-bound, amortized analysis, approximation algorithms.
CS 422. Automata Theory. 3 Hours.
PR: WVU sections require CS 220 with a minimum of C- or better or consent for non-majors, WVUIT sections require CS 220 or consent for non-majors. Introduction to formal languages, grammars, and automata; regular expressions and finite automata, context- free and context-sensitive languages; push down and linear- bounded automata; turning machines and recursively enumerable languages.
CS 426. Discrete Mathematics 2. 3 Hours.
PR: CS 221 with a C- or better or consent for non-majors. Applications of discrete mathematics to computer science. Selected topics from algorithmic graph theory, combinatorics, and order theory.
CS 430. Advanced Software Engineering. 3 Hours.
PR: CS 230 with a C- or better or CS 222 or consent for non-majors. Engineering process, project economics, project organizational and management issues, configuration management. (3 hr. lec.).
CS 440. Database Design and Theory. 3 Hours.
PR: CS 230 with minimum grade of C- or consent for non-majors. Database terminology, SQL, stored procedures, the relational and object-relational data model, triggers, and entity-relationship model.
CS 450. Operating Systems Structure. 3 Hours.
PR: CS 350 with a C- or better or CS 355. Support of computer components; device management and interrupts, process scheduling, file management, complete OS structure, OS development and debugging, configuration management, and performance testing. (3 hr. lec.).
CS 453. Data and Computer Communications. 3 Hours.
PR: (CS 350 with a C- or better or CS 355) or consent for non-majors. or consent for non-majors. An in-depth study of the Internet, networking fundamentals, protocols, algorithms, and principles of distributed computing, introduction to network security and management.
CS 455. Computer Architecture. 3 Hours.
PR: CPE 271. Computer structure; emphasis on implications for software design; evolution of computers; elementary digital logic; CPU structures; memory and I/O structures; pipelining and memory management; introduction to parallel and high-level architectures. (3 hr. lec.).
CS 465. Cybersecurity Principles and Practice. 3 Hours.
PR: WVU and PSC sections require CS 350 with a minimum grade of C- and WVUIT sections require CS 321. Covers the principles and practice of cybersecurity. Addresses encryption; malicious code, spyware, and spam; authentication and access control; database security; operating system security; network security; and social engineering. Provides comprehensive overview of the cybersecurity threats, technologies for information assurance, and engineering approaches to build and maintain secure cyber space.
CS 470. Introduction to Computer Graphics. 3 Hours.
PR: CS 201 or CS 210 with a minimum grade of C- or consent for non-majors. Overview of 3D graphics hardware and gaming consoles; focus on developing 3D graphics software; fundamental algorithms for real-time 3D graphics with focus on game engine component development; introduction to three-dimensional game engine development.
CS 472. Artificial Intelligence. 3 Hours.
PR: CS 222 or CS 230 with a minimum grade of C- or consent for non-majors. Survey of AI techniques, heuristic search, game playing, and knowledge representation schemes: logic, semantic net, frames, rule-based; natural language processing, advanced AI techniques/systems: planning, blackboard architecture, neural net model; AI implementation. (3 hr. lec.).
CS 473. Data Mining. 3 Hours.
PR: (CS 230 with a C- or better or CS 222) and (CS 350 with a C- or better or CS 355). Presents the theory practice of industrial data mining. Combining pragmatics with theory, students will learn to select appropriate data mining methods for industrial applications.
CS 475. Game Development. 3 Hours.
PR: CS 222 or (CS 220 and CS 310 with a minimum grade of C- in each). Design and implementation of games using innovative technology in human-computer interfaces. Principles of game design, physiology and psychology of each of the five senses, and technologies for delivering sensory stimuli.
CS 480. Capstone Project - Design. 2 Hours.
PR: ENGL 102 or ENGL 103 and consent. Penultimate semester. Group senior design projects with individual design assignments appropriate to student's discipline. Complete system-level designs of the subsequent semester's project presented in written proposals and oral presentations. (Equivalent to BIOM 480, CPE 480, and EE 480.) (2 hr. lec., 1 hr. conf.).
CS 481. Capstone Project - Implementation. 3 Hours.
PR: CS 480. Continuation of CS 480. Detailed design and implementation of the system including choice of components, algorithm development, interfacing, troubleshooting, working in groups, and project management. Also covers professional topics, including ethics, liability, safety, socio-legal issues, risks and employment agreements. (1 hr. lec., 1 hr. conf., 2 hr. lab.).
CS 490. Teaching Practicum. 1-3 Hours.
PR: Consent. Teaching practice as a tutor or assistant.
CS 491. Professional Field Experience. 1-18 Hours.
PR: Consent. (May be repeated up to a maximum of 18 hours.) Prearranged experiential learning program, to be planned, supervised, and evaluated for credit by faculty and field supervisors. Involves temporary placement with public or private enterprise for professional competence development.
CS 492. Directed Study. 1-3 Hours.
Directed study, reading, and/or research.
CS 493. Special Topics. 1-6 Hours.
PR: Consent. Investigation of topics not covered in regularly scheduled courses.
CS 494. Seminar. 1-3 Hours.
PR: Consent. Presentation and discussion of topics of mutual concern to students and faculty.
CS 495. Independent Study. 1-6 Hours.
Faculty supervised study of topics not available through regular course offerings.
CS 496. Senior Thesis. 1-3 Hours.
PR: Consent.
CS 497. Research. 1-6 Hours.
Independent research projects.