Computer Science

http://www.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 & Rhetoric3-6
Introduction to Composition and Rhetoric
and Composition, Rhetoric, and Research
Accelerated Academic Writing
F2A/F2B - Science & Technology4-6
F3 - Math & Quantitative Skills3-4
F4 - Society & Connections3
F5 - Human Inquiry & the Past3
F6 - The Arts & Creativity3
F7 - Global Studies & Diversity3
F8 - Focus (may be satisfied by completion of a minor, double major, or dual degree)9
Total Hours31-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.0 or better for all Lane Department of Computer Science and Electrical Engineering courses. 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 112Small Group Communication (GEF 4)3
ENGR 101Engineering Problem Solving 12
ENGR 199Orientation to Engineering1
Calculus I (GEF 3):4
Calculus 1
Calculus 1a with Precalculus
and Calculus 1b with Precalculus
MATH 156Calculus 2 (GEF 8)4
MATH 251Multivariable Calculus (Minimum Grade of C- Required)4
STAT 215Introduction to Probability and Statistics (Minimum grade of C- required)3
ENGL 305Technical Writing3
Lab Science I (GEF 2B) & II (GEF 8): Select one of the following 8-hr sequences8
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 discipline4
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-73
Free Electives (200 level or higher)6
Computer Science Core Requirements
CPE 271Introduction to Digital Logic Design3
CPE 272Digital Logic Laboratory1
Select one of the following:3
Microprocessor Systems
and Microprocessor Laboratory
Computer Architecture
CS 110Introduction to Computer Science4
CS 111Introduction to Data Structures4
CS 210File and Data Structures4
CS 220Discrete Mathematics3
CS 221Analysis of Algorithms3
CS 230Introduction to Software Engineering4
CS 310Principles of Programming Languages3
CS 350Computer System Concepts3
CS 410Compiler Construction3
CS 450Operating Systems Structure3
CS 453Data and Computer Communications3
CS 480Senior Design (Fulfills Writing and Communications Skills Requirement)2
CS 481Senior Project3
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
Introduction to Cybersecurity
CS 493
Concurrent Programming
GEF Electives 1, 5, 6, 715
Total Hours124

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
FallHoursSpringHours
CS 1104CS 1114
COMM 112 (GEF 4)3ENGL 101 (GEF 1)3
ENGR 1012MATH 156 (GEF 8)4
ENGR 1991GEF 53
MATH 155 (GEF 3)4Lab Science II (GEF 8)4
Lab Science I (GEF 2)4 
 18 18
Second Year
FallHoursSpringHours
CS 210*4CPE 2713
CS 220*3CPE 2721
ENGL 102 (GEF 1)3CS 2304
MATH 2514STAT 2153
Lab Science III (GEF 8)4GEF 63
 18 14
Third Year
FallHoursSpringHours
CS 2213CS 310*3
CS 3503CS 450*3
CS 455 (or CPE 310/311)3Concentraion Area Course3
Concentration Area Course32xx Free Elective3
GEF 73ENGL 3053
 15 15
Fourth Year
FallHoursSpringHours
CS 410*3CS 4813
CS 4802Concentration Area Course 3
Two Concentration Area Courses6 2xx Free Elective3
CS 4533Extra GEF (2-7)3
 14 12
Total credit hours: 124
*

Offered once per year in the semester shown.

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 course3
Total Hours20

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 210. File and Data Structures. 4 Hours.

PR: CS 111. 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 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. Introduction to Cybersecurity. 3 Hours.

PR: CS 350 with a C- or better or CS 321 or consent. Covers the fundamentals of cybersecurity, including encryption, malicious code, authentication and access control, database security, operating system security, and network security. Provides students with a comprehensive overview of the cybersecurity threats, technologies for information assurance, and engineering approaches to build and maintain secure computer systems and networks.

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. Senior Design. 2 Hours.

PR: ENGL 102 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. Senior Project. 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.