Computer Science

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 very often lead directly to a permanent job.

Profiles

Ryan Ivis

~Alumnus~

Ryan Ivis, Computer Science alumnus
Ryan Ivis, Computer Science alumnus

Ryan Ivis

“Western did a fantastic job of preparing me for my career."

Ryan Ivis knew he wanted to attend college in the mountains, but arrived at Western unsure of what he wanted to study. Soon, he found Computer Science and Business Administration—and has spent the last 11 years focused on Information Technology.

“The biggest influence [in choosing Western] was the location, followed closely by the community and welcoming events that [Western] put on at the time to get me there,” Ivis said.

He particularly noted the friendliness of Western’s resident assistants during his visit prior to enrolling at the college. So much so, that he became one himself, in addition to working with Western’s own Information Technology department as a student.

“[Western] enabled me to grow as an individual in ways high school didn't,” Ivis said. I personally had a ton of really great times with friends, as well as learning to balance school work with the rest of life. My time spent at Western went way too quickly.”

Since graduation, he has held roles as a Microsoft consultant, systems engineer, systems administrator and security engineer. Currently, he is the manager of Infrastructure Security at Ping Identity Corporation.

“[Western] did a fantastic job of preparing me for my career. The two classes that really helped me streamline my thought process were Introductions to C++ Programming. While the language is not something I use, all of the concepts taught relate to my daily work. I am not a developer by role, but nearly every facet of upper level engineering requires a ton of coding, scripting,” Ivis said.

Now, Ivis says he lives each day by trying to put his “best foot forward, solve problems, live a happy live and look forward to making trips to Crested Butte annually.”

“Working in Information Technology while at [Western] taught me the basics, and with some creativity, hard work and dedication, I have managed to stay relevant in the ever more competitive workplace,” Ivis said.

Lindsey Yoast

~Alumnus~

Lindsey Yoast Headshot
Lindsey Yoast Headshot

Lindsey Yoast

A 2015 graduate, Lindsey Yoast double majored in Mathematics and Computer Science, which led to her current role as a data scientist for Ruffalo Noel Levitz. 

For Lindsey Yoast, being a Mountaineer runs in the family.

With both her grandfather and father (and, later, her younger brother) as Western alumni, Lindsey always suspected she might also end up on Western’s campus.

“It’s kind of a family thing … we grew up coming to Gunnison, [I heard] stories about Gunnison and the University. We came to basketball camp here. [Attending Western] was always something that lived in the back of my head,” Lindsey said.

Although she had always considered coming to Western, Lindsey hadn’t planned on majoring in both Mathematics and Computer Science.

“When I first went to Western, I didn’t know what path I wanted to do … [or] what path I wanted to take,” Lindsey said.

She started out as a geology major. When it came time to take math classes to fulfill the Biology program requirements, though, Lindsey realized that she really liked the mathematics courses—enough that she changed her major to mathematics.

Then, in between exploring new trails and experiencing the Gunnison valley’s culinary options, Lindsey took on a few Computer Science courses and found that she loved those classes, too.

After some gentle encouragement from her professors, Lindsey declared Computer Science as her second major. She credits her current success, in part, to encouragement and flexibility from her professors in the program.

“If I was in a class and we were focusing on software development, but I had an idea for a project, they would let me follow that—because they knew that was the career path I wanted to go down,” Lindsey said of her professors. “They kind of kept pushing, and I’m glad they did. Without that, I wouldn’t be where I am.”

Now, Lindsey works as a data scientist for Ruffalo Noel Levitz, a higher education consulting firm. In this role, Lindsey is able to flex both her computer science and mathematics muscles, creating predictive models and developing new products for various colleges and universities. She’s also the youngest sitting board member for the University of Iowa’s Tippie College of Business.

“Having math and computer science on any resume in today’s world is going to help you get into a good career … it’s going to give you good tools,” Lindsey said.

Jaden Terry

~Alumnus~

Jaden Terry, Computer Science alumnus.
Jaden Terry, Computer Science alumnus.

Jaden Terry

“The computer science department at Western is phenomenal. They did a great job of covering the core concepts [of the field] and preparing me for the real world.”

From a football scholarship to a career in software engineering, Jaden Terry made the most of his time as a student at Western.

After earning his scholarship, Jaden’s love of the outdoors and of Gunnison’s tight-knit community brought him to Western—he graduated in 2015 with a major in Computer Science and a minor in Exercise and Sport Science.

“I wasn’t sure what I wanted to major in at first,” Jaden said, “but eventually found computer science my second year.”

As a member of the football team and the track team, some of Jaden’s favorite memories are from Western sporting events, as well as time spent with classmates from the Computer Science program.

Among them, he recalls “beating Adams State in the Colorado Classic after losing to them for the previous 10-plus years,” and “spending hours in the nerd corner of the library with classmates, trying to finish programming homework.”

Thanks to his professors and a summer internship creating Western’s virtual Campus Tour, Jaden has already established a career in software engineering. He has worked as software engineer at both USA Triathlon—with two former classmates—and at Insurance Technologies—a small software company in the insurance space.

“The computer science department at Western is phenomenal,” Jaden said. “They did a great job of covering the core concepts [of the field] and preparing me for the real world.”

Currently, Jaden works as a software engineer with The Boeing Company, and wants to encourage students to be confident as they network and search for the internships that could jump-start their careers.

“Don’t be afraid to apply for that first job or internship. I was very apprehensive because I didn’t think I was smart enough … Just be willing to learn new things, and don’t be scared to fail or ask questions,” he said.

And his last piece of advice for up-and-coming CS students?

“Keep learning. Spend time learning technologies that interest you, and practice,” Jaden said. “Write programs and websites that solve problems.”

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 Science Scholarship Available to:

Students majoring in Computer Science, who have completed a minimum of 12 credit hours at Western Colorado University, three 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 nine credits.

Scholarship Provided by:

Stephen Watson

Amount:

$500

Scholarship Recipient 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

Faculty & Staff

Faculty

Douglas MacGregor, Ph.D. headshot
Adjunct Professor
B.A., University of Maryland, History, M.S., John Hopkins University, Cyber Security, M.S., University of Illinois, Computer Science, Ph.D., Kyoto University, Infromation Science
Phone: 970.943.2069
Office Location: Hurst Hall 105
Marc Rubin, Ph.D. 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, Ph.D. headshot
Professor of CS and Math
B.A., University of Colorado, Philisophy, B.S., Eastern Washington University, Math and Computer Science, M.S., Eastern Washington University, Math, Ph.D., University of Texas-Austin, Mathematics Education
Phone: 970.943.2999
Office Location: Hurst Hall 214
Stephen Winters-Hilt headshot
Assistant Professor of Computer Science
B.S., California Institute of Technology, Electrical Engineering & Physics, M.S., California Institute of Technology, ​Applied Physics, Ph.D., U. Wisconsin,​ Mathematical Physics, Ph.D., U. California -- Santa Cruz, Computer Science & Bioinformatics
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.

 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 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 credits)

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

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 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 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 credits)

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

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 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 330 - Operating Systems and Architecture (3 credits)

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 credits)

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

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 credits)

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 credits)

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 credits)

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

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 credits)

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 credits)

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

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

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

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

Major
Bachelor of Science
Mathematics & Computer Science
 

GENERAL DESCRIPTION

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 cyber security and data science through modern coursework.

Students graduate ready to make positive contributions to the world through in-demand, exciting and rewarding careers. 

THE PROGRAM

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

The Standard major is the most flexible option and requires a minor in an additional area of study.

The Software Engineering emphasis takes a much deeper dive than the Standard major does, immersing students in the theory and practice of crafting complex and robust software systems.

The Information Security emphasis adds five courses to the Standard major and is for students who are interested in network and web security, computer system and database security, and ethical hacking and malware analysis.

The Data Science emphasis has higher math requirements and features additional courses in machine learning, big data analytics and distributed computing.

CAREERS

The Bureau of Labor Statistics projects that employment of software developers will grow 24 percent between 2016 and 2026, faster than the average for all occupations. These occupations are projected to account for about 302,500 new jobs during that time period. Furthermore, in a recent survey of Western's Computer Science graduates, 98 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. Additional career fields for Computer Science graduates include: 

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

WANT TO LEARN MORE?

Daniel L. Schuster, Ph.D.