Department of Computer Science

25 University Avenue, Room 150
West Chester University
West Chester, PA 19383
610-436-2204
Department of Computer Science
Dr. Burns, Chairperson
Dr. Chen, Assistant Chairperson
Dr. Amiruzzaman, Graduate Coordinator

Programs of Study

The department offers a master of science degree as well as a number of graduate professional development certificates. The master of science is intended for those who have a bachelor's degree in computer science or related field. The professional development certificates are intended for those who would like to obtain certification in certain specific areas without having to undertake the preparatory work for a master's degree. A special sequence of prerequisite courses can be taken toward entry into the certificate programs.

Master of Science in Computer Science

The purpose of this program is to provide its graduates with the intellectual and practical tools that they will need either to pursue careers as professional computer scientists in industry or to pursue a doctor's degree in computer science at a doctoral-granting institution. The curriculum is designed with three goals in mind:

  1. A solid foundation in the fundamental principles of computer science (the core).
  2. Exposure to a variety of subject areas (the 500-level electives).
  3. Exposure to research topics of current interest and to provide in-depth knowledge of several areas (the 600-level courses).

Graduate Certificates

The department offers three, 12-credit graduate certificates (consisting of four courses each):

  • Computer Security (IA)
  • Information Systems
  • Web Technology

All the computer science courses (CSC) listed can be counted towards the master's degree program except CSC 512, CSC 515, and CSC 516.

All applicants to one of West Chester University’s graduate programs will be held to the graduate admissions requirements. When applicable, additional requirements for admission into specific department program(s) may be listed below.

Admission Requirements for the M.S. in Computer Science

Applicants for the Master of Science in Computer Science program must satisfy the graduate admission requirements of the University. Applicants should also possess a bachelor's degree in computer science or a related field. An applicant who does not have an undergraduate degree in computer science or a related field may apply for admission into a Graduate Certificate in Computer Science (i.e., Computer Security (Information Assurance), Information Systems, and  Web Technology), which are 12-credit programs designed to give students broad knowledge of computer science topics.

A complete application consists of the following items:

  1. Completed online application
  2. Minimum undergraduate GPA of 3.0
  3. Official transcripts from all colleges and universities attended
  4. Two letters of recommendation
  5. A written statement of your professional goal(s)
  6. A current résumé

Admission Requirements for the Graduate Computer Science Certificate Programs

For admission into the Graduate Certificate programs in  Computer Security (Information Assurance), Information Systems, and Web Technology, a complete application includes the following:

  1. Completed online application
  2. Official transcripts from all colleges and universities attended
  3. Two letters of recommendation
  4. A written statement of your professional goal(s)
  5. A current résumé


     

All graduate students are held to the academic policies and procedures outlined in the graduate catalog. Students are encouraged to review departmental handbooks for program tips, suggested course sequences, and explanations of procedures. When applicable, additional policies for specific department programs may be listed below.

Prerequisites for Professional Development Certificates

A student who wishes to enroll in one of these certificate programs needs to hold a bachelor's degree (in any subject area) and needs to have successfully completed the following two courses in order to satisfy the certificate program prerequisites: CSC 512 and CSC 516.  Students are encouraged to take these courses at West Chester University.

Professors

Afrand Agah (2006)

B.S., Tehran Poly-Technique; M.S., Kansas State University; Ph.D., University of Texas at Arlington

Richard Burns (2012)

Chairperson, Computer Science

B.A., Saint Joseph's University; M.A., Ph.D., University of Delaware

Zhen Jiang (2002)

B.S., Shanghai Jiaotong University; M.S., Nanjing University; Ph.D., Florida Atlantic University

Cheer-Sun D. Yang (2000)

B.S., M.B.A., Tamkang University; M.S., Kansas State University; Ph.D., University of Delaware

Associate Professors

Si Chen (2016)

Assistant Chairperson, Computer Science

B.S., China Agricultural University; M.S., Ph.D., SUNY, Buffalo

Liu Cui (2016)

B.S., Northwestern Polytechnical University Xi'an China; M.S., Ohio University; Ph.D., University of Pittsburgh

Linh B Ngo (2018)

B.S., M.S., Ph.D., University of Arkansas

Assistant Professors

Md Amiruzzaman (2021)

Graduate Coordinator, Computer Science

B.S., National University, Gajipur, Bangladesh; M.S., Ph.D., Kent State University

Ashik Ahmed Bhuiyan (2021)

B.S., Bangladesh University of Engineering and Technology; Ph.D., University of Central Florida

David G. Cooper (2021)

B.S., Carnegie Mellon University; M.S., Ph.D., University of Massachusetts Amherst

Jongwook Kim (2020)

B.S., Korea University; M.S., Ph.D., University of Texas at Austin

CSC

CSC 512. Computer Programming I. 3 Credits.

The principles of algorithmic problem solving are introduced using the Java language. This course teaches programming techniques which involve elementary data and control structures.

CSC 515. Introduction to Web Development. 3 Credits.

This course covers website design and programming issues. It develops and uses the Php language and MySQL database for server-side programming and information storage/retrieval. The JavaScript language is used for client side programming.

CSC 516. Introduction to Data Structures and Algorithms. 3 Credits.

This course introduces the definitions, implementations, and applications of the most basic data structures used in computer science. The concept of abstract data type is introduced and reinforced by the object concept of C++.

CSC 516 Prerequisite: Successful completion of CSC 512 with minimum grade of C-.

CSC 520. Foundations of Computer Science. 3 Credits.

This course offers an advanced treatment of many of the theoretical areas underlying other computer science subjects.

CSC 525. Operating Systems. 3 Credits.

This course covers the basic features of operating systems. Examples will be drawn from UNIX and other operating systems. This course includes an intensive study of the UNIX operating system by way of the UNIX kernel commands and utilities.

CSC 530. Data Structures. 3 Credits.

This course builds on rudimentary understanding of linked structures and develops complex data structures such as trees, hash tables, graphs, etc. It also introduces the basics of asymptotic analysis of running time and space in order to provide the justification for various data structures.

CSC 535. Networks and Data Communication. 3 Credits.

This course provides in-depth studies of various aspects of modern telecommunication systems such as network design, network implementation, serial port communications, and user interfaces.

CSC 540. Programming Languages. 3 Credits.

This course introduces the theoretical and practical foundations of programming languages from the point of view of design and implementation.

CSC 545. Database Systems Concepts. 3 Credits.

This course emphasizes recent technological advances in database management systems. The course centers around data models and languages for those data models. Special attention is paid to relational and object-oriented data models and systems which implement these.

CSC 555. Software Engineering. 3 Credits.

This courses focuses on various software processes, including the Personal Software Process and agile processes (like eXtreme Programming and Scrum). Another major focus is software assurance - processes for building secure software. Other topics include quality assurance, work culture issues and the professional responsibilities of software engineers.

CSC 560. Analysis of Algorithms. 3 Credits.

This course introduces the methods to analyze the efficiency of computer algorithms in terms of their use of both space and time. Algorithmic design techniques, such as divide and conquer, greedy methods, and dynamic programming are illustrated throughout the course. The theory of NP-completeness and tractability is introduced.

CSC 560 Prerequisite: Successful completion of CSC 520 with minimum grade of C-.

CSC 565. Compiler Design. 3 Credits.

An in-depth study of the principles and design aspects of programming language translation. Students will design and implement a compiler using standard UNIX-based compiler tools for a small but representative language.

CSC 565 Prerequisite: Successful completion of CSC 520 and CSC 530, with minimum grades of C-.

CSC 575. Artificial Intelligence. 3 Credits.

Artificial Intelligence (AI) aims to reproduce or simulate the intelligent capacities of human beings such as forming plans of action and conversing in English. This course will combine theoretical, practical, and programming aspects of AI. Common Lisp will be used for programming projects.

CSC 575 Prerequisite: Successful completion of CSC 520 with minimum grade of C-.

CSC 576. Data Science. 3 Credits.

This course will explore the fundamentals of data science by using current data mining and machine learning algorithms such as decision trees, regression, support vector machines, clustering, and neural networks for prediction and inference. Web scraping techniques to create datasets will be introduced. Data preprocessing techniques and data visualization will also be introduced. Programming assignments will be coded in a modern programming language, such as Python.

CSC 576 Prerequisite: Successful completion of CSC 520 with minimum grade of C-.

CSC 577. Natural Language Processing. 3 Credits.

This course introduces the foundations of Natural Language Processing (NLP), from theoretical fundamentals of language models and grammars to the application of algorithms. The course will draw from the following NLP topics: word and sentence tokenization, spelling correction, question answering, text classification, and sentiment analysis. Programming assignments will utilize unstructured text and freely available corpora, be coded in a modern programming language, such as Python, and will utilize modern NLP toolkits such as NLTK and CoreNLP.

CSC 581. Topics in Computer Science. 3 Credits.

This course will allow instructors to teach a 500-level (not research-oriented) course in a computer science topic not specified in the current course list. Different topics will be taught as different sections of this course.

Repeatable for credit.

CSC 583. Topics in Computer Security. 3 Credits.

A survey of topics in Computer Security reflecting current technological developments and research interests in the field.

Repeatable for credit.

CSC 584. Topics in Web Technology. 3 Credits.

The detailed course content varies from one semester to another. The topic will be decided based on the technological development in the field and the scholarly interests of the faculty. This course may be repeatable for different topics. Students will learn to develop individual projects.Topics discusses include but are not limited to: Server-Side Programming using Unix or Windows platform; ASP.NET with C#; Google Search Engine Optimization; Client-Side Web Programming using Content Management Systems (WordPress, Joomla, or Drupal); Other emerging technologies.

Repeatable for credit.

CSC 585. User Interfaces. 3 Credits.

This course introduces the technical principles of User Interfaces (UI) using the Front-End development of web-based applications as an example. Students will take the procedure from HTML, CSS, and JavaScript for the front-end and then shift their attention to using React.js for the front-end of Single Page Applications. They will focus on the "V" portion in the Model-View-Controller (MVC) architecture. The course features a modern server-side scripting platform such as Node.js or Express.js although the main focus is on the front-end View Engine React.js. Most of the course work is targeting developing the front-end for complex, large-scale web application systems.

CSC 586. System Administration and Security. 3 Credits.

This course is a hands-on study of the essentials of operating system administration with a strong focus on systems security. Approximately half of the class time is spent in the lab. Students work as system administrators on projects devised to illustrate basic system and security administrative features. Additionally, various script languages are taught to provide the basis for understanding and extending the system capabilities.

Distance education offering may be available.

CSC 587. 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 it's 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.

CSC 587 Prerequisite: Student must major in Computer Science or be admitted to the web certificate program.

Distance education offering may be available.

CSC 600. Advanced Seminar. 3 Credits.

This is a research-oriented course which will involve an investigation into an advanced and specialized topic determined according to faculty and student interest.

Repeatable for credit.

CSC 603. Advanced Seminar in Security. 3 Credits.

An in-depth investigation into specific areas of Computer Security reflecting research interests and significant technological developments in the field.

Repeatable for credit.

CSC 604. Advanced Seminar Web Technology. 3 Credits.

The detailed course content varies from one semester to another. The topic will be decided based on the technological development in the field and the scholarly interests of the faculty. Topics discusses include but are not limited to: Server-Side Programming using Unix or Windows platform; ASP.NET with C#; Google Search Engine Optimization; Client-Side Web Programming using Content Management Systems (WordPress, Joomla, or Drupal); Other emerging technologies. Students must proactively search for emerging technologies and prepare to do a presentation and/or conduct individual/group projects.

CSC 605. Internship in Computer Science. 3 Credits.

Provide the student with professional development and work experience in the computer science field.

CSC 605 Prerequisite: Successful completion of CSC 520, CSC 530, CSC 540, and CSC 560, with minimum grades of C-.

CSC 610. Independent Research. 3 Credits.

The student may work in one of three directions: thesis, individual project, or team project. (See 'Thesis Options')

Repeatable for credit.

CSC 620. Thesis. 3 Credits.

Contact department for more information about this course.