Computer Science

Careers

Career preparation starts your first year at Western. Visit Career Services in Library 120 and online at western.edu/career to discover your interests, define your goals and land your dream job.

Courses

For required courses and degree plans, visit the official University Catalog. Below is a general overview of courses at Western Colorado University related to this area of study.

 CS 150 - Computers in Society (3 cred.)

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 cred.)

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 cred.)

An introduction to software development taught in Python. Topics include control structures, I/O, functions, strings, lists, files, other data structures and basic algorithms that use them. Emphasis is placed on good problem-solving practices, testing and debugging.

 CS 191 - Computer Science II (3 cred.)

A continuation of CS 190 taught in C++. Students develop applications of increasing sophistication. Topics include control structures, I/O, functions, strings, arrays, files, objects and classes, elementary searching and sorting algorithms. Emphasis is placed on software engineering and an introduction to object-oriented programming. Prerequisite: CS 190 with a minimum grade of “C-”.

 CS 195 - Database Management System (3 cred.)

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 220 - Data Analytics (3 cred.)

Introductory knowledge discovery using computational, statistical, and informatics methods. Topics include analysis of any data that is in digital form, including text, symbolic data or image data, and finding patterns in science, the arts, and society. Prerequisite: CS 190 with a minimum grade of “C-”.

 CS 235 - Computer Networks (3 cred.)

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 cred.)

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 cred.)

A continuation of CS 191 taught in C++. Students use the Standard Template Library to solve moderately difficult problems. Topics include multi-dimensional arrays, vectors, stacks, queues, hash maps, associative arrays, linked lists, trees and heaps. Emphasis is placed on object-oriented design. Prerequisite: CS 191 with a minimum grade of “C-”.

 CS 303 - Machine Learning (3 cred.)

A study of computer systems that learn. Topics include decision trees, concept learning, neural networks, reinforcement learning, linear and non-linear models, clustering, validation, feature selection, support vector machines and hidden Markov models with applications to the arts and sciences. Prerequisite: CS 220 Data Analytics with minimum grade of “C-”.

 CS 310 - Programming Projects with X (3 cred.)

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 317 - Genome Analysis (with laboratory) (3 cred.)

This course introduces students to the appropriate mathematical techniques to answer questions about information contained in genetic sequences. These techniques may include dynamic programming, motif similarity, Bayesian models, hidden Markov models, principal component analysis, and clustering. Students use standard genome query tools to annotate genomic DNA. MATH 317, BIOL 317 and CS 317 cannot both be taken for credit. Prerequisite: MATH 151, MATH 213 and CS 190.

 CS 320 - Programming Languages (3 cred.)

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, object-oriented, 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 330 - Operating Systems and Architecture (3 cred.)

A study of how hardware and operating systems work in a multiprocessing computer system. The Intel architecture including the instruction set, memory hierarchy, and exception handling are covered. The Windows and Linux operating systems functions and programming interfaces are studied to understand modern computing environments. Prerequisite: CS 191

 CS 340 - Computer Graphics (3 cred.)

A presentation of the design and use of computer-graphics systems (hardware and software) and
construction of two- and three-dimensional graphics. Applications of computer graphics in business, industry, education, and communications are emphasized. Prerequisite: CS 190 with a minimum grade of “C-.”

 CS 350 - Web Applications Development II (3 cred.)

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 cred.)

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 365 - Big Data Analytics (3 cred.)

An intensive study of big data and informatics applications for digital data. Topics include text analysis using classic works and social media, numeric analysis using economic and scientific data and symbolic analysis using genomic data. Emphasis is on programming solutions to complex problems. Prerequisite: CS 220 with minimum grade of “C-”.

 CS 370 - Systems Programming in C (3 cred.)

A study of C programming in a UNIX environment. Topics include the C language, the system call interface for file I/O, process management, interprocess communication and threads, command line utilities for file system navigation, file editing, compiling, execution and scripting. Prerequisite: CS 280 with a minimum grade of “C-”.

 CS 380 - The Internet of Things (3 cred.)

A hands-on introduction to the theory and programming of wireless embedded systems - the Internet of Things. Topics include sensors, actuators, state machines, scheduling, wireless communications, time synchronization, localization, fault tolerance, and security related to cyber-physical systems. Prerequisites: CS 330 or CS 370 with minimum grade of “C-”.

 CS 390 - Software Entrepreneurship (3 cred.)

A hands-on and project-based course on startup entrepreneurship for software technologies. Students develop and test product ideas, identify market segments, develop customer personas, create minimum viable products and pitch their ideas. Prerequisite: CS 250 and CS 280 with minimum grades of “C-”.

 CS 410 - Systems Analysis and Design (3 cred.)

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 cred.)

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 415 - Software Engineering II (3 cred.)

A continuation of study of the software lifecycle. Topics include methods and tools for the implementation, integration, testing and maintenance of large software systems, software development, test environments and quality assurance, team organization and management. Technical presentation methods and practice are emphasized. There is a significant group project. Prerequisite: CS 412 with a minimum grade of “C-”.

 CS 430 - Mobile Development (3 cred.)

An introduction to mobile application development using the Android platform. Topics include development tools, the application life-cycle, interfaces, asynchronous tasks, events, data storage and services. Prerequisite: CS 280 with a minimum grade of “C-”.

 CS 440 - Distributed Computing for Machine Learning and Data Analysis (3 cred.)

A programming intensive introduction to distributed computing with attention to applications in machine learning and data analysis. Topic includes distributed sequential analysis methods, distributed Markov model-based methods, and distributed support vector machine-based methods. Prerequisite: CS 303 or CS 365 with a minimum grade of “C-”.

 CS 450 - Ethical Hacking and Malware (3 cred.)

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 cred.)

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 470 - Algorithms (3 cred.)

A continuation of CS 280 taught in a language such as Python or C++. Students design and develop more complex algorithms. Topics include complexity analysis, advanced sorting and searching, graph algorithms, greedy algorithms, intractability and heuristics. Emphasis is placed on algorithm design, testing, efficiency and math foundations. Prerequisite: CS 280 with a minimum grade of “C-”.

 CS 480 - Computer Science Application Project (3 cred.)

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 495 - Senior Project (3 cred.)

A hands-on and project-based course on the design and construction of sizeable software products. Topics include requirements, software architecture, professional tools for design, testing and project management. Students participate in and manage development teams. Prerequisite: CS 412 with a minimum grade of “C-”.

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

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 cred.)

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 cred.)

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 cred.)

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 cred.)

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 200 - Discrete Mathematics (3 cred.)

A study of the discrete mathematics necessary for computer science. Topics include logic, set theory, Boolean algebra, counting and enumeration, discrete probability, mathematical induction, linear modeling, basic matrix algebra, algorithm analysis and recurrence relationships. Computer science applications are emphasized. Corequisites: Math 151 and CS 280 with minimum grades of “C-”.

 MATH 213 - Probability and Statistics (3 cred.)

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 cred.)

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.

Faculty & Staff

Faculty

Doug MacGregor, Ph.D. headshot
Adjunct Professor of Computer Science
Phone: 970.943.2069
Office Location: Hurst Hall 105
Marc Rubin, Ph.D. headshot
Assistant Professor of Computer Science
Phone: 970.943.2802
Office Location: Hurst Hall 212
Daniel L. Schuster, Ph.D. headshot
Professor of Computer Science, Mathematics
Phone: 970.943.2999
Office Location: Hurst Hall 214
Stephen Winters-Hilt, Ph.D., Ph.D. headshot
Assistant Professor of Computer Science
Phone: 970.943.7006
Office Location: Hurst Hall 220

Scholarships

Program-Based Scholarships

John Peterson Memorial Scholarship In Computer Science

Eligibility

  • Students majoring in Computer Information Science
  • Completed a minimum of 12 credit hours at Western, 3 of which can be applied toward their majors
  • Must have minimum 3.0 GPA
  • Plan on enrolling in at least nine credits

Description

This scholarship is provided by Stephen Watson.

Amount: $500

Selected by: Math and Computer Science Scholarship Committee

Application:

Contact the Mathematics & Computer Science Department for application and deadline information.

970.943.2015 | Hurst Hall 128

Institutional Scholarships

Common Scholarships

Western offers approximately 70 common scholarships for which a wide variety of students are eligible (e.g., locals, veterans, transfers). Apply for any number of these common scholarships using Western’s Common Scholarship Application, which is due April 1. For more information, visit western.edu/scholarships.

Early Action Credit

If a student is accepted to Western by Nov. 1 and qualifies for a merit scholarship, the student will receive an additional $500 for the first year. Use our Net Price Calculator to determine whether you qualify for a merit scholarship.

Mountaineer Alumni Recommendation Scholarship

Western Colorado University alumni can nominate prospective students for a $500 scholarship ($250 per semester) for first year only. Application deadline is typically June 1. For more information, visit western.edu/mars.

Neighboring States Program

Students with a permanent address from one of the seven contiguous neighboring states to Colorado who have demonstrated financial need are automatically considered for a special $1,000 per year grant, totaling $4,000 over four years.

The Western Neighboring States program can be added to WUE, CP or merit scholarships. So, if you are a permanent resident of one of those seven states—and show financial need—you are eligible.

For more information about the Neighboring States program, visit Western’s Tuition Discount Programs Page.

Presidential Promise

The Presidential Promise is guaranteed to students who have received a scholarship through the Denver Scholarship Foundation (DSF) and/or GearUp—and are eligible for a Pell Grant.

For students who meet these criteria, Western will cover the cost of tuition and fees through the combination of federal, state and institutional aid. For more information on the Presidential promise, visit western.edu/scholarships.

Tuition Discount Programs

Western Undergraduate Exchange (WUE) or Central Plains (CP) tuition represents a substantial savings relative to normal, out-of-state tuition. Students eligible for the WUE or CP program will be charged 150% of Western’s total in-state tuition. For 2018-19, total in-state tuition was $8,934. WUE/CP tuition was $13,401. The WUE/CP discount is valued at $4,695.

For more information about the WUE and CP geography-based programs, visit Western’s Tuition Discount Programs Page.

Western Merit Scholarship

Immediately upon acceptance at Western, every student is considered for a merit scholarship worth between $2,500-$4,500 per year for in-state students and $8,000-$10,000 for out-of-state students. The amount is based on the student's GPA and ACT/SAT scores. Visit our Net Price Calculator at western.edu/cost to determine whether you qualify for a merit scholarship. 

For more information about merit scholarships at Western, visit western.edu/scholarships.

Get Involved

A college education is more than just taking courses. Meet new people, apply your skills and stretch beyond your comfort zone. Make your education an experience.

  • 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.
     
  • Information Technology Services: Many Computer Science 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. Computer Science internships pay well and very often lead directly to a permanent job.

Computer Science at Western focuses on software development, information security and data science. Our students learn modern languages, tools and techniques. They take on difficult projects in software development and learn state-of-the-art security methods and data science through modern coursework. Students graduate ready to make positive contributions to the world through in-demand, exciting and rewarding careers.

Each track within the Computer Science program is built on a core of programming in current languages such as Python, C++ and Java, while focusing on skills such as database management, GUI design, web development and software engineering.

Learn More

Reach out for more information about the program.

Daniel Schuster Headshot
Professor of Computer Science, Mathematics
Phone: 
Office Location: 
Hurst Hall 214

Related Programs

Actuarial Science

Read more

Computer Science - University of Colorado Partnership

Read more

Data Analytics

Read more

Data Science

Read more

Honors Program

Read more

Information Security

Read more

Mathematics

Read more

Mechanical Engineering - University of Colorado Partnership

Read more

Software Engineering

Read more

Web Design & Development - Computer Science

Read more