Computer Science
Daniel Coffman, Chair
coffmand@wcsu.edu
Higgins Hall 039B
(203) 837-8746
Cathy DeSisto, Department Secretary
desistoc@wcsu.edu
Higgins Hall 101
(203) 837-9299
Faculty
D. Coffman, Chair
G. Ganchev
W. Joel
T. Ivanov
Adjunct Faculty
T. Nassar
J. Shpunt
R. Gurkewitz, Associate Professor Emeritus
Overview
The Computer Science department offers Bachelor’s degrees designed to meet the needs of students interested in software development. They can accommodate students who plan to enter the profession directly from college or who plan to continue with graduate study. The programs are continuously revised to remain up to date. The department recommends that all Applied Computing and Computer Science majors pursue a minor in some field.
Mission
Consistent with the university’s mission of being an accessible, responsive, and creative intellectual resource for the people and institutions of Connecticut, the department’s mission is to offer a broad and up-to-date curriculum that provides students with a comprehensive foundation that permits graduates to adapt to new technology and new ideas.
Goals
To accomplish this mission the Department of Computer Science emphasizes the following:
- Technical understanding of Computer Science: Graduates will have a mastery of Computer Science as described in the Body of Knowledge of the current ACM/IEEE Computing Curricula.
- Common themes and principles: Graduates will understand a number of recurring themes, such as abstraction, complexity, and evolutionary change, and a set of general principles, such as sharing a common resource, security, and concurrency, and will recognize that these themes and principles have broad application to the field of computer science and are not relevant only to the domains in which they were introduced.
- The interplay between theory and practice: Graduates will understand the interplay between theory and practice and how theory and practice influence each other.
- System-level perspective: Graduates will be able to think at multiple levels of detail and abstraction. They will be able to recognize the context in which a computer system may function, including its interactions with people and the physical world.
- Problem-solving skills: Graduates will be able to apply the knowledge they have gained to solve real problems. They will realize that there are multiple solutions to a given problem and that selecting among them is not a purely technical activity, as these solutions will have a real impact on people’s lives. Graduates will be able to communicate their solution to others, including why and how a solution solves the problem and what assumptions were made.
- Project experience: Graduates will have been involved in at least one substantial software development project, requiring evaluation of potential solutions, work on a larger scale, integration of modules, and providing opportunities to develop their interpersonal communication skills.
- Commitment to life-long learning: Graduates will realize that the computing field advances at a rapid pace and that they must continue to learn and adapt their skills throughout their careers. To develop this ability, students will be exposed to multiple programming languages, tools, and technologies as well as the fundamental underlying principles throughout their course of study.
Degree Programs in Computing
Bachelor of Science in Computer Science
Bachelor of Arts in Applied Computing
Minor Programs
Computer Science
Digital Media
Informatics
Security
Web Development
Interdisciplinary Program
Bachelor of Arts in Digital and Interactive Media Arts (B.A.)
(See the Department of Communication & Media Arts for requirements – http://catalogs.wcsu.edu/ugrad1819/sas/programs/communication/)
Bachelor of Science in Computer Science (B.S.)
Program Educational Objectives
Program educational objectives are broad statements that describe what graduates are expected to attain within few years of graduation. Program educational objectives are based on the needs of the program’s constituencies.
During this time, graduates of the Computer Science program will have applied their expertise to contemporary problem solving, will be engaged professionally, will have continued to learn and adapt, and will have contributed to their organizations through leadership and teamwork. The program educational objectives are therefore expertise, engagement, learning, leadership and teamwork. More specifically, each student will demonstrate:
- peer-recognized expertise together with the ability to articulate that expertise and use it for contemporary problem solving in the analysis, design, implementation and evaluation of computing solutions
- engagement in the computing profession, locally and globally, by contributing to the ethical, competent, and creative practice of software engineering or other computing professional careers.
- sustained learning and adaptation to a constantly changing field through graduate work, professional development, and self-study.
- leadership and initiative ethically to advance professional and organizational goals, facilitate the achievements of others, and obtain substantive results.
- commitment to teamwork while working with others of diverse cultural and interdisciplinary backgrounds.
Requirements:
Students must complete all general education competency requirements (see program sheet for details), the course and credits listed below and additional free electives to total a minimum of 120 semester hours, including foreign language and exercise science. A GPA of 2.5 or better is required in the CS major and math courses for graduation.
Required Courses:
CS 140 Introduction to Programming
CS 170 Language C++
CS 205 Data Modeling and Database Design
CS 215 Computer Architecture
CS 221 Object Oriented Programming & Data Structures
CS 240 Computer Organization & Software
CS 315 Design and Analysis of Algorithms
CS 350 Object Oriented Software Engineering
or CS 305 Database Applications Engineering
or CS 360 Distributed Applications Engineering
CS 355 Programming Languages
CS 450 Operating Systems
MAT 141 Foundational Discrete Mathematics
MAT 181 Calculus I
MAT 222 Introductory Statistics
MAT 304 Discrete Mathematics for Computer Science
CS/MAT 359 Introduction to Theory of Computation
PHI 227 Ethics in Computing
Twelve semester hours of approved computer science electives.
Course Restrictions
For a complete list of prerequisites, corequisites and other restrictions for all courses, please consult the Course Description section of this catalog.
The following is a per-semester sequence of courses. However, due to the diversity of student backgrounds, students must consult with their faculty adviser to select the program sequence which best fits their needs.
Freshman Year
Fall Semester | Spring Semester |
CS 140 | CS 170 |
MAT 133 or MAT 170 | MAT 141 |
Sophomore Year
CS 205 | CS 215 |
CS 221 | CS 240 |
MAT 181 | MAT 222 |
MAT 304 |
Junior Year
CS 315 | CS 350 or CS 305 or CS 360 |
CS Elective | CS Elective |
Lab science | Lab science |
Senior Year
CS 450 | CS Elective |
CS 355 | CS/MAT 359 |
Learning Outcomes
Graduates of the program will have an ability to:
- Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
- Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
- Communicate effectively in a variety of professional contexts.
- Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
- Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
- Apply computer science theory and software development fundamentals to produce computing-based solutions.
Bachelor of Arts in Applied Computing (B.A.)
Requirements:
Students must complete all general education competency requirements (see program sheet for details), the course and credits listed below and additional free electives to total a minimum of 120 semester hours, including foreign language and exercise science.
Required Courses:
CS 140 Introduction to Programming
CS 170 Language C++
CS 205 Data Modeling and Database Design
CS 215 Computer Architecture
CS 221 Object Oriented Programming & Data Structures
CS 240 Computer Organization & Software
CS 350 Object Oriented Software Engineering
or CS 305 Database Applications Engineering
or CS 360 Distributed Applications Engineering
CS 450 Operating Systems
MAT 120 Elementary Statistics or MAT 222 Introductory Statistics
MAT 141 Foundational Discrete Mathematics or CS/MAT 165 Introductory Discrete Mathematics
MAT 181 Calculus I
PHI 227 Ethics in Computing
Twelve semester hours of approved computer science electives
Optional Concentrations
Computer Security
MAT 127 Introduction to Cryptology
MIS/JLA 341 Information Systems Security
CS 265 Computer Security Implementation with Java
Digital Media
MAT 272 Linear Algebra (prerequisite MAT 182 Calculus II, 4 credits)
CS 235 Digital Media
CS 340 Computer Animation
Software Engineering
CS 166 Introduction to UNIX
Two of the following:
- A Second Software Engineering Course from CS 305 Database Applications Engineering or CS 350 Object Oriented Software Engineering or CS 360 Distributed Applications Engineering
- CS 250 Advanced Topics in Programming using Java
- CS 245 Web Applications Development
Course Restrictions
For a complete list of prerequisites, corequisites and other restrictions for all courses, please consult the Course Description section of this catalog.
The following is a per-semester sequence of courses. However, due to the diversity of student backgrounds, students must consult with their faculty advisor to select the program sequence which best fits their needs.
Freshman Year
Fall Semester | Spring Semester |
CS 140 or CS 143 | CS 171 |
MAT 133 or MAT 170 | MAT 141 |
Sophomore Year
CS 205 | CS 215 |
CS 221 | CS 240 |
MAT 181 | MAT 120 |
Junior Year
CS 350 or CS305 or CS 360 | Lab science |
CS Elective | CS Elective |
Lab science |
Senior Year
CS 450 | CS Elective |
Learning Outcomes
Graduates of the program will have the ability to:
- Apply knowledge of computing and mathematics appropriate to solve a variety of software development problems of moderate difficulty
- Analyze a problem, and identify and define the computing requirements appropriate to its solution
- Design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs
- Function effectively on teams to accomplish a common goal
- Understand professional, ethical, legal, security and social issues and responsibilities as they apply to computing
- Communicate effectively ideas and computer-based solutions with a range of audiences
MINORS
To meet the minor requirement you can take no more than half of the credits in the major and nine credits must be taken at Western.
MINOR IN COMPUTER SCIENCE
Sixteen semester hours are required:
CS 170 Language C++
CS 221 Object Oriented Programming & Data Structures
CS 215 Computer Architecture
CS 240 Computer Organization and Software
MINOR IN DIGITAL MEDIA
Sixteen to 18 semester hours are required:
CS 170 Language C++ or CS 250 Advanced Topics in Programming with JAVA
ART 121 Design I
ART 141 Drawing I
CS 235 Digital Media
CS 330 Computer Graphics
CS 340 Computer Animation or ART 152 Photography I or ART 327 Digital Design or ART 328 Illustration III/Animation Production
MINOR IN INFORMATICS
Fifteen to 16 semester hours are required:
CS 170 Language C++ or CS 250 Advanced Topics in Programming with JAVA
CS 205 Database Modeling and Database Design
CS 215 Computer Architecture
CS 270 Computers in Society
MINOR IN SECURITY
Fourteen to 15 semester hours are required:
CS 166 Intro to Unix
CS 170 Language C++ or CS 250 Advanced Topics in Programming with JAVA
CS 240 Computer Organization and Software
MIS/JLA 341 Information Systems Security
MINOR IN WEB DEVELOPMENT
Fifteen to 16 semester hours are required:
CS 110 Website Production
CS 170 Language C++ or CS 250 Advanced Topics in Programming with Java
CS 205 Database Modeling and Database Design
CS 245 Web Applications Development