Computer Programmers
Create, modify, and test the code and scripts that allow computer applications to run. Work from specifications drawn up by software and web developers or other individuals. May develop and write computer programs to store, locate, and retrieve specific documents, data, and information.
Quick Facts
Median pay (WA)
$158K/yr
BLS OEWS · WA
WA annual openings
1,990/yr
WA projected growth
+0.3%
(2023–2033, WA ESD)
Typical entry
Bachelor's degree
WA job postings (CareerOneStop)
0
Live
Sources: O*NET 30.2 · WA ESD · BLS OEWS · CareerOneStop
What education do people in this job actually have?
O*NET incumbent survey (2024)
Some college / associate's 12%
Bachelor's degree 88%
Graduate degree 0%
How EWU courses prepare you for this work
(15 of 17 O*NET tasks have course evidence)
Correct errors by making appropriate changes and rechecking the program to ensure that the desired results are produced.
10 courses cover this
· importance: 4.4 /5
Courses preparing students for: Correct errors by making appropriate changes and rechecking the program to ensure that the desired results are produced.
Course
Level
CSCD 210
200
MATH 485
400
MATH 443
400
CSCD 210
200
CSCD 320
300
MATH 445
400
MATH 443
400
EENG 470
400
MATH 347
300
MATH 445
400
Write, compile and execute a complete program for a given problem. Implement a program that uses an array to solve a problem.
Interpret output from statistical software correctly
Compare the error from a numerical calculus approximation to the corresponding error estimate; Implement a numerical approximation to a solution of an initial value problem;
Write rigorous correctness proofs for algorithms.
Compute local truncation error and understand its relationship to the global error in a given numerical scheme. Employ the appropriate numerical technique to approximate a solution of an initial value problem, boundary value problem, or partial differential equation, with careful consideration of initial or boundary data.
Design a closed-loop system that meets specified transient and steady state error goals.
use numerical schemes to find approximate solutions to initial value problems utilizing mathematical software such as Matlab or Mathematica.
Consult with and assist computer operators or system analysts to define and resolve problems in running computer programs.
7 courses cover this
· importance: 3.5 /5
Courses preparing students for: Consult with and assist computer operators or system analysts to define and resolve problems in running computer programs.
Course
Level
CSCD 210
200
CSCD 210
200
CSCD 340
300
MATH 444
400
CSCD 210
200
MATH 347
300
EENG 470
400
Write, compile and execute a complete program for a given problem. Implement a program that uses an array to solve a problem. Write, compile and execute a program that will implement the Comparable interface.
Program a memory management simulation.
Implement an iterative method to solve a problem (e.g. matrix decomposition, solution of a linear system of equations, determining eigenpairs of a matrix)
use numerical schemes to find approximate solutions to initial value problems utilizing mathematical software such as Matlab or Mathematica.
Design a closed-loop system that meets specified transient and steady state error goals.
Prepare detailed workflow charts and diagrams that describe input, output, and logical operation, and convert them into a series of instructions coded in a computer language.
7 courses cover this
· importance: 3.6 /5
Courses preparing students for: Prepare detailed workflow charts and diagrams that describe input, output, and logical operation, and convert them into a series of instructions coded in a computer language.
Course
Level
MATH 448
400
CSCD 420
400
CSCD 210
200
CSCD 340
300
PHYS 363
300
MATH 485
400
CSCD 210
200
Visualize models graphically
Create an interpreter or compiler from a Backus-Naur specification. (iv)
Write, compile and execute a complete program for a given problem. Implement a program that uses an array to solve a problem.
Program a memory management simulation.
Construct spacetime diagrams for multiple reference frames.
Interpret output from statistical software correctly
Compile and write documentation of program development and subsequent revisions, inserting comments in the coded instructions so others can understand the program.
6 courses cover this
· importance: 3.6 /5
Courses preparing students for: Compile and write documentation of program development and subsequent revisions, inserting comments in the coded instructions so others can understand the program.
Course
Level
CSCD 210
200
CSCD 210
200
CSCD 420
400
CSCD 210
200
CSCD 210
200
CSCD 210
200
Write, compile and execute a complete program for a given problem. Implement code that reads information from a file. Write, compile and execute a program that will implement the Comparable interface. Implement a program that uses an array to solve a problem. Write, compile and execute a complete program that will override the equals method.
Create an interpreter or compiler from a Backus-Naur specification. (iv)
Write, analyze, review, and rewrite programs, using workflow chart and diagram, and applying knowledge of computer capabilities, subject matter, and symbolic logic.
6 courses cover this
· importance: 4.4 /5
Courses preparing students for: Write, analyze, review, and rewrite programs, using workflow chart and diagram, and applying knowledge of computer capabilities, subject matter, and symbolic logic.
Course
Level
CSCD 210
200
CSCD 300
300
CSCD 340
300
CSCD 300
300
CSCD 300
300
CSCD 210
200
Write, compile and execute a complete program for a given problem. Implement a program that uses an array to solve a problem.
Perform in-order, pre-order, post-order, and possibly Euler traversals of a tree. Implement a hash table and use Java built-in HashTable/HashMap class. Understand merge sort and quick sort algorithms, and analyze their time complexity.
Program a memory management simulation.
Perform systems analysis and programming tasks to maintain and control the use of computer systems software as a systems programmer.
5 courses cover this
· importance: 3.3 /5
Courses preparing students for: Perform systems analysis and programming tasks to maintain and control the use of computer systems software as a systems programmer.
Course
Level
CSCD 210
200
CSCD 210
200
CSCD 340
300
CSCD 210
200
MATH 485
400
Implement a program that uses an array to solve a problem. Write, compile and execute a complete program for a given problem. Implement code that reads information from a file.
Program a memory management simulation.
Interpret output from statistical software correctly
Collaborate with computer manufacturers and other users to develop new programming methods.
5 courses cover this
· importance: 2.8 /5
Courses preparing students for: Collaborate with computer manufacturers and other users to develop new programming methods.
Course
Level
CSCD 210
200
CSCD 210
200
CSCD 340
300
MATH 444
400
CSCD 210
200
Write, compile and execute a complete program for a given problem. Implement a program that uses an array to solve a problem. Write, compile and execute a program that will implement the Comparable interface.
Program a memory management simulation.
Implement an iterative method to solve a problem (e.g. matrix decomposition, solution of a linear system of equations, determining eigenpairs of a matrix)
Conduct trial runs of programs and software applications to be sure they will produce the desired information and that the instructions are correct.
5 courses cover this
· importance: 4.0 /5
Courses preparing students for: Conduct trial runs of programs and software applications to be sure they will produce the desired information and that the instructions are correct.
Course
Level
CSCD 210
200
MATH 485
400
CSCD 320
300
CSCD 210
200
CSCD 340
300
Write, compile and execute a complete program for a given problem. Implement a program that uses an array to solve a problem.
Interpret output from statistical software correctly
Write rigorous correctness proofs for algorithms.
Program a memory management simulation.
Train users on the use and function of computer programs.
4 courses cover this
· importance: 3.0 /5
Courses preparing students for: Train users on the use and function of computer programs.
Course
Level
CSCD 210
200
CSCD 340
300
CSCD 210
200
CSCD 210
200
Implement a program that uses an array to solve a problem. Write, compile and execute a complete program for a given problem. Implement code that reads information from a file.
Program a memory management simulation.
Train subordinates in programming and program coding.
4 courses cover this
· importance: 3.5 /5
Courses preparing students for: Train subordinates in programming and program coding.
Course
Level
CSCD 210
200
CSCD 210
200
CSCD 480
400
CSCD 210
200
Write, compile and execute a complete program for a given problem. Implement a program that uses an array to solve a problem. Implement code that reads information from a file.
Understand the foundation of AI
Perform or direct revision, repair, or expansion of existing programs to increase operating efficiency or adapt to new requirements.
4 courses cover this
· importance: 4.4 /5
Courses preparing students for: Perform or direct revision, repair, or expansion of existing programs to increase operating efficiency or adapt to new requirements.
Course
Level
CSCD 210
200
CSCD 210
200
CSCD 340
300
CSCD 210
200
Write, compile and execute a complete program for a given problem. Implement a program that uses an array to solve a problem. Write, compile and execute a program that will implement the Comparable interface.
Program a memory management simulation.
Investigate whether networks, workstations, the central processing unit of the system, or peripheral equipment are responding to a program's instructions.
3 courses cover this
· importance: 3.3 /5
Courses preparing students for: Investigate whether networks, workstations, the central processing unit of the system, or peripheral equipment are responding to a program's instructions.
Course
Level
EENG 440
400
CSCD 340
300
CSCD 210
200
Analyze a communication system and measure a performance in terms of probability of
Program a memory management simulation.
Implement a program that uses an array to solve a problem.
Assign, coordinate, and review work and activities of programming personnel.
2 courses cover this
· importance: 3.2 /5
Courses preparing students for: Assign, coordinate, and review work and activities of programming personnel.
Course
Level
CSCD 210
200
CSCD 210
200
Implement a program that uses an array to solve a problem. Write, compile and execute a complete program for a given problem.
Consult with managerial, engineering, and technical personnel to clarify program intent, identify problems, and suggest changes.
2 courses cover this
· importance: 4.0 /5
Courses preparing students for: Consult with managerial, engineering, and technical personnel to clarify program intent, identify problems, and suggest changes.
Course
Level
CSCD 210
200
CSCD 340
300
Write, compile and execute a complete program for a given problem.
Program a memory management simulation.
Write, update, and maintain computer programs or software packages to handle specific jobs such as tracking inventory, storing or retrieving data, or controlling other equipment.
1 course covers this
· importance: 4.2 /5
Courses preparing students for: Write, update, and maintain computer programs or software packages to handle specific jobs such as tracking inventory, storing or retrieving data, or controlling other equipment.
Course
Level
CSCD 340
300
Program a memory management simulation.
Where to focus your applied learning
(2 taskes without course evidence yet)
These O*NET tasks don't have direct course-objective evidence in the
Math BS catalog yet. Each is an opportunity to gain hands-on
preparation through an applied project, MAA-sponsored partnership,
elective, or internship. The
Math BS applied-projects page
has examples of project-driven learning that could close these
kinds of gaps.
Write or contribute to instructions or manuals to guide end users. (importance 3.3/5)
Develop Web sites. (importance 3.2/5)
More O*NET details for this occupation
(skills, knowledge, tools & technology)
Skills (42)
Basic Skills: Active Learning
Basic Skills: Active Listening
Basic Skills: Critical Thinking
Basic Skills: Learning Strategies
Basic Skills: Mathematics
Basic Skills: Monitoring
Basic Skills: Reading Comprehension
Basic Skills: Science
Basic Skills: Speaking
Basic Skills: Writing
Knowledge (6)
Administration and Management
Computers and Electronics
Customer and Personal Service
Engineering and Technology
English Language
Mathematics
Tools & technology (30)
Computer servers: Computer servers
Data base management system software: Amazon DynamoDB
Data base management system software: Amazon Kinesis
Data base management system software: Apache Cassandra
Data base management system software: Apache Hadoop
Data base management system software: Apache Pig
Data base management system software: Apache Solr
Data base management system software: CAST SQL Builder
Data base management system software: Computer Associates integrated data management system CA-IDMS
Data base management system software: Data definition language DDL
O*NET's tools-and-technology list aggregates software encountered
across the occupation's many sub-roles, so the list can be broad.
Treat it as a directory of what people in this job might
use, not a checklist of what every job requires.
Where this data comes from.
Occupation descriptions, tasks, skills, and education-incumbents survey
come from the U.S. Department of Labor's
O*NET 30.2 .
Washington-state pay and employment projections come from
WA Employment Security Department
and the
BLS Occupational Employment and Wage Statistics .
Live job postings come from
CareerOneStop ,
refreshed nightly from a scrape that tracks the original posting date
and the date our system last saw each posting live.
How we connect courses to occupations.
Course catalog descriptions and program-level learning outcomes are
indexed alongside O*NET task statements. Where a course's language
aligns with a task an occupation requires, we mark it as evidence
of preparation. Faculty review each candidate match and either
confirm or veto it; only confirmed matches surface in totals.