B.S. in Computer Science Student Handbook

Updated 9/4/2026

Overview

Department Contact Information:

Department of Computer Science
25 University Ave., Rm 150
West Chester University
West Chester, PA 19383

Office Manager:

Margaret Connors
mconnors@wcupa.edu

Phone:

610-436-2691

Fax:

610-436-3530

Department Chairperson:

Dr. Liu Cui

Assistant Chairperson:

Vacant

Accelerated B.S./M.S. Coordinator

Dr. Md Amiruzzaman

Internship Coordinator

Dr. Richard Burns

 

Please remember to see your Academic Advisor at least once each semester to review your schedule for the following semester and to have your scheduling flag (i.e. “Advisor Permission Hold”) removed so that you are permitted to schedule your classes. Let your advisor know if the semester is going well or if you are encountering difficulties. Discuss the topic areas of computer science that are of interest to you. Seek guidance on internships, research, potential graduate schools, and your career.

Disclaimer: This Handbook does not take the place of the Undergraduate Catalog nor replace face-to-face advisement conducted with Computer Science professors.

Faculty of the Department of Computer Science

About the Computer Science Department

The Department aims to prepare undergraduate students for a career in the field of Computer Science and its applications as well as further study in Computer Science at the graduate level. The minimum requirements for the Bachelor of Science degree are specified in this Handbook, as well as prerequisite information, a sample four-year plan, and other useful information.

All administrative functions of the Computer Science Department are housed in 25 University Ave, which we share with the Mathematics Department, as well as the Registrar, Bursar, and Financial Aid offices. Most of the Department’s courses are offered in classrooms and laboratories in this building as well as in Anderson Hall.

This Handbook also contains information including the Department’s Accelerated B.S./M.S. five-year program, as well as the Computer Security Certificate for which transcript recognition is awarded.

The Department is proud to acknowledge two accreditations: (1) the curriculum of our B.S. in Computer Science degree is accredited by the Accreditation Board for Engineering and Technology, Inc. (ABET) and (2) our Certificate in Computer Security is accredited by the National Security Agency (NSA) and the Department of Homeland Security.

Computer Labs: UNA 141, UNA 147

There are two computer laboratory classrooms that are housed within the Department:
25 University Ave rooms 141 and 147. You are free to use these computers when a class is not in session. Classroom schedules will be posted outside of the door. Access to these laboratories is granted by swiping your WCU identification card. See Ms. Connors, our department’s Administrative Assistant, to have your WCU identification card activated for these laboratory classrooms.

  • Rm 141 is configured as a lecture-style classroom with Windows machines. You are free to use these computers when a class is not in session. Your WCU credentials provide access for logging in.
  • Rm 147 is configured as a lecture-style classroom with Mac machines. You are free to use these computers when a class is not in session. Please see Dr. Ngo, our department’s computing coordinator, if you would like computer access.

Common Room: UNA 139

The Department has a common room in 25 University Ave room 139 to promote collaboration and discussion between both students and faculty. Access to these laboratories is granted by swiping your WCU identification card. See Ms. Connors, our department’s Administrative Assistant, to have your WCU identification card activated. Please respect your noise level in this room as academic classroom and offices are adjacent.

Expectations of Academic Integrity

The Ram’s Eye View Undergraduate Catalog details the University’s policy on academic integrity. This document can be found online. Additionally, the Department of Computer Science has adopted the following policy.

Computer Science Department Dishonesty Policy:

The Computer Science Committee has adopted the following policies with regards to academic dishonesty in Computer Science classes:

  • A student found to be academically dishonest in an assignment will receive zero for that assignment if it is his/her first offense in that class [the course, not the class period], but an F for the course if it is for his/her second offense in that class [the course].
  • A student found to be academically dishonest in a test will receive the grade of F in that class [the course].
  • For the purposes of this document on academic dishonesty, every form or method of evaluation in a class will be considered as being of one of two types: an assignment or a test. Assignments include homework assignments, and short quizzes [and labs]. Tests include final exams and major exams. An instructor has, subject to these guidelines, the discretion to determine the type of any other form of evaluation, such as a project, in his/her class.
  • A student who has received the grade of F in a course because of academic dishonesty and who wants or is required to repeat that course may re-take that course only as a regularly scheduled course that is open to the student community in general. In exceptional circumstances, this condition may be revoked, but only by an explicit action to that effect by the full Computer Science Committee and only then on a case by case basis.
  • The term academic dishonesty is used throughout in the sense provided by the rules and regulations of West Chester University. The following is taken from The Ram's Eye View of 1997-1998: “Academic dishonesty as it applies to students includes but is not limited to academic cheating; plagiarism; the sale, purchase, or exchange of term papers or research papers; falsification of information which includes any form of providing false or misleading information, written, electronic, or oral; or of altering or falsifying official institutional records. Plagiarism is defined as copying another's work or portion thereof and/or using ideas and concepts of another and presenting them as one's own without giving proper credit to the source.”

Academic Advising

More information about Academic Advising is found online.

During your first two years at WCU, you will be advised by our College’s Student Success Coordinator (see below); afterward, you will be reassigned to a faculty advisor within the Computer Science Department. It is ultimately your responsibility to understand the rules and take the correct sequence of courses to graduate on time!

Get familiar with and use your Degree Audit, as well as your Department Advising Sheet. If the Degree Audit does not mirror the requirements of the Department Advising Sheet, reach out to your academic advisor.

Responsibilities of the academic advisor:

  • Assist students as they develop their academic program of study by exploring their individual interests, abilities and goals, by aiding students in the formulation of an academic plan and by counseling students in the selection and sequencing of courses that meet their degree requirements. The advisor will give each student an advising sheet appropriate for the program in which the student is enrolled.
  • Identify University resources that may be of value to students and make appropriate referrals.
  • Apprise students of relevant University policies if changes to a student’s academic plan are contemplated.

Responsibilities of the student:

  • Schedule meetings with the academic advisor at appropriate times during the semester. These include discussions regarding a coming semester’s course selections and apprising the academic advisor of academic progress made throughout the semester.
  • Be aware of pre-requisites for courses to be taken.
  • Be aware of important, relevant deadlines and then meet them.
  • In processing required forms, obtain the necessary signatures.
  • Review University policies and procedures as needed.
  • Develop and clarify the values and goals that impact academic decisions and communicate them effectively to the academic advisor.
  • Monitor progress and, if necessary, modify the academic plan for future semesters.
  • Understand the requirements for the major (and minor, if applicable).
  • Understand the general education requirements
  • Have knowledge of the Undergraduate Catalog and the information contained in the Undergraduate Course Schedule.
  • Examine the academic record for accuracy on a regular basis and monitor progress towards completion of the degree.
  • Save all academic advising, course registration information and grade reports.
  • Seek advisement prior to taking a course at some other institution and provide official transcripts for courses taken elsewhere.
  • Recognize the need for resources when circumstances warrant and use them.

Student Success Coordinator

The scheduling and some advising needs of first-year computer science majors are served by professional staff and Student Success Coordinators (SSC). The Student Success Coordinator for Computer Science majors is Richard Foster. Each SSC is an expert in university systems and structures and will be very useful when needing assistance in navigating them, including (a) the technical process of scheduling and registering for classes, (b) seeking information about various campus offices, (c) understanding university policies related to academic and other areas, including general education, degree, and other university requirements, and (d) seeking additional support or access to faculty advisors as needed. Each Student Success Coordinator works with your Department Chair to coordinate support for you, especially during your first year at West Chester University.

Foster, Mr. Richard
Student Success Coordinator

25 University Ave, Rm. 143
610-436-1025
RFoster@wcupa.edu

Transfer Students

Students who seek to transfer to the Computer Science major from another college or from another major within WCU must first satisfy all these conditions:

  • have received a grade of C- or better for both CSC141 and CSC142
  • have received a grade of C- or better in at least two of the following three courses: MAT121, MAT151, MAT161
  • have a GPA of at least 2.5 over all CSC major courses taken and a GPA of at least 2.00 over all MAT courses taken.

Transfer students will initially meet with our assistant chair, Dr. Amiruzzaman, to develop a college graduation plan, as well as navigate policies and course transfer issues. Then, the student will immediately be assigned a faculty advisor within the department.

B.S. in Computer Science

The Bachelor of Science program is accredited by ABET.

B.S. in Computer Science Undergraduate Catalog

120 semester hours

  1. General education requirements. See Undergraduate Catalog.
  2. CSC courses (48 semester hours)
    1. CSC 141, 142, 220, 231, 240, 241, 301, 345, 402 (27 semester hours)
    2. 7 CSC 3xx or 4xx course electives, where 3 courses are at the 4xx level (18 semester hours)
      1. CSC400 internship will count as 3 semester hours (not 6 semester hours)
  3. Mathematics courses (13-14 semester hours)
    1. MAT 121, 151, 161, and [MAT 162 or STA 200]
  4. Free electives

Students must achieve a GPA of 2.5 or greater in their Computer Science courses, and a GPA of 2.0 in their Mathematics/Statistics courses. A grade of C- or better is required in all CSC, Mathematics, and Science “lab” courses.

Course Requirement Notes: CSC Courses

Research Opportunities for Students: CSC 490 and CSC 499

The Department offers two 1-1 student-faculty independent courses: CSC490 (Independent Project) and CSC499 (Independent Study). The chosen topic is ideally of mutual interest between the advisor and student, as well as requirements set by the advisor. As a general guideline, the project should be substantial enough so that it is worthy of CSC4xx credit. Interested students are expected to reach out to faculty member with a topic idea, well in advance of the semester in which the research opportunity is sought. Most department faculty engage in 1 or 2 independent courses with students each academic year.

How to enroll in CSC490 (Independent Project) or CSC499 (Independent Study):

Internship Program

The Computer Science Department also has an active internship program with local employers which offers invaluable, real-world exposure and contacts for future employment.

West Chester University students may register for a Computer Science Internship and work part time or full time in the Summer Post Session or during the regular fall or spring semesters. Students who are not Computer Science majors should use CSC 300 (3 credits). Computer Science majors should use CSC 400 (6 credits); of the 6 credits, 3 credits can be used to satisfy the major requirements, and the other 3 credits satisfy general electives.

Course and Grade Requirements

  • Completion of CSC 141,142, 240, 241 and MAT 151, 161 (each with a C- or better)
  • CSC GPA of 2.5 or better and MAT GPA of 2.0 or better

For more information, contact the Department’s Internship Coordinator.

How to enroll in CSC400 (Internship):

AP Credit

The department awards credit for the AP Computer Science A exam, given a score of 3 or greater, as equivalent to CSC141. AP scores are reported to the Department in mid-July. Be sure to keep the department informed about any potential AP score and whether you desire to be scheduled into CSC141 or CSC142 (the successor course).

The AP Computer Science Principles exam is equivalent to CSC110, which counts as free elective credit. Students with AP Computer Science Principles are placed into CSC141.

B.S. in Computer Science – Suggested Four Year Plan

First Year

FIRST SEMESTER Credits
FYE 100G First-Year Experience (STEM)^ 4
CSC 141 Computer Science I 3
MAT 131 Precalculus# 3
100-level English Composition** 3-4
Science #1 of 2 3-4
Total Semester Hours 16-18
SECOND SEMESTER Credits
CSC 142 Computer Science II 3
MAT 151 Discrete Mathematics 3
200-level English Composition** 3
Behavioral Social Science #1 of 2 3
Humanities #1 of 2 3
Total Semester Hours 15

Second Year

FIRST SEMESTER Credits
CSC 240 Computer Science III 3
MAT 161 Calculus I 4
CSC 231 Computer Systems 3
SPK 208/230 (Speaking Emphasis "SE" #1 of 3) 3
Art 3
Total Semester Hours 16
SECOND SEMESTER Credits
CSC 241 Data Structures & Algorithms 3
CSC 220 Foundations of Computer Science 3
MAT 121 Statistics 3
Diversity "J" 3
Writing Emphasis "W" #1 of 2 3
Total Semester Hours 15

Third Year

FIRST SEMESTER Credits
CSC 345 Programming Languages 3
CSC 301 Computer Security I (Ethics "E") 3
Behavioral Social Science #2 of 2 (different prefix) 3-4
MAT 162 Calculus II or STA 200 Statistics II 3-4
Speaking Emphasis "SE" #2 of 3 3
Total Semester Hours 15-17
SECOND SEMESTER Credits
CSC 402 Software Engineering 3
CSC elective 3
Science #2 of 2 (different prefix) 3-4
Humanities #2 of 2 (different prefix) 3
Speaking Emphasis "SE" #3 of 3 3
Total Semester Hours 16-16

Fourth Year

FIRST SEMESTER Credits
CSC elective 3
CSC elective 3
CSC elective 3
ENG 368 or 371 ("W" #2 of 3) 3
Interdisciplinary "I" 3
Total Semester Hours 15
SECOND SEMESTER Credits
CSC elective 3
CSC elective 3
CSC elective 3
Writing Emphasis "W" #3 of 3 3
Free Elective 3
Total Semester Hours 15

Plan = 122 - 125 credits

At least 120 credits and all major and general education requirements must be met in order to graduate.
C- or better required in all CSC, MAT, ENG 368/371, SPK208/230, and Science w/ lab courses. Major courses highlighted in GOLD.
Minimum GPAs: WCU = 2.0, CSC = 2.5, MAT = 2.0. Ethics requirement is met through CSC 301.

Alternative Math sequences:

  1. MAT Q30 --> MAT 131 & MAT 151 --> MAT 161 --> MAT 162 or MAT 121 --> MAT 121 or STA 200
  2. MAT 151 --> MAT 131 --> MAT 161 --> MAT 162 or MAT 121 --> MAT 121 or STA 200
  3. MAT 131 --> MAT 151 --> MAT 161 --> MAT 121 or MAT 162 --> MAT 121 or STA 200
  4. MAT 121 --> MAT 131 & MAT 151 --> MAT 161 --> MAT 121 or MAT 162 --> MAT 121 or STA 200

^ FYE 100G strongly recommended; any FYE satisfies major requirement
# Students with sufficient MPE (math placement exam) score are strongly recommended to take MAT161 (Calculus 1) instead. Students who place directly into MAT 161 will also have one additional free elective.
** WRT 120 or WRT 123 depending on results of WRITE survey. Students who place into WRT 200 will have one additional free elective.

B.S. in Computer Science Advising Sheet

General Education Requirements - B.S. Computer Science

Computer Science Prerequisite Flowchart

Many of the CSC and MAT courses required for the major have prerequisites (e.g. Computer Science 1 must be successfully completed before Computer Science 2). The department website contains a graphical mapping of major course prerequisites, which you may find useful.

CSC Course Rotation

Please see our department website for a detailed listing of planned course offerings for future semesters, as well as for the course rotation plan for summer and winter sessions.

In general, the following courses are offered in the regular fall and spring terms:

  • Every Semester:
    • all core courses
    • CSC302, CSC321, CSC335
    • at least two 400-level upper-level elective courses,
    • up to eight upper-level elective courses in total.
  • Every Fall:
    • CSC 331 (required for Cloud Engineering Certificate)
    • CSC 472 (required for Computer Security Certificate)
    • CSC 478 (required for Cloud Engineering Certificate)
  • Every Spring:
    • CSC 471 (required for Computer Security Certificate)
    • CSC 468 (required for Cloud Engineering Certificate)

Accelerated B.S. / M.S. Program

Students earning a B.S. Computer Science degree from West Chester University have the option to complete the M.S. Computer Science degree during their 5th year.

Program Overview:

  1. Enroll in the B.S. Computer Science “Accelerated” program in your junior year. You must have a minimum cumulative GPA of 3.0 and have earned at least 60 credits to be accepted.
  2. Take up to 12 credits of graduate substitution courses during your 3rd and 4th years. These courses will count toward your 120-credit B.S. Computer Science degree.
  3. Undergraduates pay undergraduate tuition and applicable fees for graduate substitution courses and are bound by the undergraduate academic policies and regulations.
  4. Upon graduation, you have the option to enroll in the M.S. Computer Science program.
    Note: You are not obligated or contracted to remain in the Department and pursue an M.S.
  5. The up to 12 credits of graduate substitution courses you took as an undergraduate will now also count toward your M.S. degree.
  6. Therefore, you will have 30 – 12 (18 outstanding graduate credits) to complete in Year 5.

For additional policies and information regarding the accelerated program, go to the Accelerated Catalog Page.

To Enroll in the Accelerated Program:

  1. Complete the application.
  2. After approval, Dr. Amiruzzaman, coordinator of the Accelerated Program will become your academic advisor. Contact Dr. Amiruzzaman stating which graduate course(s) in which you would like to enroll. Enrollment permissions will then be granted to you.

To Enroll in the M.S. Computer Science Program:

In your senior year, you will be given the option via RamPortal to pursue your M.S. in Computer Science.

Department Chairperson: Dr. Liu Cui
Graduate Coordinator: Dr. Linh Ngo
Accelerated B.S./M.S. Coordinator: Dr. Md Amiruzzaman

Certificate in Computer Security

The Department offers a Computer Security Certificate, which is intended for students who wish to focus on the computer security and network security aspects of Computer Science. The Department and curriculum are accredited by National Center of Academic Excellence in Cyber Defense Education (CAE-CDE) by the National Security Agency (NSA) and the Department of Homeland Security (DHS).

To satisfy the certificate, the following elective courses must be taken:

Prerequisite Security Courses:
MAT 151 Introduction to Discrete Mathematics
MAT 161 Calculus I
CSC 141 Computer Science I
CSC 142 Computer Science II
CSC 220 Foundations of Computer Science
CSC 231 Computer Systems
CSC 240 Computer Science III
CSC 241 Data Structure and Algorithms

Core Security Courses:
CSC 301 Computer Security and Ethics
CSC 302 Compute Security
CSC 335 Data Communications and Networking
CSC 402 Software Engineering
CSC 471 Modern Malware Analysis
CSC 472 Software Security

The Computer Security Certificate can be completely in its entirety within the scope of the four-year plan. Most of the “core security courses” are taken during the junior and senior year.

In order for an undergraduate student to receive recognition of completion of the Computer Security Certificate, he or she must complete each of the Certificate courses with a minimum grade of C- and obtain an overall GPA of 2.0 in all courses taken for the certificate.

A student who wishes to pursue this certificate must apply to update their degree plan through RamPortal.

Certificate in Cloud Engineering

The Department also offers a Cloud Engineering Certificate.

To satisfy the certificate, the following elective courses must be taken:

Prerequisite Cloud Engineering Courses:
MAT 151 Introduction to Discrete Mathematics
MAT 161 Calculus I
CSC 141 Computer Science I
CSC 142 Computer Science II
CSC 220 Foundations of Computer Science
CSC 231 Computer Systems
CSC 240 Computer Science III
CSC 241 Data Structure and Algorithms

Core Cloud Engineering Courses:
CSC 331 Operating Systems
CSC 335 Data Communications and Networking
CSC 468 Introduction to Cloud Computing
CSC 478 Cloud Engineering

The Cloud Engineering Certificate can be completely in its entirety within the scope of the four-year plan. Most of the “core security courses” are taken during the junior and senior year.

In order for an undergraduate student to receive recognition of completion of the Cloud Engineering Certificate, he or she must complete each of the Certificate courses with a minimum grade of C- and obtain an overall GPA of 2.0 in all courses taken for the certificate.

A student who wishes to pursue this certificate must apply to update their degree plan through RamPortal.

Minors

These minors are offered within the Computer Science Department:

  • Computer Science Minor
  • Information Technology (IT) Minor

Computer Science majors are not eligible for these, as the content of these minors is already covered within the Computer Science major.

Computer Science Minor Requirements

This minor is intended for non-Computer Science majors only.

Baccalaureate students may receive transcript recognition for the Minor in Computer Science by successfully completing the following courses:

  • MAT151: Discrete Mathematics
  • MAT161: Calculus 1
  • CSC141: Computer Science 1
  • CSC142: Computer Science 2
  • CSC240: Computer Science 3
  • CSC241: Data Structures & Algorithms

Information Technology (IT) Minor Requirements

This minor is intended for non-Computer Science majors only and introduces students to the fundamentals of programming, computer security, web technology, database systems and networking.

Baccalaureate students may receive transcript recognition for the Minor in Information Technology by successfully completing the following courses:

  • CSC115: Introduction to Computer Programming
  • CSW131: Introduction to Web Design
  • CST 221: Database Systems (typically offered fall only)
  • CST 235: Networking and System Administration (typically offered spring only)
  • CSC 301: Intro to Computer Security
  • CSW 315: Intro to Web Programming (typically offered spring only; prereqs of CSC115 & CSW131)

A student must earn a minimum grade of C- in each course and a minimum GPA of 2.0 across all courses in the minor.

Connect with Peers

The Department, formally and informally, is associated with the following social media accounts:

  • LinkedIn: for students, faculty, and alumni to connect
  • Facebook: primarily used for the internal posting of any internship opportunities or entry-level job openings suitable for undergraduate seniors, as they are made known to us.
  • A Discord Server utilized primarily by students as a discussion board for our student-run Computer Science Club, which typically meets weekly in the Linux lab. For access, please connect with Dr. David Cooper.

Upsilon Pi Epsilon Honor Society

The Upsilon Pi Epsilon Association was founded at Texas A&M University in 1967 for students and faculty who exhibit superior scholastic and professional achievement in the computing science curriculum. It remains the only National Honor Society for the computing and information disciplines and is recognized as such by the Association for Computing Machinery (ACM) and IEEE Computer Society.

In 1997, Upsilon Pi Epsilon was admitted as a member of the Association of College Honor Societies - the parent organization for all academic honor societies in North America. The West Chester University chapter of UPE was chartered in 2017 as the Rho chapter of the state of Pennsylvania to the Association by the Executive Council of Upsilon Pi Epsilon.

Students are invited to join the West Chester University Chapter of UPE upon recognition of outstanding achievement, high scholarship, and quality of character. Formal invitations to join UPE are usually sent in the Fall of every academic year. Induction into the society usually occurs in Spring semesters.

Undergraduate Minimum Academic Requirements: 60 or more credits completed with an overall GPA greater than or equal to 3.5, and 15 or more Computer Science credits completed at WCU with a Computer Science GPA greater than or equal to 3.7. (The following courses do not count: CST courses, CSW courses, CSC 110, CSC112, CSC 115, CSC116, CSC 300, CSC 400, CSC 490, CSC 499.)

Graduating students may also purchase a UPE stole to be worn with commencement regalia.

Other CS Student Organizations

To join or for more information about these student clubs with the CS Department, please contact the faculty advisor, who can forward you to the current club student president.

CLUB FACULTY ADVISOR
Computer Science Club Dr. Jongwook Kim
Bin Lu Women in Computer Science Club (WiCS) Dr. Liu Cui
Competitive Programming Club Dr. Linh Ngo
Cybersecurity Club Dr. Linh Ngo
Game Development Club Dr. David Cooper
Upsilon Pi Epsilon Honor Society Dr. Md Amiruzzaman

CSC Course Descriptions - Undergraduate

College of the Sciences and Mathematics

COURSES

CSC 141. Computer Science I. 3 Credits.
An introduction to programming using Python. Topics covered include basic program design; program flow including decisions,functions, and loops; command line and file input/output; variables and types; and string and sequence processing.
Gen Ed Attribute: Science Distributive Requirement.
Distance education offering may be available.

CSC 142. Computer Science II. 3 Credits.
This course introduces the design and implementation of classes and objects, arrays using primitive types and Strings, array of objects, sorting and searching through arrays, recursion, aggregate objects and an introduction to graphical User Interfaces (GUIs).
Pre / Co requisites: CSC 142 requires a prerequisite of CSC 141.
Distance education offering may be available.

CSC 220. Foundations of Computer Science. 3 Credits.
Topics include regular and context free grammars and languages, computational logic, finite state machines, and parsing.
Pre / Co requisites: CSC 220 requires prerequisites of MAT 151 and MAT 161.

CSC 231. Computer Systems. 3 Credits.
This course introduces the fundamental concepts of modern computer systems. Coverage includes an introduction to CPUs, memory, storage, networking, operating systems, and parallel and distributed programming. Assembly language and C will be introduced and used to explore how computer systems interpret and execute programs.
Pre / Co requisites: CSC 231 requires prerequisites of CSC 142 and MAT 151.
Distance education offering may be available.

CSC 240. Computer Science III. 3 Credits.
This course focuses on more advanced topics in object-oriented programming, including project design, planning, and testing using milestones and checklists. Programming topics include text processing (including StringBuilder and StringTokenizer classes), inheritance, polymorphism, abstract classes, interfaces, generic classes, exception classes, exception throwing and handling, random access files, serialization and an introduction to some basic data structures, such as collection classes and linked lists.
Pre / Co requisites: CSC 240 requires prerequisites of CSC 142.

CSC 241. Data Structures & Algorithms. 3 Credits.
Data structures and related algorithms are studied using object-oriented programming, such as Java. Topics include data abstraction, recursion, lists, stacks, queues, linked lists, trees, hashing, searching and sorting algorithms, and the evaluation of algorithm efficiency.
Pre / Co requisites: CSC 241 requires prerequisites of CSC 240 and MAT 151, MAT 161.

CSC 301. Computer Security & Ethics. 3 Credits.
An introduction to Computer Security and the ethical underpinnings of security. The basic objectives of creating a secure system, attack methods and defenses are discussed.
Pre / Co requisites: CSC 301 requires prerequisites of three CSC, CST, or CSW courses.
Gen Ed Attribute: Ethics Requirement.

CSC 302. Computer Security. 3 Credits.
This course will provide an introduction to critical and diverse topics in computer security, such as cryptography, network security, and operating systems security.
Pre / Co requisites: CSC 302 requires prerequisites of CSC 301 and CSC 335.

CSC 321. Database Management Systems. 3 Credits
Characteristics of generalized database management systems. Surveys of different database models that are currently used. The design and implementation of a database system.
Pre / Co requisites: CSC 321 requires prerequisites of CSC 142 and CSC 241.

CSC 331. Operating Systems. 3 Credits.
This course is a general survey of elements of operating systems with in-depth studies of certain features of specific operating systems. Elements of concurrent programming are studied, such as the mutual exclusion problem, semaphores, and monitors. Additionally, the following topics are covered: process scheduling and deadlock avoidance; memory management issues such as paging and segmentation; organization and protection of file systems.
Pre / Co requisites: CSC 331 requires prerequisites of CSC 220 and CSC 240 and CSC 241, and CSC 231 or CSC 242.

CSC 341. Algorithms II. 3 Credits.
This course provides an in-depth exploration of advanced algorithmic techniques essential for solving complex computational problems. Building on foundational knowledge of data structures and algorithms, students will study algorithm complexity analysis, including Big O, Big Theta, and Big Omega notations and complexity classes such as P, NP, and NP-complete. The course covers advanced sorting algorithms, divide-and-conquer strategies, dynamic programming, and greedy algorithms. Students will also examine fundamental graph algorithms, including shortest paths, spanning trees, and network flow solutions, with real-world optimization and data processing applications. Emphasis is placed on theoretical understanding and practical implementation, equipping students with the skills to design, implement, and evaluate efficient algorithmic solutions. Through hands-on coding and problem-solving, students will enhance their computational thinking and prepare for advanced coursework or careers in software development, data science, and related fields.
Pre / Co requisites: CSC341 requires a prerequisite of CSC241

CSC 335. Data Communications and Networking I. 3 Credits.
An overview of the various aspects of modern data and telecommunications. Discussion of the hardware and software facets of the transmission of information in the forms of voice, data, text, and image. Topics include communication protocols, transmission technologies, analog/digital transmission, communications media, public data networks, LANs, and ISDN.
Pre / Co requisites: CSC 335 requires a prerequisite of CSC 240.
Distance education offering may be available.

CSC 345. Programming Language Concepts/Paradigms. 3 Credits.
An examination of the conceptual underpinning of programming languages and of the paradigms into which they fall. Topics will be drawn from those comprising the field of programming language such as abstraction, bindings, concurrency, design, encapsulation, history, representation, storage, and types. Programming projects will focus on languages within the functional, declarative, and object oriented paradigms such as Common Lisp, ML, Prolog, and CLOS rather than the familiar imperative paradigm.
Pre / Co requisites: CSC 345 requires prerequisites of CSC 220 and CSC 241.

CSC 365. Data Analytics. 3 Credits.
This course begins with concepts such as variables, strings, decisions, functions, loops, file input/output, lists, arrays, object-oriented programming such as constructor, inheritance, and polymorphism. It then focuses on more advanced topics such as plotting graphs and using Python packages, machine learning, and statistics. Students will develop the skills necessary to use communication as a problem solving tool in the course. Special emphasis is placed on the student's performance.
Pre / Co requisites: CSC365 requires prerequisites CSC141 and CSC142.

CSC 381. Data Science. 3 Credits.
This course will introduce data science and related programming concepts. The course includes basic statistics, an intro to machine learning, and an intro to data visualization. Students will learn how to read different types of data files and use statistical tools and machine learning tools to analyze them. Also, they will use basic data visualization techniques to present the result to help in decision making. A programming language, such as, Python will be used in the class to help students develop understanding of the above concepts.
Pre / Co requisites: CSC381 requires prerequisites of CSC 231 or CSC 240 or CSC 241 or junior standing.

CSC 382. Applied Machine Learning. 3 Credits.
This course introduces machine learning techniques. Students will understand machine learning algorithms as they work with different algorithms and learn to build them from scratch. They will also gain theoretical and practical skills by applying machine learning to real-world problems.
Pre / Co requisites: CSC382 requires prerequisites of CSC381 or STA 428 or junior standing.
Distance education offering may be available.

CSC 400. Internship. 3-6 Credits.
The student works in the area of computer science that is his or her specialty.
Pre / Co requisites: CSC 400 requires prerequisites of CSC 141 and CSC 142 and CSC 240 and CSC 241 and MAT 151 and MAT 161.
Consent: Permission of the Department required to add.
Typically offered in Fall, Spring & Summer.

CSC 402. Software Engineering. 3 Credits.
This course explores a variety of processes for developing software, including the PSP from the Software Engineering Institute, the SEI's CMMI, and agile processes, including eXtreme Programming and Scrum. A special emphasis is on how software processes can be designed to help software engineers to develop more secure code. Ethical, professional and workplace issues are also covered, as well as strategies for testing software in PSP and agile environments. Teamwork is an important element in this course, and the team work on developing a documented software process for their company. This is the required Capstone course for the program/major.
Pre / Co requisites: CSC 402 requires a prerequisite of CSC 241.
Distance education offering may be available.

CSC 404. Software Testing. 3 Credits.
This course consists of two components: software engineering and software testing. Software testing is a critical phase in the software development life cycle for the quality assurance of software. This course will take a practitioner's approach. Students will use hands-on labs to learn Node.js when we cover the principles of software testing. Testing theory topics may include: Math for testing engineers (discrete math, graph theory), Testing Categories (unit testing, integration testing, system testing, load testing, functional testing, and retrospective testing), Testing Approaches (white-box testing, black-box testing), and Testing Methodologies (boundary value testing, domain testing, equivalence class testing, decision-table-based testing, path testing, and data flow testing).
Pre / Co requisites: CSC 404 requires prerequisites of CSC 240 and CSC 241.

CSC 416. Design/Construction Compilers. 3 Credits.
Covers the basic topics in compiler design including lexical analysis, syntax analysis, error handling, symbol tables, intermediate code generation, and some optimization. Programming assignments will build various pieces of a compiler for a small language.
Pre / Co requisites: CSC 416 requires prerequisites of CSC 220 and CSC 240 and CSC 241, and CSC 231 or CSC 242.

CSC 417. User Interfaces. 3 Credits.
This course deals with database-driven graphical user interface applications. The Model-View-Controller software paradigm is used as a guiding principle for the applications developed. The course features applications using Java-based components as well as web-based components with a modern server-side scripting language such as PHP. Most of the course work is based on developing a complex, large scale web database system with the goal of implementing this system within a web application framework.
Pre / Co requisites: CSC 417 requires prerequisites of CSC 241.
Distance education offering may be available.

CSC 418. Modern Web Applications Using Server-Side Technologies. 3 Credits.
This course provides training in the area of building web applications using Node.js (with Express, and MongoDB) for the back-end and EJS for the front-end user interface. JavaScript has been a client-side script programming language until later in 2009 when Google combined its V8 search engine with Node.JS. Since then, JavaScript has become a full-stack scripting language from the client-side to the server-side. Starting from building a web site without programming, students will be guided with hands-on labs and develop a website using Node.JS and EJS for the front-end.
Pre / Co requisites: CSC 418 requires a prerequisite of CSC 240.
Distance education offering may be available.

CSC 461. Android App Development. 3 Credits.
This is an introductory course on Android app development. Students will learn the entire app development cycle from an idea, to a storyboard, to a functional shell, to a working prototype, to an alpha app. They will learn basics of UI selection, interfacing with device hardware, persistence, requesting permissions from the user, connecting to a web API, and google play store presence. Additional topics can be explored by request of the students.
Pre / Co requisites: CSC 461 requires a prerequisite of CSC 241.

CSC 466. Distributed and Parallel Computing. 3 Credits.
This course introduces students to modern distributed platforms by examining several important technologies in the areas of parallel and distributed computing and how these technologies help in solving computational and data-intensive problems. Students will apply specific trade-offs for parallel application and algorithms development, performance, and management on different distributed platforms.
Pre / Co requisites: CSC 466 requires prerequisites of CSC 231 and CSC 241.
Distance education offering may be available.

CSC 467. Big Data Engineering. 3 Credits.
This course will investigate engineering approaches in solving challenges in data-intensive and big data computing problems. Course topics include distributed tools and parallel algorithms that help with acquiring, cleaning, and mining very large amount of data, including streaming data.
Pre / Co requisites: CSC 467 requires a prerequisite of CSC 241.
Distance education offering may be available.

CSC 468. Introduction to Cloud Computing. 3 Credits.
This course provides an introductory overview to the technologies that enable cloud computing. Topics covered include basic concepts about cloud computing and advanced technical concepts regarding virtualization, containerization, and orchestration.
Pre / Co requisites: CSC 468 requires a prerequisite of CSC 231.

CSC 471. Modern Malware Analysis. 3 Credits.
This course will introduce students to modern malware analysis techniques through lectures and hands-on interactive analysis of real world samples, including exploring various recent attacks. These examples and studies will help the students develop a foundation and a well-rounded view of cybersecurity research. Participants in the course will also read and discuss research papers, as well as conducting an independent project in a topic related to cyber risk and malware analysis. After taking this course students will be equipped with the skills to analyze advanced contemporary malware using both static and dynamic analysis.
Pre / Co requisites: CSC 471 requires prerequisites of CSC 231 or CSC 242, and CSC 302.

CSC 472. Software Security. 3 Credits.
This course is primarily aimed at people interested in software security, reverse engineering, and low-level software. In this course, students will explore the foundations of software security. They will consider important software vulnerabilities and attacks that exploit them--such as buffer overflows, SQL injection, and session hijacking--and they will consider defenses that prevent or mitigate these attacks, including advanced testing and program analysis techniques.
Pre / Co requisites: CSC 472 requires prerequisites of CSC 231 or CSC 242, and CSC 302.

CSC 476. Game Development. 3 Credits.
This project-based course is concerned with game development and scripting using a modern game engine, such as Unity, with a modern programming language, such as C#. Topics include coding standards, design principles, debugging, game loops, physics engines, lighting, meshes, colliders, databases for persisting data, game lobbies, networked multiplayer games, and building for multiple resolutions and platforms. Individual and team-based assignments will utilize version control.
Pre / Co requisites: CSC 476 requires a prerequisite of CSC 241.

CSC 478. Cloud Engineering. 3 Credits.
This course provides students with more in-depth understanding of advanced cloud computing technical concepts. Through the perspective of infrastructure-as-code and project-based learning activities, students will study how cloud computing orchestration works to enable the deployment of large-scale complex services in business and academic environments.
Pre / Co requisites: CSC478 requires a prerequisite of CSC468.

CSC 481. Artificial Intelligence. 3 Credits.
Artificial Intelligence (AI) is concerned with the replication or simulation on a machine of the complex behaviors associated with intelligence. Topics will be drawn from any of those comprising the field of AI such as agent architectures, automatic truth maintenance, constraint satisfaction, expert systems, fuzzy logic, games, genetic algorithms, knowledge representation, machine learning, neural networks and connectionism, natural language processing, planning, reasoning, robotics, search, theorem proving, and vision. Projects requiring coding will focus on an AI language such as Common Lisp or Prolog.
Pre / Co requisites: CSC 481 requires prerequisites of CSC 220 and CSC 241.

CSC 490. Independent Project in Computer Science. 3 Credits.
The student designs and implements a software system. Project problems are drawn from local industry and university departments. A computer science faculty member supervises each project.
Consent: Permission of the Department required to add.
Gen Ed Attribute: Writing Emphasis.
Repeatable for Credit.

Frequently Asked Questions

Can I receive undergraduate credit for a graduate course?

What if I’m getting a grade below a C- in a course?

Withdraw if you are in danger of failing. Alternatively, you may consider an Audit, if you need a specific grade in the course for your major and plan to take the course again. Like Withdrawal (Grade = W), there is no impact on GPA with an Audit (Grade = AU). Unlike Withdrawal where the student stops coming to class once this action is taken, an Audit allows the student to continue attending class in whatever capacity they are able (i.e. from listening and following along up to and including completing assignments and exams for feedback) without being subject to grading.

Some students benefit from a course Audit, if they have time to keep up with the material and are simply not receiving the grades needed to advance. More time is sometimes necessary for mastery of content, especially when foundational skills are expected for success in future courses in a program. Audit creates a scenario in which all the content of a course becomes familiar on first attempt, whereas students miss content from the final weeks of a course with the Withdrawal option. In short, an Audit may increase a student’s chances for success in a required, major’s course, if the course is attempted again in the following semester.

Withdrawal and Audit are entered in as a “W” or “AU,” respectively, next to the course on a student’s transcript. Students can Withdraw from a course after the end of the Add/Drop Period and before the end of Week 9 of the semester (i.e. between Week 2 – 9). Withdrawal means that the student has gone into their RamPortal account under the Enroll in a Class link to successfully drop the course using the Drop tab. The Course Audit form must be submitted before the end of Week 9 to receive the AU designation for a course.

Notes: Students may ONLY audit one course per semester, whereas students are entitled to Withdraw from as many courses as they would like. One caveat is that students must pass/receive credit for at least 67% of all courses ATTEMPTED in order to maintain “Satisfactory Academic Progress.” Therefore, course withdrawal has the potential to impact financial aid eligibility in the same way as failing courses in some instances. Questions about “Satisfactory Success Academic Progress” can be addressed by the Financial Aid Office at finaid@wcupa.edu.

The university also has a policy that states that once a grade is received for a course at WCU, that same course may ONLY be repeated at WCU. The benefit of Withdrawal or Audit is that there is no impact on GPA, so the student can take the course again at WCU or the equivalent of it at another institution in a future semester.

What if I can’t pass a required course?

Talk with your advisor about next steps. A Petition for Exception to Policy or Course Substitution may be warranted in some cases. While a student is entitled to pursue one or both of these options, the Registrar will make the final decision/determination on the basis of the evidence supplied by the student, the merit of the student’s argument, and justification by/support from an advisor, Chair of a department, and Dean’s level academic reviewers.

Students may also register with the Office of Services for Students with Disabilities (OSSD), if academic accommodations are requested for a documented disability. Students may reach out to our Community Mental Health Services clinic at WCU, if assessment for disability is needed. WCU’s Community Mental Health Services clinic offers lower cost testing, which may be of interest to students who do not have medical insurance, are underinsured, or do not have a provider in the area who can provide these services. An individual interview/intake is $30 for students and can be highly informative, as well as offer guidance and options for students to consider. Subject-specific, physical, mental health, and other difficulties that impact a student’s ability to learn, retain, or complete assignments, projects, and exams may warrant assessment.

What if you have a serious family/medical emergency?

Students who miss more than three consecutive days of courses as a result of serious family/medical emergency should contact Ms. Christy Lanshe at clanshe@wcupa.edu or 610-436-0165 in the Student Assistance Office and complete the electronic Request Instructor Absence Notification form. Next, the student should make arrangements, as they are able, with each instructor to make up missed exams and assignments. In the event the emergency situation continues to prevent a student from completing work and earning satisfactory grades, the student may decide to withdraw from all courses by dropping them from the Enroll in a Class link in RamPortal by the end of Week 9 (in fall or spring semesters). Term Withdrawal is an option, if the Course Withdrawal deadline is missed and normally occurs about three weeks later in regular fall or spring semesters (see Academic Calendar for specific dates and deadlines). The Term / University Withdrawal form can be found here .

What happens if I am on academic probation?

Meet with your advisor to complete an Academic Recovery Plan (electronic form submitted through RamPortal). You will be granted one guaranteed semester following the semester in which you are placed on academic probation to improve your cumulative GPA to a 2.00 or above. In circumstances where it is mathematically possible for a student to reach the minimum cumulative GPA of 2.00, the student may be granted an additional or second semester on academic probation (called “Continued Probation”) if the student is not returned to “good academic standing” after the first semester on academic probation. Academic Probation is not meant to be punitive, but to let students know that they need to reach the minimum of a 2.00 GPA to earn a degree at WCU (i.e. most degree programs at WCU require a 2.00, but some have higher standards). In Computer Science, students do need to meet a minimum cumulative GPA of 2.00, but they must also earn a 2.5 GPA across all CSC courses. Information on Academic Probation and Dismissal can be found here.

 

I’m ready to graduate. What do I do?

Make sure you have completed all requirements and have earned 120 credits! Students should apply for graduation through the Apply for Graduation link on RamPortal two semesters ahead (i.e. at 90 credits earned) of the intended semester of graduation. Once a student’s application for graduation is accepted, this initiates the Registrar’s Office to complete an audit of the general education portion of the student’s degree. The Registrar’s Office will then contact the student to let them know which general education requirements, if any, still need to be satisfied in order to meet graduation requirements. August graduates may participate in the May ceremony, as long as no more than two courses are completed over the Summer. You can also change your graduation term using RamPortal (you only pay the graduation fee once). Students can retrieve their cap and gown at the WCU Campus Store.

When do I schedule courses?

Your “enrollment appointment” will appear on your RamPortal homepage in mid-September (for Winter & Spring registration) and mid-February (for Summer & Fall registration) next to “When Do I Register for Classes?” You should also receive an email or text update from the Registrar’s Office about this. The “enrollment appointment” is NOT the appointment with your advisor, it is the first available date and time you will have to enroll in courses in the upcoming semester(s). You need to schedule a separate meeting with your advisor before your “enrollment appointment” to discuss your academic plans and have your advisor remove the “Advisor Permission Hold” from your account, which will enable you to enroll in courses. Failure to meet with your advisor on or before your enrollment appointment date/time could result in delayed enrollment and/or closed sections of courses.

Email your advisor to request an appointment time or come in during their posted office hours. Be prepared for your academic advising appointments by updating your academic advising sheet, preparing a list of courses you plan to take for the upcoming semester, and/or providing a list of questions for your advisor to address in the meeting.