Computer Science

Major
Bachelor of Science
Mathematics & Computer Science

Computer scientists write the software that runs the world’s computers.

GENERAL DESCRIPTION

Computer Science at Western focuses on Software Engineering and Information Security. Our students learn modern languages, tools and techniques. They take on difficult projects in software development and they learn state-of-the-art cyber security. Students graduate prepared to enter one of the most exciting, challenging and rewarding careers in the modern world.

THE PROGRAM

The Computer Science program has three tracks: the Standard Major, the Information Security Emphasis and the Comprehensive Major. The tracks share a core of programming in current languages such as Python and Java, database management, GUI design, web development and software engineering. The Standard Major requires a minor, allowing students to study in an additional area. The Information Security Emphasis adds seven additional courses to the Standard major in more advanced Computer Science, cyber security and cryptography. The Comprehensive Major has higher demands in Math and three additional advanced Computer Science courses.

CAREERS

The average starting salary for a software developer is more than $66,000, and the Bureau of Labor Statistics predicts that software development jobs will increase up to 31 percent over the next 10 years. In a recent survey of Western’s Computer Science graduates, 97.5 percent reported working as practicing computer scientists, typically as software developers in a wide variety of fields, but also as IT professionals, cyber security professionals and network managers.

  • Software Engineering
  • Web Development
  • Video Game Programming
  • Information Technology
  • Mobile-Device Programming
  • Networking
  • Data Analytics and Machine Learning
  • Database Management
  • Embedded Systems Programming
  • Cyber Security

WANT TO LEARN MORE?

Our friendly faculty would love to hear from you.

Daniel L. Schuster

Opportunities

OPPORTUNITIES

INDEPENDENT PROJECTS: Students have worked on projects such as facial recognition software, a gesture-controlled quadcopter, machine learning, Android apps, an online guided tour, commercial websites and self-guiding vehicles.

IT JOBS: Many CS students work for the Western IT Department, keeping student and university computers and networks running smoothly.

INTERNSHIPS: Students have gotten internships with Lockheed Martin, Amazon, Raytheon, Dell, Northrop Grumman and other companies large and small. CS internships pay well and often lead directly to a permanent job.

Profiles

Katherine Spalding will graduate in December with a degree in Computer Science.
Katherine Spalding graduated in December 2015 with a degree in Computer Science and a job with the FedEx IT department!
Kevin Sears
" I went from knowing nothing about programming to doing it every day."
Alan Cleary
"Western prepared me for graduate school."
Kendric Evans
"At Western, you really have the opportunity to work closely with the faculty which helped me gain a very real depth and breadth of knowledge in my field"
Rebecca and Quinn Bryant
'When we arrived at Western in 2011, people accepted us as we were: two people attempting to navigate life’s chaos.'

Scholarships

Scholarships associated with academic programs usually have a specific scholarship application form that can easily be obtained by contacting that academic program's office or visiting that academic program's web page. If you have any questions, please contact the Financial Aid office at 970.943.3085 or 800.876.5309. To find scholarships based on year of study (e.g. - Freshmen Scholarships), please see the navigation to the left.

 John Peterson Memorial Scholarship In Computer Science

Computer Information Science Scholarship Available to:

Students majoring in Computer Information Science, who have completed a minimum of 12 credit hours at Western Colorado University 3 of which can be applied towards their major.

The students must have at least a 3.0 GPA and plan on enrolling in at least 9 credits.

Scholarship Provided by:

Stephen Watson

Amount: $500

Scholarship Recipient Selected by:

Math and Computer Information Science Scholarship Committee

Application: Contact the Mathematics and Computer Information Science Department for application and deadline information. (970) 943-2015 - Hurst Hall 128

Find out more information about Western's Computer Information Science Program at www.western.edu/mathematics

 Computer Science Departmental Scholarship

Computer Information Science Scholarship Available to:

Students majoring in Computer Science, who have completed a minimum of 12 credit hours at Western Colorado University 3 of which can be applied towards their major. The students must have at least a 3.0 GPA and plan on enrolling in at least 9 credits.

Amount: $500

Scholarship Recipient Selected by:

Math and Computer Information Science Scholarship Committee

Application: Contact the Mathematics and Computer Information Science Department for application and deadline information. (970) 943-2015 - Hurst Hall 128

Find out more information about Western's Computer Information Science Program at www.western.edu/mathematics

Faculty & Staff

Faculty

Douglas MacGregor headshot
Lecturer Computer Science
Phone: 970.943.2069
Office Location: Hurst Hall 114
Marc Rubin headshot
Assistant Professor of Computer Science
B.A., Colorado College, Psychology, M.S., University of Tennessee, Computer Science, Ph.D., Colorado School of Mines, Computer Science
Phone: 970.943.2802
Office Location: Hurst Hall 212
Daniel L. Schuster headshot
Chair of Computer Science and Mathematics
B.A., University of Colorado, B.S., Eastern Washington University, M.S., Eastern Washington University, Ph.D., University of Texas-Austin
Phone: 970.943.2999
Office Location: Hurst Hall 214
Stephen Winters-Hilt headshot
Assistant Professor of Computer Science
Phone: 970.943.7006
Office Location: Hurst Hall 220

Courses

FOR REQUIRED COURSES AND DEGREE PLANS, VISIT THE OFFICIAL UNIVERSITY CATALOG. This is a sample of courses offered by Western Colorado University. To ensure the courses you need are offered during the current semester, please visit the university course search.

 CIS 320 - Programming Languages (3 credits)

An investigation of the theory, usage, and implementation of programming languages. Emphasis is on the theoretical basis for programming languages and practical examples of their use. Basic language paradigms are developed: imperative, functional, objectoriented, and logic. Other topics include type systems and language translation. Languages studied include C, C++, Java, Lisp, Haskell, Prolog, and Python. Prerequisite: CIS 280 with a minimum grade of "C-."

 CS 150 - Computers in Society (3 credits)

An introduction to the use of computing devices and their impact on society. Topics include: how computers work, the history of computing, philosophical issues in computing, the economics of software development, intellectual property issues, privacy and security, applications of computing, legal issues, the digital divide, the role of computing in government, and computer-assisted collaboration.

 CS 170 - Information Security and Hacking (3 credits)

An introduction to the principles and concepts of information security and hacking. The course uses real world examples to illustrate attacks on computer systems and networks. Topics include vulnerabilities, threats and attackers, data protection and encryption and the nature of malware. Basic hacking concepts are introduced along with defensive measures and counterattacks.

 CS 190 - Computer Science I (3 credits)

An introduction to software development. Students develop applications using modern programming languages and techniques. Emphasis is placed on good software engineering practices for problem analysis, program design, documentation, testing and debugging. The course uses an industry standard programming language.

 CS 191 - Computer Science II (3 credits)

A continuation of CS 190 taught in the Java programming language. Students develop stand alone GUI and console applications and applets of increasing sophistication. Topics include: arrays, objects and classes, encapsulation and inheritance, file management, dynamic data structures, searching, sorting, recursion, stacks and queues, with emphasis on abstraction and implementation and an introduction to algorithm analysis. Prerequisite: CS 190 with a minimum grade of C-.

 CS 195 - Database Management System (3 credits)

An introduction to the principles and practice of relational database design, implementation and manipulation. Topics include Structured Query Language (SQL), relational models, elementary database design as well as database management with a programming language such as Java. Prerequisite: CS 190 with a minimum grade of ÒC-Ó.

 CS 235 - Computer Networks (3 credits)

An investigation of the transmission of data and information between computer systems. Topics include simple data communications, protocols, error control, local-area networks, wide-area networks such as the Internet packet-switching networks, and several networking models. Various data communication hardware and software are also examined. Prerequisites: CS 191 with a minimum grade of ÒC-Ó.

 CS 250 - Web Applications Development I (3 credits)

A course studying web site design, focusing on HTML5 and CSS for page structure and style, the embedded JavaScript language for interactivity, and a web application server language for database access. The student learns to implement the essentials of a interactive, database driven website. Prerequisite: CS 191; Corequisite: CS 195.

 CS 280 - Data Structures (3 credits)

A survey of advanced data structures and algorithms. Topics include: linear lists, linked lists, arrays, trees, multi-linked lists, hashing, searching, sorting, recursion and analysis of the algorithms that use these structures. Taught in Java. Prerequisite: CS 191 with a minimum grade of "C-".

 CS 303 - Machine Learning (3 credits)

A study of computer systems that learn from experience. Classroom exercises include the building of systems that learn and adapt using real-world applications. Topics covered include decision trees, concept learning, neural networks, reinforcement learning, linear and non-linear models, clustering, validation, and feature selection. Prerequisites: CS 190; and MATH 213 or ECON 216.

 CS 310 - Programming Projects with X (3 credits)

A project-based course focusing on medium-sized projects in a given programming language using tools and environments appropriate to the selected language. Students gain proficiency in the language by doing projects from a variety of subjects such as artificial intelligence, graphics, machine learning, compilers, and Human-Computer Interaction. This course contains individual and group work. May be repeated with a different implementation language. Prerequisite: CS 191 with a minimum grade of ÒC-.Ó

 CS 311 - Embedded Systems (3 credits)

A project-based introduction to embedded systems. Students build and program systems that include microcontrollers and sensors, actuators, networking, motors, and cameras. Various applications involve robotics, remote sensing, sound processing, and kinetic sculpture. Prerequisites: CS 190 and junior standing.

 CS 350 - Web Applications Development II (3 credits)

A study of client-server applications designed around the World Wide Web. Students design and implement interactive applications which provide access to centralized resources such as databases and mail servers from web browsers. Students utilize JavaScript and server-based technologies to construct web-based programs that communicate with servers. Technologies such as Ajax, XML, JSON, and commonly used JavaScript libraries are included. Prerequisite: CS 250 with a minimum grade of ÒC-.Ó-

 CS 360 - System Security (3 credits)

A study of system level hacking. Topics include workstation and server vulnerabilities, security and protection mechanisms. The nature of system attacks combined with standard intrusion detection systems will demonstrate the challenge of correctly preventing, diagnosing and responding to attacks. Prerequisite: CS 330

 CS 410 - Systems Analysis and Design (3 credits)

The fundamental concepts of systems analysis and design are studied in the context of computerized information systems. Topics include high-level system construction tools, system design methodology, data representation languages such as XML, server-based system design, web services, system security, and system description languages such as UML. Also addressed is the human element in system design: working with users and domain experts to develop system requirements, and understanding the challenges of large scale system projects. Each student completes a number of systems design projects during the term. Prerequisite: CS 310 with a minimum grade of C-.

 CS 412 - Software Engineering (3 credits)

An introduction to the fundamental principles of software engineering. Formal software development techniques and high-level software tools are emphasized. Students are taught a programming method based on the recognition and description of useful abstractions. Topics include encapsulation and reuse, design patterns, object-based design, software testing and quality, formal methods for software design, and project management. Students are expected to complete a significant project that employs techniques from the topics studied. Prerequisite: CS 410 with a minimum grade of ÒC-.Ó

 CS 450 - Ethical Hacking and Malware (3 credits)

Application of computer hacking principles to determine vulnerabilities in computer systems and to design preventative processes. Each stage of the attack process from reconnaissance to final objective will be used to analyze attack methods and determine the best method to detect and remediate an attack using an incident response process. Prerequisite: CS 330

 CS 460 - Network Security (3 credits)

A study of network and web hacking. Topics include web vulnerabilities, cryptographic tools, web security and protection mechanisms. The nature of network attacks using sample data sets combined with standard intrusion detection systems will demonstrate the challenge of correctly diagnosing and responding to attacks. Prerequisite: CS 235 and CS 330

 CS 480 - Computer Science Application Project (3 credits)

Students develop a comprehensive application project with a supervising faculty member. A summary paper is written or public presentation of the project is made to the CS faculty and students. Prerequisite: 18 credits of Computer Science course work, including nine upper-division credits, and instructor permission.

 CS 499 - Internship or Field Experience in Computer Science ( credits)

Students participate in a supervised internship or field experience with a cooperating university or corporation, in the computer science field. A summary paper is written or public presentation of the field experience is made before the CS faculty and students, and a review from the supervisor is prepared. Prerequisite: 18 credits of Computer Science course work, including nine upper-division credits, and instructor permission.

 MATH 140 - College Algebra (3 credits)

An integration of the essential algebraic manipulations, solving equations and inequalities, polynomial functions, exponential and logarithmic functions, and techniques of graphing. Prerequisite: ACT math score of 21 or above; SAT math score of 540 or above; MATH 099; or Accuplacer Elementary Algebra test score of 106 or above; or co-requisite MATH 102 (SAI). GT-MA1

 MATH 141 - Precalculus (4 credits)

This course explores the theory and applications of trigonometry, and includes an introduction to vector and matrix analysis. Topics may include the unit circle, triangle trigonometry, trigonometric functions, polar coordinates, complex numbers, vector geometry, and applied matrix techniques. Prerequisite: ACT math score of 23 or above; SAT math score of 560 or above; MATH 140 with a minimum grade of C-; or Accuplacer university- level mathematics test with a score of 65 or above.

 MATH 151 - Calculus I (4 credits)

A study of differential calculus, including limits, continuous functions, Intermediate Value Theorem, tangents, linear approximation, inverse functions, implicit differentiation, extreme values and the Mean Value Theorem. This course also introduces Integral calculus including anti-derivatives, definite integrals, and the Fundamental Theorem of Calculus. Prerequisite: ACT math score of 27 or above; SAT math score of 630 or above; MATH 141 with a minimum grade of C-; or Accuplacer university-level mathematics test with a score of 95 or above. GT-MA1

 MATH 151 - Calculus I (4 credits)

A study of differential calculus, including limits, continuous functions, Intermediate Value Theorem, tangents, linear approximation, inverse functions, implicit differentiation, extreme values and the Mean Value Theorem. This course also introduces Integral calculus including anti-derivatives, definite integrals, and the Fundamental Theorem of Calculus. Prerequisite: ACT math score of 27 or above; SAT math score of 630 or above; MATH 141 with a minimum grade of C-; or Accuplacer university-level mathematics test with a score of 95 or above. GT-MA1

 MATH 213 - Probability and Statistics (3 credits)

A course in the use of statistical techniques to draw knowledge from data. Topics include exploratory data analysis, descriptive statistics, t-procedures, ANOVA, chi squared procedures, regression, and non-parametric tests. Statistical software is used extensively to analyze real data sets. Prerequisite: MATH 141 with a minimum grade of C-, or Accuplacer university-level mathematics test score of 85 or above; or instructor permission. GT-MA1

 MATH 260 - Applied Linear Algebra (3 credits)

A course in the techniques and applications of linear algebra. The core topics include solving systems of linear equations, eigenvalues and eigenvectors, matrix decomposition, the pseudoinverse and least squares approximations, and the singular value decomposition. The theory is supplemented with extensive applications and computer programming. Prerequisite: MATH 141.