The Washington State University Pullman Catalog

School of Electrical Engineering and Computer Science

The online catalog includes the most recent changes to courses and degree requirements that have been approved by the Faculty Senate, including changes that are not yet effective.

School of Electrical Engineering and Computer Science

school.eecs.wsu.edu
EME 102
509-335-6602

Director, Boeing Centennial Chair in Computer Engineering, and Professor, P. Pande; Associate Director, Boeing Centennial Chair in Computer Science, and Professor, A. Kalyanaraman; Distinguished Professor in Power and Regents Professor, A. Bose; Regents Research Professor, D. Cook; Boeing Distinguished Professor of Electrical Engineering, and Professor, V. Venkatasubramanian; Edmund O. Schweitzer III Chair in Power Apparatus and Systems, and Professor, N. Schulz; Professors, S. Broschat, J. Delgado-Frias, D. Heo, S. Roy, A. Saberi, K. Wang; Associate Professors, V. Arnaoudova, B. Belzer, H. Cai, Z. Dang, J. Doppa, A. Dubey, A. Gebremedhin, S. Gupta, D. Kim, F. Liu, S. Lotfifard, P. Pedrow, J. Schneider, K. Sivakumar; Assistant Professors, G. Bhat, M. Hasan, N. Hoang, X. Lin, H. Wei, Y. Yan, J. Yu; Scholarly Professor - Career S. Lu, A. O'fallon; Scholarly Associate Professors - Career, S. Arslan Ay, S. Badri, D. Berco, S. Kandaswamy, M. Kejariwal, J. Murray, J. Thompson, M. Torabi Konjin, B. Zeng; Scholarly Assistant Professors - Career, J. Guerrero, A. Jillepalli, S. Xie; Teaching Assistant Professor - Career, C. Cole; Research Professor, L. Holder; Professors Emeriti, D. Bakken, T. Fischer, C. Hauser, G. LaRue (Associate), R. Olsen, J. Ringo, B. Shirazi.

The School of Electrical Engineering and Computer Science offers courses of study leading to the degrees of Bachelor of Science in Electrical Engineering, Computer Engineering, Software Engineering, Computer Science, or Cybersecurity, Bachelor of Arts in Computer Science, Master of Science in Electrical Engineering, Computer Engineering, or Computer Science, Doctor of Philosophy in Electrical and Computer Engineering, and Doctor of Philosophy in Computer Science. The programs of study leading to a bachelor of science in electrical engineering, computer engineering, or software engineering are accredited by the Engineering Accreditation Commission of ABET, http://www.abet.org. The bachelor of arts and bachelor of science computer science programs are accredited by the Computing Accreditation Commission of ABET, http://www.abet.org.  In collaboration with the College of Arts and Sciences, an interdisciplinary degree leading to the Bachelor of Science in Data Analytics is also available (see Mathematics and Statistics for complete information).  

All the undergraduate programs in the School of EECS have five educational objectives. The first educational objective varies slightly across our degree programs: 1) Our graduates have professional careers in the electrical engineering industry or academia or are engaged in advanced studies (Electrical Engineering); 1) Our graduates have professional careers in the computer engineering industry or academia or are engaged in advanced studies (Computer Engineering); 1) Our graduates have professional careers in the software engineering industry or academia or are engaged in advanced studies (Software Engineering); 1) Our graduates have professional careers in the computing industry or academia or are engaged in advanced studies (B.S. and B.A. Computer Science); and 1) Our graduates have professional careers in the cybersecurity industry or academia or are engaged in advanced studies (Cybersecurity). The four remaining educational objectives are the same for all degree programs:  2) Our graduates adapt to changes in technology as well as to the needs of society.  3) Our graduates continue to seek knowledge to thrive in an increasingly globalized society.  4) Our graduates are successful team members or team leaders.  5) Our graduates conduct themselves with integrity and incorporate proper ethical considerations in their work. 

Electrical Engineering

The curriculum in electrical engineering is designed to give the student fundamental knowledge in the areas of general interest to all electrical engineers. The course of study is therefore oriented toward the basic theory and concepts which prepare students for entry into any of the many activities open to members of the profession including research, design, development, operations, management, teaching, sales, and consulting. Laboratory experience is emphasized to provide for familiarity with electrical, electronic and computing equipment and with experimental techniques. Modern laboratories are available for electrical circuits, electronics, power systems, wireless communications and computers. Students are exposed to a variety of up-to-date computing environments to aid in their studies.

The curriculum is designed so that the equivalent of the first three to four semesters may be transferred from community colleges with minimal difficulty. The additional basic material common to all branches of electrical engineering is concentrated in the junior year, and maximum flexibility is permitted in the senior year, allowing the student to develop a breadth of interest or to select an area of specialty. The program offers a two-semester senior design project that typically involves industry cooperation, and provides students with valuable experience in applying their skills to solve real-world problems.

Electrical Engineering Student Learning Outcomes

Students in electrical engineering will have acquired the following skills and knowledge by the time of graduation: 1) an ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics; 2) an ability to apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors; 3) an ability to communicate effectively with a range of audiences; 4) an ability to recognize ethical and professional responsibilities in engineering situations and make informed judgments, which must consider the impact of engineering solutions in global, economic, environmental, and societal contexts; 5) an ability to function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks, and meet objectives; 6) an ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions; 7) an ability to acquire and apply new knowledge as needed, using appropriate learning strategies.

Computer Engineering

Computer engineering is a field of study that encompasses the fundamental principles, methods, and modern tools for the design and implementation of computing systems. Advances in technology are yielding smaller and higher-performing computer systems that appear in various applications, including communication systems, consumer products, and household appliances to name just a few. The computer engineering program provides a balanced perspective of both hardware and software elements of computing systems, and of their relative design trade-offs and applications. Computer engineering builds upon fundamental courses in mathematics, science, and the engineering disciplines to achieve a sound knowledge foundation and to develop breadth. Laboratory experiences are emphasized to provide students with background on experimental design and simulation techniques. Since core course sequences are completed in the junior year, students are able to pursue their career objectives with opportunities to select from a broad range of elective courses. These include computer engineering topics such as hardware design, VLSI design, embedded systems, computer architecture, networking, and operating systems.

The program culminates with a two-semester senior design project. The project involves industry cooperation and provides students with a major design experience addressing a broad range of issues, including technical subjects as well as economics, safety, and ethical and societal considerations.

Computer Engineering Student Learning Outcomes

Students in Computer Engineering will have acquired the following skills and knowledge outcomes by the time of graduation: 1) an ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics; 2) an ability to apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors; 3) an ability to communicate effectively with a range of audiences; 4) an ability to recognize ethical and professional responsibilities in engineering situations and make informed judgments, which must consider the impact of engineering solutions in global, economic, environmental, and societal contexts; 5) an ability to function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks, and meet objectives; 6) an ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions; 7) an ability to acquire and apply new knowledge as needed, using appropriate learning strategies.

Computer Science

Computer science is a discipline that provides a scientific foundation for computing expertise and skills. The curriculum is geared to provide the fundamental computing concepts derived from mathematics and sciences, and the practical application of these concepts through substantial hands-on course project experiences. The coursework in computer science prepares students for a variety of careers that involve the extensive use of computers.

There are two major degrees offered within Computer Science: the BS in Computer Science, and the BA in Computer Science. Graduates in both the degree programs will have a solid technical background in mathematics and sciences. The BS degree requires substantial basic and advanced computer science course work and is the traditional computer science degree. The BA degree is designed for multi-disciplinary students who wish to learn the basics of computer science and apply it to a different field. A minor in another area, such as art, biochemistry, music, psychology, architecture, etc., is encouraged.

The program offers courses in a wide variety of topics including theory of computation, design and analysis of algorithms, software engineering, operating systems, computer networks and security, computer graphics, parallel and distributed systems, artificial intelligence, machine learning, and database systems. The coursework is supplemented by several general purpose computing labs dedicated to computer science students, and specialized labs for courses such as operating systems, software engineering, and computer networking. Option area course sequences allow students to specialize in specific areas such as artificial intelligence, software engineering, data sciences, and computer systems.

Computer Science Student Learning Outcomes

Students in computer science will have acquired the following skills and knowledge by the time of graduation: 1) an ability to analyze a complex computing problem and apply principles of computing and other relevant disciplines to identify solutions; 2) an ability to design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline; 3) an ability to communicate effectively in a variety of professional contexts; 4) an ability to recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles; 5) an ability to function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline; 6) an ability to apply computer science theory and software development fundamentals to produce computing-based solutions; 7) an ability to acquire and apply new knowledge as needed, using appropriate learning strategies.

Software Engineering

Software engineering applies engineering practices to the development of software. The Software Engineering curriculum includes all the core requirements of the Computer Science program, along with advanced courses in software development, testing and validation, maintenance, security, and management and integration. Students learn about the real world challenges and requirements of the software engineering profession, such as delivering high quality software that meets user expectations, delivering software on time and within budget, maintaining software, and working effectively as part of a team. The program offers a two-semester senior design project that typically has an industry sponsor and provides students with valuable experience in applying their skills to the collaborative development of large-scale software applications. 

Software Engineering Student Learning Outcomes

Students in software engineering will have acquired the following skills and knowledge by the time of graduation: 1) an ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics; 2) an ability to apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors; 3) an ability to communicate effectively with a range of audiences; 4) an ability to recognize ethical and professional responsibilities in engineering situations and make informed judgments, which must consider the impact of engineering solutions in global, economic, environmental, and societal contexts; 5) an ability to function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks, and meet objectives; 6) an ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions; 7) an ability to acquire and apply new knowledge as needed, using appropriate learning strategies.

Cybersecurity

The BS in Cybersecurity degree program is designed to meet the fast growing demand for computer scientists with expertise in cybersecurity. In addition to learning in foundational computer science courses, students will learn crosscutting concepts and skills in confidentiality, integrity, privacy, risk, adversarial thinking, and security analytics. The curriculum emphasizes hands-on coursework and experential learning and covers topics on security related to data, software, hardware, connection, cyber systems, and cybersecurity threats impacting organizations and society. The program trains students, for example, to design and build secure information networks, secure applications, secure systems, secure critical infrastructures, and secure methods for transporting data. The program prepares graduates for careers in cyber defense as well as cyber operations, with emphasis on cyber operations. The program of study culminates with a single-semester capstone project that typically has an industry sponsor and provides students with valuable experience in applying their skills to the collaborative development of cybersecurity solutions.

Cybersecurity Student Learning Outcomes

Students in cybersecurity will have acquired the following skills and knowledge by the time of graduation: 1) an ability to anticipate, identify, analyze, and solve cybersecurity problems by applying principles of computing, engineering, science, and other relevant disciplines; 2) an ability to design, implement, and evaluate a computing-based security solution to threats and vulnerabilities in data, software, hardware, connection, or cyber system while considering cyber law, ethics, rights and policies; 3) an ability to communicate effectively in a variety of professional contexts; 4) an ability to recognize ethical and professional responsibilities in computing and engineering situations and make informed judgments based on legal and ethical principles and with consideration of global, economic, environmental, and societal impacts; 5) an ability to function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks, and meet objectives; 6)  an ability to apply computer science theory and software development fundamentals to produce computing-based cybersecurity solutions; 7) an ability to acquire and apply new knowledge as needed, using appropriate learning strategies.

Data Analytics

An interdisciplinary undergraduate degree in data analytics is also available.  See the Program in Data Analytics for complete information.

Transfer Students

Students planning to transfer from other institutions should carefully note the sequence of courses. Transfers from community colleges should consult the information available on the Undergraduate Admission Web site or should write directly to the School of Electrical Engineering and Computer Science for specific information.




Schedules of Studies

Honors students complete the Honors College requirements which replace the UCORE requirements.


Bachelor of Science, Computer Science (120 Credits)

Students are admitted to the Computer Science major upon demonstrating they are calculus-ready and making their intention known to the department. Calculus-ready is defined as having an ALEKS math placement score of 78% or higher; or completion of MATH 108, and 171 or a higher calculus course with a grade of C or better; or completing the Math AP with a score of 2 (places the student in MATH 171), or 3 (credit is given for MATH 171); or achieving an IB score of HL 5; or achieving a CLEP score of 50.

To remain in good standing students must complete CPT S 121, 122, and 223, or CPT S 131, 132, and 233, MATH 171, 172, 216, one of CHEM 105, 106, PHYSICS 201 and 211, 202 and 212, and BIOLOGY 106, or 107, each with a grade of C or better, and earn a cumulative WSU GPA of 2.5 or higher upon completion of the above courses.

Alternate Pathway:
Completion of ALL standard pathway benchmarks and additionally: ENGLISH 101, CPT S 260, and MATH 273 or 301, all with a grade of C or better, and a 2.5 cumulative WSU GPA (or transfer GPA if no WSU GPA exists).

No courses listed in this schedule of study may be taken on a pass/fail basis. With the exception of CPT S 488, 490, 499, and ENGR 489, all listed E E and CPT S courses, required electives, and prerequisites to these courses must be completed with a grade of C or better.
First Year
First TermCredits
CPT S 1011
CPT S 121 or 13114
ENGLISH 101 [WRTG]3
MATH 171 [QUAN]4
PHIL 2013
Second TermCredits
CPT S 122 or 13214
HISTORY 105 [ROOT]3
MATH 1724
MATH 2163
Second Year
First TermCredits
CPT S 223 or 23313
CPT S 2603
MATH 220 or 2252 or 3
MATH 273 or 3012 or 3
Lab Science Requirement [BSCI] or [PSCI]24
Second TermCredits
CPT S 3173
CPT S 322 [M]3
CPT S 3553
CPT S Technical Elective33
Lab Science Requirement [BSCI] or [PSCI]24
Complete Writing Portfolio
Third Year
First TermCredits
CPT S 3023
CPT S 3273
CPT S 3503
CPT S 360 or 37014
ENGLISH 402 [WRTG]3
Second TermCredits
STAT 3603
UCORE Inquiry43
Computer Science Electives56
CPT S Technical Elective 33
Fourth Year
First TermCredits
CPT S 4213
UCORE Inquiry46
CPT S Technical Electives 36
Second TermCredits
CPT S 423 [CAPS] [M]3
UCORE Inquiry43
Computer Science Electives59
Complete CPT S Exit Interview and Survey

Footnotes
1Students may choose between a C/C++ (CPT S 121, 122, 223, 360) path or a Java programming (CPT S 131, 132, 233, 370) path. Students should adhere to one path option.
2Lab Science Requirement: Choose from CHEM 105 [PSCI], 106, PHYSICS 201 [PSCI] and 211, 202 [PSCI] and 212, BIOLOGY 106 [BSCI], 107 [BSCI]. Graduation requirements stipulate one each of [BSCI], and [PSCI]. Transfer students may fulfill the credit requirement with course equivalencies of 6 semester credits. Courses should include sufficient credits to meet the University requirement of 120 credits.
3CPT S Technical Electives consist of 4 courses (12 credits) taken from the courses listed below, with at least one course from the Software area and one course from the Data and Information Management area. CPT S 483 special topics course may also be considered as a CPT S Technical Elective with departmental approval. Consult your academic advisor. Systems: CPT S 411, 442, 455, 460, 464, 466; Data and Information Management: CPT S 315, 415, 451, 471, 475; Software: CPT S 321, 323, 422, 443, 479, 480, 484, 487, 489; Artificial Intelligence and Machine Learning: CPT S 434, 437, 440; Scientific and Visual Computing: CPT S 430, 442, 453; Cybersecurity: CPT S 424, 425, 426, 427, 428, 429, 431, 439.
4Must complete 4 of these 5 UCORE designations: ARTS, DIVR, EQJS, HUM, SSCI.
5Computer Science Electives: Five additional courses (15 credits) at the 300-400-level that are not used as Technical Electives. At least 9 credits must be CPT S courses. Approved non-CPT S courses are: 300-400-level E E courses, CE 463, DTC 335, E M 464, MATH 315, 401, 420, 421, MBIOS 478, MSE 302, PHYSICS 303, 443, and STAT 436. Additional Free Electives may include a maximum of 3 credits each of CPT S 490 and 499, or 3 credits of CPT S 499, and a combined 3 credits of CPT S 488 and ENGR 489.

Computer Engineering (124 Credits)

Students are admitted to the Computer Engineering major upon demonstrating they are calculus-ready and making their intention known to the department. Calculus-ready is defined as having an ALEKS math placement score of 80% or higher; or completion of MATH 108 and 171, or a higher calculus course, with a grade of C or better; or completing the Math AP with a score of 2 (places the student in MATH 171), or 3 (credit is given for MATH 171).

To remain in good standing students must complete CPT S 121, MATH 171, 172, 220, 273, and PHYSICS 201/211, each with a grade of C or better, and earn a cumulative WSU GPA of 2.5 or higher upon completion of the above courses.

Alternate Pathway:
Completion of ALL standard pathway benchmarks and additionally: ENGLISH 101, CHEM 105, PHYSICS 202/212, E E 261, 262, MATH 315, all with a grade of C or better, and a 2.5 cumulative WSU GPA (or transfer GPA if no WSU GPA exists). Everett and Bremerton applicants follow the alternate pathway.

No courses listed in this schedule of study may be taken on a pass/fail basis. All listed E E and CPT S courses, required electives, and prerequisites to these courses must be completed with a grade of C or better.

First Year
First TermCredits
CHEM 105 [PSCI]4
CPT S 1214
ENGLISH 101 [WRTG]3
MATH 171 [QUAN]4
Second TermCredits
CPT S 1224
MATH 1724
MATH 216 3
PHYSICS 2013
PHYSICS 2111
Second Year
First TermCredits
CPT S 2233
E E 2144
MATH 220 2
MATH 273 2
PHYSICS 2023
PHYSICS 2121
Second TermCredits
E E 2344
E E 261 3
E E 262 1
HISTORY 105 [ROOT]3
MATH 3153
UCORE Inquiry13
Complete Writing Portfolio
Third Year
First TermCredits
E E 311 3
E E 321 3
E E 324 [M]4
E E 352 [M]3
ENGLISH 402 [WRTG] 3
Second TermCredits
CPT S 3604
E E 3343
Engineering Science Elective23
STAT 3603
UCORE Inquiry13 or 4
Fourth Year
First TermCredits
CPT E Technical Electives33
E E 4153
ECONS 101 [SSCI] or 102 [SSCI]3
Senior Design Elective I43
UCORE Inquiry13
Second TermCredits
CPT E Technical Electives36
E E 302 3
E E 416 [CAPS] [M]3
UCORE Inquiry13
Complete CPT E Exit Interview and Survey

Footnotes
1Must complete 4 of these 5 UCORE designations: ARTS, BSCI, DIVR, EQJS, HUM.
2Engineering Science Elective: Choose from E E 331, 341, ME 301, or MSE 302. (Note: If either E E 331 or E E 341 is taken as an engineering science elective, it cannot also count as a technical elective.)
3Technical electives (9 credits) must be 300-400-level courses and must be chosen with an advisor's approval. Any of the following courses may be chosen to fulfill technical elective requirements: CPT S 317, 322, 327, 350, 355, 411, 422, 430, 437, 440, 442, 443, 451, 452, 455, 460, 466; E E 331, 341, 351, 431, 432, 434, 439, 451, 464, 466, 476, 489, 496; One only of MATH 325, 340, 364, 415, 421, 440, 441, 448, 453, 464, 466.
4Senior Design Electives adhere to one of the following sequences: (1) ASIC & Digital Systems: E E 416 and 434; (2) VLSI Design: E E 466 and 416. Students are strongly recommended to complete both senior design elective sequences.

Cybersecurity (120 Credits)

Students are admitted to the Cybersecurity major upon demonstrating they are calculus-ready and making their intention known to the department. Calculus-ready is defined as having an ALEKS math placement score of 78% or higher; or completion of MATH 108, and 171 or a higher calculus course with a grade of C or better; or completing the Math AP with a score of 2 (places the student in MATH 171), or 3 (credit is given for MATH 171); or achieving an IB score of HL 5; or achieving a CLEP score of 50.

To remain in good standing students must complete CPTS 121 or 131 and CPTS 122 or 132 and CPTS 223 or 233. In addition, students must also complete MATH 171, 216, and MATH 220 or 225, each with a grade of C or better, and earn a cumulative WSU GPA of 2.5 or higher upon completion of the above courses.

Alternate Pathway:
Completion of ALL standard pathway benchmarks, excluding MATH 216, CPTS 223/233. In addition, complete the following courses: a [SSCI] course such as ECONS 101 or 102, ENGLISH 101, PHIL 201 or MATH 301, and the [PSCI] requirement of Lab Science Requirement3, all with a grade of C or better, and a 2.5 cumulative WSU GPA (or transfer GPA if no WSU GPA exists).

No courses listed in this schedule of study may be taken on a pass/fail basis. With the exception of CPT S 488, 499, and ENGR 489, all courses must be completed with a grade of C or better.
First Year
First TermCredits
CPT S 1011
CPT S 121 or 13114
ENGLISH 101 [WRTG]3
MATH 171 [QUAN]4
UCORE Inquiry23
Second TermCredits
CPT S 122 or 13214
HISTORY 105 [ROOT]3
MATH 2163
UCORE Inquiry23
Second Year
First TermCredits
CPT S 223 or 23313
CPT S 260 or E E 2343 or 4
Lab Science Requirement [BSCI]34
MATH 220 or 2252 or 3
UCORE Inquiry23
Second TermCredits
CPT S 3173
CPT S 321, 323, or 35543
CPT S 322 [M]3
MATH 301 or PHIL 2013
UCORE Inquiry23
Complete Writing Portfolio
Third Year
First TermCredits
CPT S 3023
CPT S 3273
CPT S 3503
CPT S 360 or 37014
ENGLISH 402 [WRTG]3
Second TermCredits
CPT S 4273
CPT S 451 or 4153
STAT 3603
Computer Science Electives56
Fourth Year
First TermCredits
CPT S 4283
CPT S 4553
Lab Science Requirement [PSCI]34
Computer Science Electives56
Second TermCredits
CPT S 4263
CPT S 432 [CAPS] [M]3
CPT S 4393
Computer Science Electives56
Complete CPT S Exit Interview and Survey

Footnotes
1Students may choose between a C/C++ (CPTS 121, 122, 223, 360) path or a Java programming (CPTS 131, 132, 233, 370) path. Transitivity allowed between tracks before taking CPTS 223/233. The C/C++ track is not available in Everett.
2Must complete 4 of these 5 UCORE designations: ARTS, DIVR, EQJS, HUM, SSCI.
3Lab Science Requirement: Choose from CHEM 105 [PSCI], 106, PHYSICS 201 [PSCI] and 211, 202 [PSCI] and 212, BIOLOGY 106 [BSCI], 107 [BSCI]. Graduation requirements stipulate one each of [BSCI], and [PSCI]. Transfer students may fulfill the credit requirement with course equivalencies of 6 semester credits. Courses should include sufficient credits to meet the University requirement of 120 credits.
4CPT S 323 is only available in Tri-Cities.
5Computer Science Electives: 18 credits (minimum 12 credits 300-400 level CPTS courses) and must include one of CPTS 434, 437, 440, or 475. May include a maximum of 3 credits each of CPTS 490 and 499, or 3 credits of CPT S 499, and a combined 3 credits of CPT S 488 and ENGR 489. Approved non-CPTS courses are: 300-400-level EE courses, CE 463, DTC 335, EM 464, MATH 172, MBIOS 478, MSE 302, PHYSICS 303, 443, and STAT 436.

Electrical Engineering (124 Credits)

Students are admitted to the Electrical Engineering major upon demonstrating they are calculus-ready and making their intention known to the department. Calculus-ready is defined as having an ALEKS math placement score of 80% or higher; or completion of MATH 106 and 108, 171 or a higher calculus course with a grade of C or better, or completing the Calculus AP with a score of 2 or higher.

To remain in good standing students must complete CPT S 121 or 131, MATH 171, 172, 220, 273, and PHYSICS 201/211, each with a grade of C or better, and earn a cumulative WSU GPA of 2.5 or higher upon completion of the above courses.

Alternate Pathway:
Completion of ALL standard pathway benchmarks and additionally: ENGLISH 101, CHEM 105, PHYSICS 202/212, E E 261, 262, MATH 315, all with a grade of C or better, and a 2.5 cumulative WSU GPA (or transfer GPA if no WSU GPA exists). Everett and Bremerton applicants follow the alternate pathway.

No courses listed in this schedule of study may be taken on a pass/fail basis. With the exception of E E 488, E E 499, and ENGR 489, all listed E E and CPT S courses, required electives, and prerequisites to these courses must be completed with a grade of C or better. Students should also consult with an advisor regarding allowed course substitutions to the schedule of studies listed below.
First Year
First TermCredits
CHEM 105 [PSCI]4
ENGLISH 101 [WRTG]3
ENGR 1202
HISTORY 105 [ROOT]3
MATH 171 [QUAN]4
Second TermCredits
CPT S 121 or 1314
MATH 1724
MATH 2202
PHYSICS 2013
PHYSICS 2111
Second Year
First TermCredits
CPT S 122 or 1324
E E 214 4
MATH 2732
PHYSICS 2023
PHYSICS 2121
UCORE Inquiry13
Second TermCredits
E E 2344
E E 2613
E E 2621
ECONS 101 [SSCI] or 102 [SSCI]3
MATH 3153
UCORE Inquiry13
Complete Writing Portfolio
Third Year
First TermCredits
E E 3113
E E 3213
E E 3313
E E 352 [M]3
Engineering Science Elective 23
Second TermCredits
E E 3023
E E 3413
E E 361 3
STAT 3603
E E Area Elective33
Fourth Year
First TermCredits
E E 4153
ENGLISH 402 [WRTG]3
E E Area Electives36
Technical Elective43
Second TermCredits
E E 416 [CAPS] [M]3
E E Area Elective33
Technical Elective43
UCORE Inquiry16
Complete E E Exit Interview and Survey

Footnotes
1Must complete 4 of these 5 UCORE designations: ARTS, BSCI, DIVR, EQJS, HUM.
2Engineering Science Electives (6 credits): Choose from CE 211, ME 212, 301, MSE 302.
3E E Area Electives (12 credits) from the areas of Digital Computing: CPT S 360, 437, 466, E E 324, 334, 434, 466; Microelectronics: E E 351, 431, 434, 466, 476, 496; Power: E E 362, 485, 486, 491, 492, 493, 494; Systems: E E 432, 451, 464, 489. Must include 9 credits of 400-level E E courses and at least one from E E 324, 351, 362, 489. E E 483 special topics course may also be considered as an E E Area Elective with department approval.
4Technical Electives (6 credits) from ASTRONOM 435, CE 321, 463, CHEM 331, 333, 345, E M 464, ENGR 320, MATH 320, 325, 340, 364, 401, 402, 415, 420, 421, 440, 441, 448, 453, 464, 466, ME 241, 301, 304, 401, MSE 302, PHYSICS 303, 304, 320, 443, 450, and 463, or any 300-400-level CPT S or E E course not used to fulfill other requirements. Additional Technical Elective choices include 3 credits of E E 499, or a combined 3 credits of E E 488 and ENGR 489. Credit allowed for only one of CE 321, MATH 448, or ME 241 and only one of CE 463, E M 464, or ENGR 320. Courses used to satisfy other requirements cannot also be used as Technical Electives.

Software Engineering (122 Credits)

Students are admitted to the Software Engineering major upon demonstrating they are calculus-ready and making their intention known to the department. Calculus-ready is defined as having an ALEKS math placement score of 78% or higher; or completion of MATH 108, and 171 or a higher calculus course with a grade of C or better; or completing the Math AP with a score of 2 (places the student in MATH 171), or 3 (credit is given for MATH 171); or achieving an IB score of HL 5; or achieving a CLEP score of 50.

To remain in good standing students must complete CPT S 121, 122, and 223, or CPT S 131, 132, and 233, MATH 171, 172, 216, and PHYSICS 201/211 or CHEM 105, each with a grade of C or better, and earn a cumulative WSU GPA of 2.5 or higher upon completion of the above courses.

Alternate Pathway (Everett students follow this pathway):
Completion of ALL standard pathway benchmarks, except CPT S 223/233, and additionally: ECONS 101 or 102, ENGLISH 101 or 105, MATH 220 or 225, and two of MATH 273 301, PHIL 201 or STAT 212, all with a grade of C or better, and a 2.5 cumulative WSU GPA (or transfer GPA if no WSU GPA exists). Everett applicants follow the alternate pathway.

No courses listed in this schedule of study may be taken on a pass/fail basis. With the exception of CPT S 488, 499, and ENGR 489, all listed E E and CPT S courses, required electives, and prerequisites to these courses must be completed with a grade of C or better.
First Year
First TermCredits
CPT S 1011
CPT S 121 or CPT S 13114
ENGLISH 101 [WRTG] or ENGLISH 105 [WRTG]3
MATH 171 [QUAN]4
Math Requirement23
Second TermCredits
CPT S 122 or CPT S 13214
HISTORY 105 [ROOT]3
MATH 1724
MATH 2163
UCORE Inquiry33
Second Year
First TermCredits
CPT S 223 or CPT S 23313
CPT S 2603
MATH 220 or 2252 or 3
Math Requirement22 or 3
PHYSICS 201/211 [PSCI] or CHEM 105 [PSCI]4
Second TermCredits
CPT S 321 3
CPT S 3553
ECONS 101 [SSCI] or ECONS 102 [SSCI]3
UCORE Inquiry36
Complete Writing Portfolio
Third Year
First TermCredits
CPT S 3023
CPT S 3173
CPT S 322 [M]3
CPT S 360 or CPT S 37014
ENGLISH 402 [WRTG] or ENGLISH 403 [WRTG]3
Second TermCredits
CPT S 3273
CPT S 3503
CPT S 4873
MATH/CPT S 453 or STAT 4193
STAT 3603
Fourth Year
First TermCredits
CPT S 4213
CPT S 422 [M]3
CPT S 428 or 4763
CPT S 4843
Software Engineering Option Course43
Second TermCredits
CPT S 423 [CAPS]3
Data and Information Management Elective53
Software Engineering Option Courses46
UCORE Inquiry33
Complete S E Exit Interview and Survey

Footnotes
1Students may choose between a C/C++ (CPT S 121, 122, 223, 360) path or a Java programming (CPT S 131, 132, 233, 370) path. Students should adhere to one path option.
2Math Requirement: minimum 5 credits from the following: MATH 273, MATH 301, PHIL 201, STAT 212.
3Must complete 4 of these 5 UCORE designations: ARTS, BSCI, DIVR, EQJS, HUM.
4Software Engineering Option Courses (9 credits required): Any 400-level course in CPT S, E E, or MATH not used to fulfill major requirements. Upper-division courses in other disciplines may be used with prior approval by advisor. Software Engineering Option Courses may include a maximum of 3 credits CPT S 499, or a combined 3 credits of CPT S 488 and ENGR 489.
5Data and Information Management Elective (3 credits required): Choose at least one from CPT S 315, 415, 451, 471, 475.


Minors

Computer Engineering

The minor in computer engineering consists of a minimum of 18 credits, 9 of which must be 300-400-level taken in residence at WSU or through WSU-approved education abroad or educational exchange courses.  Required courses include CPT S 223 or 233, E E 214, E E 234, and E E 324, and 6 credits from  any 300-400-level CPT S course (excluding CPT S 302), E E 334, 434, or 466. All prerequisites for these courses must be met. Each student’s program of study requires approval of the computer engineering undergraduate coordinator. For all courses and their prerequisites, a grade of C or better is required to complete the minor.


Computer Science

The minor in computer science consists of 20 credits which must include CPT S 121, 122, and 223, or CPT S 131, 132, and 233; and three 300-400-level CPT S courses, taken in residence at WSU or through WSU-approved education abroad or educational exchange courses, excluding CPT S 302, 401, 488, 490, and 499. All prerequisites for courses in the minor must be met. The minor program must be approved by the computer science undergraduate coordinator. For all courses and their prerequisites, a grade of C or better is required to complete the minor.


Electrical Engineering

The minor in electrical engineering consists of 18 credit hours, 9 of which must be 300-400-level and taken in residence at WSU or through WSU-approved education abroad or educational exchange courses.  The 18 credits must include the following courses: E E 214, 261, and 262. The remaining credits must be selected from any 300-400-level E E courses excluding E E 302 and E E 304. All prerequisites for minor courses must be met. The minor program must be approved by the electrical engineering undergraduate coordinator. For all courses and their prerequisites, a grade of C or better is required to complete the minor.


Software Engineering

The minor in Software Engineering consists of 20 credits from CPT S 121, 122, 223  (or CPT S 131, 132, 233) and three 300-400-level courses chosen from CPT S 321, 322, 323, 422, 428, 476, 478, 484, or 487. Credit not granted for both CPT S 323 and 487. A maximum of 8 course credits from the requirements of the student’s major can be used to satisfy the requirements of the minor. 9 hours must be 300-400-level courses taken in residence at WSU or through WSU-approved education abroad or educational exchange courses. For all courses and their prerequisites, a grade of C or better is required to complete the minor.



Certificates

CySER CAE-CO Fundamentals

Students participating in the CySER CAE-CO Fundamentals Certificate will receive in-depth and wide-ranging training that integrates cybersecurity research and education with professional skills in teamwork, communication, leadership, and lifelong learning. A core principle in this certificate is training that organically merges theoretical knowledge with experiential learning in cyber operations and cyber defense. 
 
The certificate requires CPT S 327, 427, 428 and four elective courses from: CPT S 415, 425, 426, 429, 439, 455, 460, 464, 475, 478, 489; E E 334, 434, 489; or MIS 374. 
 
Additionally, students will:
• Complete the Senior Design course sequence (CPT S 421 and 423, or 432) with a project focused on cybersecurity.
• Complete an internship with a cybersecurity-related experience.
• Demonstrate involvement in CySER research (realized via class projects, senior design projects, independent study).
• Attend the CySER summer workshop.
• Attend CySER seminars (at least 60% of the bi-weekly seminars in a semester).
• Recommend at least four credits of foreign language or demonstrate equivalent proficiency in Russian, Chinese, Korean, Arabic, or Persian.


Courses

The online catalog includes the most recent changes to courses and degree requirements that have been approved by the Faculty Senate, including changes that are not yet effective. Courses showing two entries of the same number indicate that the course information is changing. The most recently approved version is shown first, followed by the older version, in gray, with its last-effective term preceding the course title. Courses shown in gray with only one entry of the course number are being discontinued. Course offerings by term can be accessed by clicking on the term links when viewing a specific campus catalog.


Electrical Engineering (E_E)

Spring 2024 Summer 2024 Fall 2024 

 

Enrollment in 300 and 400-level electrical engineering courses is restricted to admitted majors or minors in EECS, and to juniors and seniors admitted to other degree programs requiring 400-level engineering courses.


214 Design of Logic Circuits 4 (3-3) Design and application of combinational logic circuits with exposure to modern methods and design tools; introduction to sequential logic circuits. Recommended preparation: Prior programming class. Typically offered Fall and Spring.

221 Numerical Computing for Engineers 2 Course Prerequisite: MATH 172 or 182 with a C or better; MATH 220 with a C or better or concurrent enrollment. Solutions to engineering problems using modern software tools such as Matlab. Typically offered Fall, Spring, and Summer.

234 Microprocessor Systems 4 (3-3) Course Prerequisite: CPT S 121 with a C or better; E E 214 with a C or better. Microprocessor system architecture, instruction sets, and interfacing; assembly language programming. Typically offered Fall and Spring.

261 Electrical Circuits I 3 Course Prerequisite: MATH 315 with a C or better or concurrent enrollment; 4 credits of PHYSICS 202 with a C or better, or PHYSICS 202 and 212, each with a C or better, or PHYSICS 206 with a C or better. Application of fundamental concepts of electrical science in linear circuit analysis; mathematical models of electric components and circuits. Typically offered Fall and Spring.

262 Electrical Circuits Laboratory I 1 (0-3) Course Prerequisite: E E 261 with a C or better or concurrent enrollment. Electrical instruments; laboratory applications of electric laws; transient and steady-state responses of electrical circuits. Typically offered Fall and Spring.

302 Professional Skills in Computing and Engineering 3 Course Prerequisite: CPT S 122 or 132, OR CPT S 121 or 131 and E E 261; admitted to a major in EECS or Data Analytics; junior standing. Foundation in computing and engineering professional development. (Crosslisted course offered as CPT S 302, E E 302). Credit not granted for both CPT S/E E 302 and CPT S 401.

304 Introduction to Electrical Circuits 2 Course Prerequisite: MATH 315 with a C or better or concurrent enrollment. Basic DC and AC circuits. Typically offered Fall, Spring, and Summer.

311 Electronics 3 Course Prerequisite: E E 261 with a C or better; admitted to a major or minor in EECS, or major in Neuroscience. Fundamental device characteristics including diodes, MOSFETs and bipolar transistors; small- and large-signal characteristics and design of linear circuits. Typically offered Fall and Spring.

321 Electrical Circuits II 3 Course Prerequisite: E E 261 with a C or better; admitted to a major or minor in EECS, or major in Neuroscience. State space analysis, Laplace transforms, network functions, frequency response, Fourier series, two-ports, energy and passivity. Typically offered Fall and Spring.

324 [M] Fundamentals of Digital Systems 4 (3-3) Course Prerequisite: E E 214 with a C or better; admitted to a major or minor in EECS, or major in Neuroscience. Design and analysis of synchronous sequential machines; module and bit-slice devices; alternative architectures; system-level design; asynchronous sequential machines. Typically offered Fall.

331 Electromagnetic Fields and Waves 3 Course Prerequisite: E E 261 with a C or better; MATH 315 with a C or better; 4 credits of PHYSICS 202, or PHYSICS 202 and 212, each with a C or better, or PHYSICS 206 with a C or better. Admission to the major not required. Students will be required to pass a math skills test. Fundamentals of transmission lines, electrostatics, magnetostatics, and Maxwell's Equations for static fields. Typically offered Fall and Spring.

334 Computer Architecture 3 (3-3) Course Prerequisite: E E 234 with a C or better; admitted to a major or minor in EECS. Modern developments in digital system design, parallel structures, pipelining, input/output, high speed circuits, laboratory experience in digital system design; emphasis on CPU architecture. Typically offered Spring.

341 Signals and Systems 3 Course Prerequisite: E E 321 with a C or better; STAT 360 with a C or better or concurrent enrollment, or STAT 443 with a C or better or concurrent enrollment; admitted to a major or minor in EECS, or major in Neuroscience. Discrete and continuous-time signals, LTI systems, convolution, sampling, Fourier transform, filtering, DFT, amplitude modulation, probability applications. Typically offered Fall and Spring.

351 Distributed Parameter Systems 3 Course Prerequisite: E E 331 with a C or better; admitted to a major or minor in EECS. Maxwell's equations, plane waves, waveguides, resonators, antennas, numerical methods. Typically offered Spring.

352 [M] Electrical Engineering Laboratory I 3 (1-6) Course Prerequisite: E E 262 with a C or better; E E 311 with a C or better or concurrent enrollment; E E 321 with a C or better or concurrent enrollment; admitted to a major or minor in EECS. Experiments in electrical circuits, measurements and electronics; principles of measurements and measuring instruments. Typically offered Fall and Spring.

361 Electrical Power Systems 3 Course Prerequisite: E E 321 with a C or better; E E 331 with a C or better; admitted to a major or minor in EECS. Power system hardware; transformers, and electromechanical machinery; introduction to power system operation. Typically offered Fall and Spring.

362 Power System Laboratory I 3 (1-6) Course Prerequisite: E E 262 with a C or better; E E 352 with a C or better; concurrent enrollment in E E 361; concurrent enrollment in E E 341; admitted to a major or minor in EECS. Experiments in simulation, modeling, transformers, rotating machines, and transmission lines. Typically offered Spring.

415 Design Project Management 3 (1-6) Course Prerequisite: E E 341 and E E 361, both with a C or better; or E E 334 and CPT S 360, both with a C or better; admitted to a major or minor in EECS. Project scheduling/planning, technical writing, oral presentation skills, working in teams, TQC, TQM, market-driven organizations. Typically offered Fall and Spring.

416 [CAPS] [M] Electrical Engineering Design 3 (1-6) Course Prerequisite: E E 415 with a C or better; ENGLISH 402 or 403 with a C or better, or concurrent enrollment; admitted to a major or minor in EECS; senior standing. Electrical engineering design of specific projects including design specification; written and oral presentations and reports. Typically offered Fall and Spring.

431 RF and Microwave Circuits and Systems 3 Course Prerequisite: E E 311; admitted to a major or minor in EECS. Design and implementation of RF/microwave modules and systems for telecommunications; microstrip, filters, mixers, amplifiers, frequency synthesizers and transceivers. Typically offered Spring.

432 RF Engineering for Telecommunications 4 (3-3) Course Prerequisite: E E 331; E E 341 with a C or better; STAT 360 with a C or better or STAT 443 with a C or better; admitted to a major or minor in EECS. System and propagation issues for wireless telecommunications; cellular, PCS, microwave, and satellite system analysis, design, measurement, and testing. Typically offered Fall.

434 ASIC and Digital Systems Design 3 (2-3) Course Prerequisite: E E 234 with a C or better; E E 321 with a C or better; admitted to a major or minor in EECS. Application Specific Integrated Circuit and Digital System Design methods, semi-custom, full-custom, and field-programmable devices; digital system architectures, electronics, and tests. Typically offered Spring.

439 Cybersecurity of Critical Infrastructure Systems 3 Course Prerequisite: CPT S 327 and 426 with a C or better or concurrent enrollment; admitted major or minor in EECS or Data Analytics; OR E E 234 and 361; admitted major or minor in E E; OR CPT S 327 and E E 234; admitted major or minor in Cpt Engr. Security topics as they relate to critical infrastructure systems vital to any nation including industrial control systems, cyber physical systems, SCADA, DCS, IoT, IIoT, and the knowledge to secure such systems. (Crosslisted course offered as E E 439, CPT S 439). Typically offered Spring.

451 Digital Communication Systems 3 Course Prerequisite: E E 341 with a C or better, STAT 360 with a C or better, or STAT 443 with a C or better; admitted to a major or minor in EECS, or major in Neuroscience. Digital communication techniques; performance of digital communication systems in noise; matched filter detection; quantization. Typically offered Spring. Cooperative: Open to UI degree-seeking students.

455 Introduction to Computer Networks and Security 3 Course Prerequisite: CPT S 360, 370, or E E 234, with a C or better; admitted to a major or minor in EECS or Data Analytics. Concepts and implementations of computer networks; architectures, protocol layers, internetworking, addressing case studies, and discussion of security constraints at all layers of the OSI stack from attacker and defender perspectives. (Crosslisted course offered as CPT S 455, E E 455). Typically offered Fall.

464 Digital Signal Processing I 3 Course Prerequisite: E E 341 with a C or better; admitted to a major or minor in EECS, or major in Neuroscience. Discrete and fast Fourier transforms; Z-transform; sampling; discrete convolution; digital filter design; effects of quantization. Typically offered Fall.

466 VLSI Design 3 Course Prerequisite: E E 234 with a C or better; admitted to a major or minor in EECS. Very Large Scale Integrated circuit, system and physical design using CAD software; project specification, modeling, implementation, documentation and reporting. Typically offered Fall.

476 Analog Integrated Circuits 3 Course Prerequisite: E E 311 with a C or better; admitted to a major or minor in EECS. Analysis and design of analog integrated circuits in CMOS and BiCMOS technologies; current mirrors, gain stages, operational amplifiers, frequency response, and compensation. Credit not granted for both E E 476 and 576. Offered at 400 and 500 level. Typically offered Spring.

483 Topics in Electrical and Computer Engineering V 1-3 May be repeated for credit; cumulative maximum 6 credits. Current topics in electrical engineering and computer engineering.

485 Electric Energy Distribution Systems 3 Course Prerequisite: E E 361 with a C or better; admitted to a major or minor in EECS. Fundamentals of distribution systems engineering, distribution system modeling and analysis, distribution load flow analysis, voltage regulation, recent advances in distribution automation. Typically offered Spring.

486 Power Electronics 3 Course Prerequisite: E E 361 with a C or better; admitted to a major or minor in EECS. Analysis and modeling of power electronics-based converters, steady state operation, converter topologies, non-ideal effects; power supplies; applications. Typically offered Spring. Cooperative: Open to UI degree-seeking students.

488 Professional Practice Coop/Internship I V 1-2 May be repeated for credit; cumulative maximum 6 credits. Course Prerequisite: By department permission. Practicum for students admitted to the VCEA Professional Practice and Experiential Learning Program; integration of coursework with on-the-job professional experience. (Crosslisted course offered as ENGR 488, BIO ENG 488, CHE 488, CE 488, CPT S 488, E E 488, ME 488, MSE 488, SDC 488). Typically offered Fall, Spring, and Summer. S, F grading.

488 (Effective through Spring 2024) Professional Practice Coop/Internship I V 1-2 May be repeated for credit; cumulative maximum 6 credits. Course Prerequisite: By department permission. Practicum for students admitted to the VCEA Professional Practice and Experiential Learning Program; integration of coursework with on-the-job professional experience. (Crosslisted course offered as ENGR 488, BIO ENG 488, CHE 488, CE 488, CPT S 488, E E 488, ME 488, MSE 488, SDC 488). Typically offered Fall, Spring, and Summer. S, F grading.

489 Introduction to Control Systems 3 Course Prerequisite: E E 341 with a C or better or concurrent enrollment; admitted to a major or minor in EECS. State variable models, system response, stability analysis, root locus analysis and design; frequency-response and state-space analysis and design. Typically offered Fall.

491 Performance of Power Systems 3 Course Prerequisite: E E 361 with a C or better; admitted to a major or minor in EECS. Static and dynamic behavior of power systems, powerflow, and economic considerations. Typically offered Fall.

492 Renewable Energy Sources 3 (2-3) Course Prerequisite: E E 361 with a C or better or concurrent enrollment; admitted to a major or minor in EECS. Design of electrical generation plants using wind, solar and other renewable energy sources including technical, environmental and economic aspects. Typically offered Fall.

493 Protection of Power Systems I 3 Course Prerequisite: E E 361 with a C or better; admitted to a major or minor in EECS. Analysis and equipment fundamentals of power system protection; symmetrical components, fault calculations; fuses; and relays including burden calculations. Typically offered Spring.

494 Protective Relay Labs 3 (1-6) Course Prerequisite: E E 361 with a C or better; E E 493 with a C or better or concurrent enrollment; admitted to a major or minor in EECS. Experiments and measurements of protective relay equipment under test, simulated fault and fault conditions. Typically offered Spring.

495 Internship in Electrical Industry V 2-4 May be repeated for credit; cumulative maximum 8 credits. Course Prerequisite: By department permission only; Electrical Engineering major. Students work full time on engineering assignments in approved industries. Typically offered Fall, Spring, and Summer. S, F grading.

496 Semiconductor Devices 3 Course Prerequisite: CHEM 105, 4 credits of PHYSICS 202, or PHYSICS 202 and 212, or PHYSICS 206; admitted to a major or minor in EECS. Equilibrium statistics of electrons and holes; carrier dynamics; p-n junctions, metal-semiconductor junctions, BJTs, Mosfets, solar cells, and LEDs. Typically offered Fall.

499 Special Problems V 1-4 May be repeated for credit. Course Prerequisite: By department permission. Independent study conducted under the jurisdiction of an approving faculty member; may include independent research studies in technical or specialized problems; selection and analysis of specified readings; development of a creative project; or field experiences. Typically offered Fall, Spring, and Summer. S, F grading.

501 Linear System Theory 3 Dynamic systems from the state variable approach; observability, controllability, stability, and sensitivity of differential and nondifferential systems. Typically offered Spring. Cooperative: Open to UI degree-seeking students.

502 Linear Multivariable Control 3 Course Prerequisite: E E 501. Optimal linear feedback control, optimal stochastic observers, LQG/LTR design methodology, modern Wiener-Hopf design, robust controllers. Cooperative: Open to UI degree-seeking students.

503 Structure, Dynamics and Control of Large-scale Networks 3 Course Prerequisite: E E 501; E E 507. Introduction and development of computational and analytical methods required to characterize large-scale networks.

504 Modern Optics 3 Diffraction theory, Fourier transforming and imaging properties of lenses, spatial filtering, holography, temporal and spatial coherence, imaging through random media. Cooperative: Open to UI degree-seeking students.

505 Nonlinear System Theory 3 Course Prerequisite: E E 501. Overview of nonlinear phenomena, Lyapunov stability, input-output stability, periodic orbits, singular perturbation, differential geometric methods, bifurcations and complex behaviors. Cooperative: Open to UI degree-seeking students.

507 Random Processes in Engineering 3 Functions of random variables; random sequences; stochastic processes; mean-square stochastic calculus; ergodicity; spectral density; linear transformations, filtering, dynamic systems. Typically offered Fall. Cooperative: Open to UI degree-seeking students.

508 Estimation Theory for Signal Processing, Communications, and Control 3 Course Prerequisite: E E 501; E E 507. Principles of statistical estimation; LLSE; Kalman filtering; smoothing; prediction; maximum- likelihood and Bayesian estimation. Cooperative: Open to UI degree-seeking students.

509 Adaptive Control 3 Course Prerequisite: E E 501. Model reference adaptive systems (MRAS), adaptive observers, adaptive control, on-line identification, robustness issues, self-tuning regulators.

511 Protection of Power Systems II 3 Protection of electrical equipment as related to electric power systems with emphasis on digital algorithms. Cooperative: Open to UI degree-seeking students.

518 Advanced Electromagnetic Theory I 3 Electromagnetic waves, electromagnetic theorems and concepts, solutions to the wave equation in rectangular, cylindrical and spherical coordinates. Typically offered Fall. Cooperative: Open to UI degree-seeking students.

520 Plasma Engineering 3 Electromagnetics, kinetic theory, and fluid mechanics of plasmas in space, arcs, plasma processing, coronas, and fusion reactors. Typically offered Fall, Spring, and Summer.

521 Analysis of Power Systems 3 Concepts and practices of modern power engineering, including steady-state and dynamic analysis, economics and control design. Typically offered Fall.

522 High Voltage Engineering 3 High voltage engineering concepts and techniques that facilitate design, research, and development of modern electric power apparatus and interconnected components.

523 Power Systems Stability and Control 3 Course Prerequisite: E E 521 with a B- or better. Dynamic analysis of interconnected electric power system; modeling of synchronous generators, loads and transmission network; small-signal stability and transient stability analysis; dynamic stability controls. Recommended preparation: E E 489 with a B- or better. Typically offered Spring.

524 Advanced Computer Architecture 3 Instruction set architectures, pipelining and super pipelining, instruction level parallelism, superscalar and VLIW processors, cache memory, thread-level parallelism and VLSI. (Crosslisted course offered as E E 524, CPT S 561). Typically offered Fall.

525 Power System Applications of Power Electronics 3 Course Prerequisite: E E 521. Power electronic converters in modern power systems, FACTS devices, HVDC, compensation; microgrids and integration renewable energy resources; modeling and control.

526 High Voltage Overhead Transmission Lines 3 Course Prerequisite: Graduate standing in Electrical Engineering. Electrical analysis, performance, and design of high voltage transmission lines; power capacity, electromagnetic environment, electromagnetic compatibility, measurements, grounding.

527 Antenna Theory and Design 3 Antenna fundamentals, analytical techniques, characteristics and design procedures for selected types of wire, broadband, and aperture antennas. Cooperative: Open to UI degree-seeking students.

528 Advanced Topics in Electromagnetics 3 May be repeated for credit; cumulative maximum 6 credits. Advanced topics of current interest in wave propagation (electromagnetics, acoustics, or optics).

529 Power Quality 3 Existing and future power quality issues, including identification, measurement, and mitigation; power quality definitions, standards, and classification; voltage quality; power systems harmonics; DER integration; and emerging power quality concerns. Recommended preparation: E E 491 or equivalent. Typically offered Spring.

530 Digital Signal Processing II 3 Course Prerequisite: E E 507. Frequency selective digital filtering, least-squares filtering, adaptive filtering, multirate signal processing. Cooperative: Open to UI degree-seeking students.

535 Numerical Solutions to EM Problems 3 Theory and use of finite-difference time-domain; numeric dispersion; absorbing boundary conditions; scattering; radiation; time-domain vs. frequency-domain.

536 Power Systems Economics and Electricity Markets 3 Economic dispatch and optimal power flow; electricity market; short-term load forecasting; electricity price forecasting; price-based unit commitment; arbitrage in electricity markets; market power analysis.

545 Data Compression 3 Course Prerequisite: E E 507. Source coding with a fidelity criterion; quantization theory; predictive, transform and subband coding; noiseless source codes.

548 Information Theory and Channel Coding 3 Course Prerequisite: E E 507. Information theory; entropy, mutual information, source and channel coding theorems, channel capacity, Gaussian channels; channel coding: block and convolutional codes.

551 Data Communication Systems 3 Course Prerequisite: E E 507. Digital communications; multi-amplitude/phase signal constellations; probability of error performance; cutoff rate; Viterbi algorithm; trellis coded modulation. Cooperative: Open to UI degree-seeking students.

555 Computer Communication Networks 3 Packet switching networks; multi-access and local-area networks; delay models in data networks; routing and flow control. (Crosslisted course offered as E E 555, CPT S 555). Typically offered Spring.

562 Fault Tolerant Computer Systems 3 Fault tolerance aspects involved in design and evaluation of systems; methods of detection and recovery; multicast, middleware, and reconfiguration. (Crosslisted course offered as CPT S 562, E E 562).

571 Advanced Wireless Integrated Circuits and Systems 3 Analysis and design methodologies of state-of-the-art wireless integrated circuits and systems. Typically offered Fall.

576 Analog Integrated Circuits 3 Analysis and design of analog integrated circuits in CMOS and BiCMOS technologies; current mirrors, gain stages, operational amplifiers, frequency response, and compensation. Credit not granted for both E E 476 and 576. Offered at 400 and 500 level. Typically offered Spring.

581 Advanced Topics in Power Systems V 2-3 May be repeated for credit; cumulative maximum 6 credits. Course Prerequisite: E E 521. Power system operations including AGC, economic dispatch and security; power system dynamics; intelligent systems applications. Cooperative: Open to UI degree-seeking students.

582 Advanced Topics V 1-3 May be repeated for credit. (Crosslisted course offered as E E 582, ECE 582.) Cooperative: Open to UI degree-seeking students.

586 VLSI Systems Design 3 VLSI models, layout algorithms, design methodologies, simulation and layout tools, algorithm design for VLSI implementation. Typically offered Fall.

587 System on Chip (SoC) Design and Test 3 System on Chip (SoC) and sub-micron integrated circuit design and testing. Typically offered Spring.

595 Directed Study in Electrical Engineering V 1 (0-3) to 3 (0-9) May be repeated for credit. Current topics in electrical engineering. (Crosslisted course offered as E E 595 and ECE 595.) Typically offered Fall, Spring, and Summer.

596 Advanced Analog Integrated Circuits 3 MOS and BiCMOS technologies; MOS and BiCMOS operational amplifiers; A/D, D/A converters; switched-capacitor filters; continuous-time filters. Typically offered Spring.

600 Special Projects or Independent Study V 1-18 May be repeated for credit. Independent study, special projects, and/or internships. Students must have graduate degree-seeking status and should check with their major advisor before enrolling in 600 credit, which cannot be used toward the core graded credits required for a graduate degree. Typically offered Fall, Spring, and Summer. S, F grading.

700 Master's Research, Thesis, and/or Examination V 1-18 May be repeated for credit. Independent research and advanced study for students working on their master's research, thesis and/or final examination. Students must have graduate degree-seeking status and should check with their major advisor/committee chair before enrolling for 700 credit. Typically offered Fall, Spring, and Summer. S, U grading.

701 Master's Independent Capstone Project and /or Examination V 1-6 May be repeated for credit. Capstone project or final examination for professional master's degree under the Graduate School. The credits will include a balloted evaluation of the student's completion of the program's capstone/examination requirements by the program's graduate faculty. Students must have graduate degree-seeking status and obtain approval from their major advisor/committee chair before enrolling for 701 credit. Typically offered Fall, Spring, and Summer. S, U grading.

702 Master's Special Problems, Directed Study, and/or Examination V 1-18 May be repeated for credit. Independent research in special problems, directed study, and/or examination credit for students in a non-thesis master's degree program. Students must have graduate degree-seeking status and should check with their major advisor/committee chair before enrolling for 702 credit. Typically offered Fall, Spring, and Summer. S, U grading.

800 Doctoral Research, Dissertation, and/or Examination V 1-18 May be repeated for credit. Course Prerequisite: Admitted to the Electrical Engineering PhD program. Independent research and advanced study for students working on their doctoral research, dissertation and/or final examination. Students must have graduate degree-seeking status and should check with their major advisor/committee chair before enrolling for 800 credit. (Crosslisted course offered as E E 800, ECE 800). Typically offered Fall, Spring, and Summer. S, U grading.


Computer Science (CPT_S)

Spring 2024 Summer 2024 Fall 2024 

 

With the exception of the Computer Skills and Literacy courses, enrollment in 300-400-level computer science courses is restricted to admitted majors or minors in EECS, and to juniors and seniors admitted to other degree programs requiring these computer science courses.


101 Introduction to Electrical Engineering and Computer Science 1 Introduction to programs within the School of Electrical Engineering and Computer Science discussing resources, opportunities, and knowledge and skills necessary to succeed within EECS majors. Typically offered Fall and Spring.

111 [QUAN] Introduction to Computer Programming 3 (2-3) Course Prerequisite: MATH 101 with a C or better, MATH 103 with a C or better, or higher level MATH course with a C or better, or a minimum ALEKS math placement score of 45%. Elementary algorithmic problem solving, computational models, sequential, iterative and conditional operations, parameterized procedures, array and list structures and basic efficiency analysis. Typically offered Fall and Spring.

121 Program Design and Development C/C++ 4 (3-3) Course Prerequisite: MATH 108, 171, 172, 182, 201, 202, 206, or 220, each with a C or better, CPT S 111 with a B+ or better, a min ALEKS math placement score of 78%, or by permission with an AP Exam in Cpt S Principles or Cpt Sci A with a 4 or better. Formulation of problems and top-down design of programs in a modern structured language (C/C++) for their solution on a digital computer. Typically offered Fall, Spring, and Summer.

122 Data Structures C/C++ 4 (3-3) Course Prerequisite: CPT S 121 with a C or better. Advanced programming techniques: data structures, recursion, sorting and searching, and basics of algorithm analysis taught in C/C++ programming language. Typically offered Fall, Spring, and Summer.

131 Program Design and Development Java 4 (3-3) Course Prerequisite: MATH 108, 171, 172, 182, 201, 202, 206, or 220, each with a C or better, CPT S 111 with a B+ or better, a min ALEKS math placement score of 78%, or by permission with an AP Exam in Cpt S Principles or Cpt Sci A with a 4 or better. Formulation of problems and top-down design of programs in a modern structured language for their solution on a digital computer. Taught in Java programming language. Typically offered Fall and Spring.

132 Data Structures Java 4 (3-3) Course Prerequisite: CPT S 131 with a C or better. Advanced programming techniques: data structures, recursion, sorting and searching, and basics of algorithm analysis. Taught in Java programming language. Typically offered Fall and Spring.

215 Data Analytics Systems and Algorithms 3 Course Prerequisite: CPT S 122, CPT S 132, or CS 122. Exploration of fundamental concepts, constructs, and techniques of modern data analytics systems. (Crosslisted course offered as CPT S 215, CS 215).

223 Advanced Data Structures C/C++ 3 Course Prerequisite: CPT S 122 with a C or better; MATH 216 with a C or better or concurrent enrollment. Advanced data structures, object oriented programming concepts, concurrency, and program design principles taught in C/C++ programming language. Typically offered Fall and Spring.

224 Programming Tools 2 Course Prerequisite: CPT S 122 with a C or better, or CPT S 132 with a C or better. Debugging tools, scripting languages, UNIX programming tools. Typically offered Fall.

233 Advanced Data Structures Java 3 Course Prerequisite: CPT S 132 with a C or better; MATH 216 with a C or better or concurrent enrollment. Advanced data structures, object oriented programming concepts, concurrency, and program design principles. Taught in Java programming language. Typically offered Fall and Spring.

260 Introduction to Computer Architecture 3 Course Prerequisite: CPT S 223 with a C or better or concurrent enrollment, or CPT S 233 with a C or better or concurrent enrollment. Computer systems architecture; logic, data representation, assembly language, memory organization and trends. Typically offered Fall and Spring.

302 Professional Skills in Computing and Engineering 3 Course Prerequisite: CPT S 122 or 132, OR CPT S 121 or 131 and E E 261; admitted to a major in EECS or Data Analytics; junior standing. Foundation in computing and engineering professional development. (Crosslisted course offered as CPT S 302, E E 302). Credit not granted for both CPT S/E E 302 and CPT S 401. Typically offered Fall and Spring.

315 Introduction to Data Mining 3 Course Prerequisite: CPT S 215, 223, 233, or CS 215, with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, Data Analytics, or Cybersecurity. The process of automatically extracting valid, useful, and previously unknown information from large repositories. (Crosslisted course offered as CPT S 315, CS 315). Recommended preparation: prior Python programming.

317 Automata and Formal Languages 3 Course Prerequisite: CPT S 122 or 132, with a C or better; MATH 216 with a C or better; admitted to a major or minor in EECS or Data Analytics. Finite automata, regular sets, pushdown automata, context-free language, Turing machines and the halting problem. Typically offered Fall and Spring.

321 Object-Oriented Software Principles 3 Course Prerequisite: CPT S 223 or 233, with a C or better; admitted to a major or minor in EECS or Data Analytics. Object-oriented programming for flexibility, efficiency, and maintainability; logic and UI decoupling; complexity analysis, data structures, and algorithms for industry-quality software.

322 [M] Software Engineering Principles I 3 Course Prerequisite: CPT S 215, 223, or 233, with a C or better; admitted to a major or minor in EECS or Data Analytics, or major in Neuroscience. Introduction to software engineering; requirements analysis, definition, specification including formal methods; prototyping; design including object and function oriented design. Typically offered Fall and Spring.

323 Software Design 3 Course Prerequisite: CPT S 223 or 233, with a C or better; CPT S 322 with a C or better or concurrent enrollment; admitted to a major or minor in EECS or Data Analytics. Enrollment not allowed if credit earned in CPT S 487. Practical aspects of software design and implementation using object-oriented, aspect-oriented and procedural programming. Credit not granted for both CPT S 323 and 487. Typically offered Spring.

327 Fundamentals of Cyber Security and Cryptography 3 Course Prerequisite: CPT S 223 or 233 with a C or better; CPT S 260 or E E 234 with a C or better; CPT S 360 or 370 with a C or better or concurrent enrollment; MATH 216 with a C or better; admitted to a major or minor in EECS or Data Analytics. Security and privacy principles in modern computers and network communications covering various security protection mechanisms, including cryptography, secure communication protocols, and anonymity techniques. Typically offered Fall and Spring.

350 Design and Analysis of Algorithms 3 Course Prerequisite: CPT S 215, 223, or 233, with a C or better; CPT S 317 with a C or better; admitted to a major or minor in EECS or Data Analytics. Analysis of data structures and algorithms; computational complexity and design of efficient data-handling procedures.

355 Programming Language Design 3 Course Prerequisite: CPT S 223 or 233, with a C or better; admitted to a major or minor in EECS or Data Analytics. Design concepts of high-level programming languages; survey of existing languages, experience using some languages. Typically offered Fall and Spring.

360 Systems Programming C/C++ 4 (3-3) Course Prerequisite: CPT S 223 with a C or better; CPT S 260 with a C or better or E E 234 with a C or better; admitted to a major or minor in EECS or Data Analytics. Implementation of systems programs, concepts of computer operating systems; laboratory experience in using operating system facilities taught in C/C++ programming language. Typically offered Fall and Spring.

370 Systems Programming Java 4 (3-3) Course Prerequisite: CPT S 233 with a C or better; CPT S 260 with a C or better or E E 234 with a C or better; admitted to a major or minor in EECS or Data Analytics. Implementation of systems programs, concepts of computer operating systems; laboratory experience in using operating system facilities. Taught in Java programming language. Typically offered Fall and Spring.

401 Computers and Society 3 Course Prerequisite: CPT S 215, 223, or 233; admitted to a major in EECS or Data Analytics; junior standing. Skills and literacy course. Ethical and societal issues related to computers and computer networks; computers as enabling technology; computer crime, software theft, privacy, viruses, worms. Credit not granted for both CPT S 401 and CPT S/E E 302.

411 Introduction to Parallel Computing 3 Course Prerequisite: CPT S 215, 223, or 233, with a C or better; admitted to a major or minor in EECS or Data Analytics. Fundamental principles of parallel computing, parallel programming experience on multicore machines and cluster computers, and design of algorithms and applications in parallel computing. Recommended preparation: CPT S 350. Typically offered Fall.

415 Big Data 3 Course Prerequisite: CPT S 215, 223, or 233, with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, Data Analytics, or Cybersecurity. Big data models, databases and query languages, modern distributed database systems and algorithms. (Crosslisted course offered as CPT S 415, CS 415).

421 Software Design Project I 3 (1-6) Course Prerequisite: C or better in CPT S 321 and 322; or C or better in CPT S 322 and CPT S 360 or 370; or C or better CPT S 322 and concurrent enrollment in CPT S 360 or 370; admitted to a major or minor in EECS or Data Analytics. Large-scale software development including requirements analysis, estimation, design, verification and project management. Typically offered Fall and Spring.

422 [M] Software Engineering Principles II 3 Course Prerequisite: CPT S 321 with a C or better or CPT S 323 with a C or better; CPT S 322 with a C or better; admitted to a major or minor in EECS or Data Analytics. Dependable software systems; software verification and validation, testing; CASE environments; software management and evolution. Typically offered Fall.

423 [CAPS] [M] Software Design Project II 3 (1-6) Course Prerequisite: CPT S 421 with a C or better; admitted to a major or minor in EECS or Data Analytics; junior standing. Laboratory/group design project for large-scale software development, requirements analysis, estimation, design, verification techniques. Typically offered Fall and Spring.

424 Cyber Law, Ethics, Rights, and Policies 3 Course Prerequisite: CPT S 327 with a C or better; admitted to a major or minor in EECS or Data Analytics. Laws, ethics, rights, and governmental regulations as applied to the field of cybersecurity from technological and social perspectives. Typically offered Spring.

425 Cyber Forensics and Anti-Forensics 3 Course Prerequisite: CPT S 327 with a C or better; admitted to a major or minor in EECS or Data Analytics. Recovery and investigation of material found in various cyber environments (e.g., device, memory, operating systems, etc.) and ways to defeat forensic processes and tools. Typically offered Fall.

426 Hardware, Hardware Security, and Hardware Reverse Engineering 3 Course Prerequisite: CPT S 327 with a C or better; CPT S 439 with a C or better or concurrent enrollment; admitted to a major or minor in EECS or Data Analytics. Hardware hacking and reverse engineering approaches routinely used against electronic devices and embedded systems; introduction to the basic procedures necessary to perform reverse engineering of hardware components to determine their functionality, inputs, outputs, and stored data. Typically offered Spring.

427 Cyber Security of Wireless and Distributed Systems 3 Course Prerequisite: CPT S 327 with a C or better; admitted to a major or minor in EECS or Data Analytics. Cellular and wireless system security, incidence response cycles, fault tolerance, and distributed computer security. Typically offered Spring.

428 Software Security and Reverse Engineering 3 Course Prerequisite: CPT S 327 with a C or better; admitted to a major or minor in EECS or Data Analytics. Key aspects of cyber security with an emphasis on software and systems security focusing on concepts, principles, methodologies, and techniques for measuring and defending the various security properties of both operating systems and application software. Credit not granted for both CPT S 428 and CPT S 528. Offered at 400 and 500 level. Typically offered Spring.

429 Virtualization and Offensive Cyber Operations 3 Course Prerequisite: CPT S 327 with a C or better; admitted to a major or minor in EECS or Data Analytics. Virtualization and offensive cyber operations including the building of multiple software systems that operate as independent systems running on multiple native hardware items and conducting campaigns aimed at compromising computational capacities of an adversary. Typically offered Fall.

430 Numerical Analysis 3 Course Prerequisite: MATH 315 with a C or better; one of CPT S 121, 131, or MATH 300, with a C or better. Fundamentals of numerical computation; finding zeroes of functions, approximation and interpolation; numerical integration (quadrature); numerical solution of ordinary differential equations. (Crosslisted course offered as MATH 448, MATH 548, CPT S 430, CPT S 530). Required preparation must include differential equations and a programming course. Offered at 400 and 500 level. Typically offered Fall and Spring.

431 Security Analytics and DevSecOps 3 Course Prerequisite: CPT S 327 with a C or better; admitted to a major or minor in EECS or Data Analytics. Security analytics at an enterprise deployment scale using social, data, graph avenues of evaluation, and topics of supply chain cybersecurity, risk management frameworks, and security of developer operation pipelines. Typically offered Spring.

432 [CAPS] [M] Cybersecurity Capstone Project 3 Course Prerequisite: CPT S 327; CPT S 427; CPT S 428; CPT S 455, each with a C or better; admitted to the major in Cybersecurity; senior standing. Group design project for large-scale cybersecurity development incorporating analysis, application ability, industrial skills, and adherence to cybersecurity standards. Typically offered Spring.

434 Neural Network Design and Application 3 Course Prerequisite: CPT S 121, 131, or E E 221, with a C or better; STAT 360 with a C or better; admitted to a major or minor in EECS or Data Analytics, or major in Neuroscience. Hands-on experience with neural network modeling of nonlinear phenomena; application to classification, forecasting, identification and control. Credit not granted for both CPT S 434 and CPT S 534. Offered at 400 and 500 level.

437 Introduction to Machine Learning 3 Course Prerequisite: CPT S 215, 223, or 233, with a C or better; admitted to a major or minor in EECS or Data Analytics. Topics in machine learning including linear models for regression and classification, generative models, support vector machines and kernel methods, neural networks and deep learning, decision trees, unsupervised learning, and dimension reduction. Recommended preparation: E E 221; linear algebra; multivariate calculus; probability and statistics. Typically offered Spring.

438 Scientific Visualization 3 Course Prerequisite: CPT S 223 or 233, with a C or better; CPT S 224 with a C or better; MATH 172 or 182, with a C or better; admitted to a major or minor in EECS or Data Analytics. Data taxonomy, sampling, plotting, using and extending a visualization package, designing visualization and domain-specific techniques.

439 Cybersecurity of Critical Infrastructure Systems 3 Course Prerequisite: CPT S 327 and 426 with a C or better or concurrent enrollment; admitted major or minor in EECS or Data Analytics; OR E E 234 and 361; admitted major or minor in E E; OR CPT S 327 and E E 234; admitted major or minor in Cpt Engr. Security topics as they relate to critical infrastructure systems vital to any nation including industrial control systems, cyber physical systems, SCADA, DCS, IoT, IIoT, and the knowledge to secure such systems. (Crosslisted course offered as E E 439, CPT S 439). Typically offered Spring.

440 Artificial Intelligence 3 Course Prerequisite: CPT S 223 or 233, with a C or better; admitted to a major or minor in EECS or Data Analytics, or major in Neuroscience. An introduction to the field of artificial intelligence including heuristic search, knowledge representation, deduction, uncertainty reasoning, learning, and symbolic programming languages. Credit not granted for both CPT S 440 and CPT S 540. Offered at 400 and 500 level. Typically offered Fall.

442 Computer Graphics 3 Course Prerequisite: CPT S 223 with a C or better; CPT S 224 with a C or better or CPT S 360 with a C or better; MATH 220 with a C or better; admitted to a major or minor in EECS or Data Analytics. Raster operations; transformations and viewing; geometric modeling; visibility and shading; color. Credit not granted for both CPT S 442 and CPT S 542. Offered at 400 and 500 level. Cooperative: Open to UI degree-seeking students.

443 Human-Computer Interaction 3 Course Prerequisite: CPT S 223 or 233; admitted to a major or minor in EECS or Data Analytics, or major in Neuroscience; junior standing. Concepts and methodologies of engineering, social and behavioral sciences to address ergonomic, cognitive, social and cultural factors in the design and evaluation of human-computer systems. Credit not granted for both CPT S 443 and CPT S 543. Offered at 400 and 500 level. Typically offered Spring.

451 Introduction to Database Systems 3 Course Prerequisite: CPT S 215, 223, or 233, with a C or better; admitted to a major or minor in EECS or Data Analytics. Introduction to database concepts, data models, database languages, database design, implementation issues. Typically offered Spring.

452 Compiler Design 3 Course Prerequisite: CPT S 317 with a C or better; CPT S 355 with a C or better; admitted to a major or minor in EECS or Data Analytics. Design of lexical analyzers, syntactic analyzers, intermediate code generators, code optimizers and object code generators.

453 Graph Theory 3 Course Prerequisite: MATH 220, 225, or 230. Graphs and their applications, directed graphs, trees, networks, Eulerian and Hamiltonian paths, matrix representations, construction of algorithms. (Crosslisted course offered as MATH 453, CPT S 453). Required preparation must include linear algebra. Recommended preparation: MATH 301. Typically offered Fall. Cooperative: Open to UI degree-seeking students.

453 (Effective through Summer 2024) Graph Theory 3 Course Prerequisite: MATH 220, 225, or 230. Graphs and their applications, directed graphs, trees, networks, Eulerian and Hamiltonian paths, matrix representations, construction of algorithms. (Crosslisted course offered as MATH 453, MATH 553, CPT S 453, CPT S 553). Required preparation must include linear algebra. Recommended preparation: MATH 301. Offered at 400 and 500 level. Typically offered Fall. Cooperative: Open to UI degree-seeking students.

455 Introduction to Computer Networks and Security 3 Course Prerequisite: CPT S 360, 370, or E E 234, with a C or better; admitted to a major or minor in EECS or Data Analytics. Concepts and implementations of computer networks; architectures, protocol layers, internetworking, addressing case studies, and discussion of security constraints at all layers of the OSI stack from attacker and defender perspectives. (Crosslisted course offered as CPT S 455, E E 455). Typically offered Fall.

460 Operating Systems and Computer Architecture 3 Course Prerequisite: CPT S 360 with a C or better; admitted to a major or minor in EECS or Data Analytics. Operating systems, computer architectures, and their interrelationships in micro, mini, and large computer systems. Typically offered Fall and Spring.

464 Distributed Systems Concepts and Programming 3 Course Prerequisite: CPT S 223, 233, or E E 234, with a C or better; admitted to a major or minor in EECS or Data Analytics. Concepts of distributed systems; naming, security, networking, replication, synchronization, quality of service; programming middleware. Credit not granted for both CPT S 464 and CPT S 564. Offered at 400 and 500 level. Typically offered Spring. Cooperative: Open to UI degree-seeking students.

466 Embedded Systems 3 (2-3) Course Prerequisite: CPT S 360 with a C or better; admitted to a major or minor in EECS or Data Analytics. The design and development of real-time and dedicated software systems with an introduction to sensors and actuators. Credit not granted for both CPT S 466 and CPT S 566. Offered at 400 and 500 level. Cooperative: Open to UI degree-seeking students.

471 Computational Genomics 3 Course Prerequisite: CPT S 223 or 233, with a C or better; CPT S 350 with a C or better or concurrent enrollment; admitted to a major or minor in EECS or Data Analytics. Fundamental algorithms, techniques and applications. Credit not granted for both CPT S 471 and CPT S 571. Offered at 400 and 500 level. Typically offered Spring.

475 Data Science 3 Course Prerequisite: CPT S 215, CPT S 223, or CPT S 233, with a C or better; admitted to a major or minor in EECS or Data Analytics. The data science process, data wrangling, exploratory data analysis, linear regression, classification, clustering, principal components analysis, recommender systems, data visualization, data and ethics, and effective communication. Credit not granted for both CPT S 475 and CPT S 575. Recommended preparation for 575: Familiarity with algorithm design and analysis, basic linear algebra, and basic probability and statistics. Offered at 400 and 500 level. Typically offered Fall.

476 Software Construction and Maintenance 3 Course Prerequisite: CPT S 322 with a C or better; admitted to a major or minor in EECS or Data Analytics. Software quality, construction (API design and use, object-oriented runtime issues), and maintenance (refactoring, reengineering, reverse engineering).

478 Software Process and Management 3 Course Prerequisite: CPT S 322 with a C or better; admitted to a major or minor in EECS or Data Analytics. Software Engineering Process (definition, assessment, and improvement); Software Engineering Management; Software Configuration Management.

479 Mobile Application Development 3 Course Prerequisite: CPT S 223 or 233, with a C or better; admitted to a major or minor in EECS or Data Analytics. Mobile application development; user interface; location and maps; sensor; camera; cross platform mobile application development tools.

480 Python Software Construction 3 Course Prerequisite: CPT S 223 with a C or better; CPT S 224 or CPT S 360 with a C or better; admitted to a major or minor in EECS or Data Analytics. Intensive introduction to the python language; user interface, building and using extension modules; C interfacing; construction of a major project. (Formerly CPT S 481.)

481 (Effective through Summer 2024) Python Software Construction 3 Course Prerequisite: CPT S 223 with a C or better; CPT S 224 or CPT S 360 with a C or better; admitted to a major or minor in EECS or Data Analytics. Intensive introduction to the python language; user interface, building and using extension modules; C interfacing; construction of a major project.

483 Topics in Computer Science V 1-4 May be repeated for credit. Course Prerequisite: Admitted to a major or minor in EECS or Data Analytics. Required background preparation varies with course offering, see instructor. Current topics in computer science or software engineering.

484 Software Requirements 3 Course Prerequisite: CPT S 322 with a C or better; admitted to a major or minor in EECS or Data Analytics. Elicitation, analysis, specification, and validation of software requirements as well as the management of requirements during the software life cycle.

485 Gerontechnology I 3 Course Prerequisite: CPT S 215, 223, or 233; admitted to a major or minor in EECS or Data Analytics, or major in Psychology. Introduction to the field of gerontechnology, including aging and senses, mobility and exercise, data analysis, and research methods. (Crosslisted course offered as CPT S 485, PSYCH 485). Typically offered Fall.

486 Gerontechnology II 3 Course Prerequisite: CPT S 215, 223, or 233; admitted to a major or minor in EECS or Data Analytics, or major in Psychology. In-depth exploration of gerontechnology, including socialization, caregiver issues, dementia, app design and data visualization. (Crosslisted course offered as CPT S 486, PSYCH 486). Typically offered Spring.

487 Software Design and Architecture 3 Course Prerequisite: CPT S 321 with a C or better; CPT S 322 with a C or better; admitted to a major or minor in EECS or Data Analytics. Enrollment not allowed if credit already earned for CPT S 323. Software design; design principles, patterns, and anti-patterns; design quality attributes and evaluation; architectural styles, architectural patterns and anti-patterns. Credit not granted for both CPT S 487 and CPT S 587, or for both CPT S 487 and 323. Offered at 400 and 500 level.

488 Professional Practice Coop/Internship I V 1-2 May be repeated for credit; cumulative maximum 6 credits. Course Prerequisite: By department permission. Practicum for students admitted to the VCEA Professional Practice and Experiential Learning Program; integration of coursework with on-the-job professional experience. (Crosslisted course offered as ENGR 488, BIO ENG 488, CHE 488, CE 488, CPT S 488, E E 488, ME 488, MSE 488, SDC 488). Typically offered Fall, Spring, and Summer. S, F grading.

488 (Effective through Spring 2024) Professional Practice Coop/Internship I V 1-2 May be repeated for credit; cumulative maximum 6 credits. Course Prerequisite: By department permission. Practicum for students admitted to the VCEA Professional Practice and Experiential Learning Program; integration of coursework with on-the-job professional experience. (Crosslisted course offered as ENGR 488, BIO ENG 488, CHE 488, CE 488, CPT S 488, E E 488, ME 488, MSE 488, SDC 488). Typically offered Fall, Spring, and Summer. S, F grading.

489 Web Development 3 Course Prerequisite: CPT S 322 with a C or better; admitted to a major or minor in EECS or Data Analytics. Web development using markup languages, style sheet language, and scripting languages; developing and consuming web services; testing web applications.

490 Work Study Internship V 1-9 May be repeated for credit; cumulative maximum 9 credits. Course Prerequisite: By department permission only; Computer Science major. Experience in programming and systems analysis in a working environment under supervision of industrial or governmental professionals and faculty. Typically offered Fall, Spring, and Summer. S, F grading.

499 Special Problems V 1-4 May be repeated for credit. Course Prerequisite: By department permission. Independent study conducted under the jurisdiction of an approving faculty member; may include independent research studies in technical or specialized problems; selection and analysis of specified readings; development of a creative project; or field experiences. Typically offered Fall, Spring, and Summer. S, F grading.

500 Proseminar 1 Faculty research interests, departmental computer systems, computer science research, report preparation. Typically offered Fall. S, F grading.

515 Advanced Algorithms 3 Advanced algorithms and data structures, design and analysis, intractability. (Crosslisted course offered as CPT S 515, CS 515.)

516 Algorithmics 3 Discrete structures, automata, formal languages, recursive functions, algorithms, and computability. Typically offered Spring.

527 Computer Security 3 Examines cyber vulnerabilities and attacks against computer systems and networks; includes security protection mechanisms, cryptography, secure communication protocols, information flow enforcement, network monitoring, and anonymity techniques.

528 Software Security and Reverse Engineering 3 Key aspects of cyber security with an emphasis on software and systems security focusing on concepts, principles, methodologies, and techniques for measuring and defending the various security properties of both operating systems and application software. Credit not granted for both CPT S 428 and CPT S 528. Offered at 400 and 500 level. Typically offered Spring.

530 Numerical Analysis 3 Fundamentals of numerical computation; finding zeroes of functions, approximation and interpolation; numerical integration (quadrature); numerical solution of ordinary differential equations. (Crosslisted course offered as MATH 448, MATH 548, CPT S 430, CPT S 530). Required preparation must include differential equations and a programming course. Offered at 400 and 500 level. Typically offered Fall and Spring.

531 Advanced Matrix Computations 3 Advanced topics in the solution of linear systems, singular value decomposition, and computation of eigenvalues and eigenvectors (Francis's algorithm). (Crosslisted course offered as MATH 544, CPT S 531). Required preparation must include numerical analysis. Typically offered Even Years - Fall. Cooperative: Open to UI degree-seeking students.

534 Neural Network Design and Application 3 Hands-on experience with neural network modeling of nonlinear phenomena; application to classification, forecasting, identification and control. Credit not granted for both CPT S 434 and CPT S 534. Offered at 400 and 500 level.

538 Scientific Visualization 3 Data taxonomy; sampling; plotting; using and extending a visualization package; designing visualizations; domain-specific techniques.

540 Artificial Intelligence 3 An introduction to the field of artificial intelligence including heuristic search, knowledge representation, deduction, uncertainty reasoning, learning, and symbolic programming languages. Credit not granted for both CPT S 440 and CPT S 540. Offered at 400 and 500 level. Typically offered Fall.

542 Computer Graphics 3 Raster operations; transformations and viewing; geometric modeling; visibility and shading; color. Credit not granted for both CPT S 442 and CPT S 542. Offered at 400 and 500 level. Cooperative: Open to UI degree-seeking students.

543 Human-Computer Interaction 3 Concepts and methodologies of engineering, social and behavioral sciences to address ergonomic, cognitive, social and cultural factors in the design and evaluation of human-computer systems. Credit not granted for both CPT S 443 and CPT S 543. Offered at 400 and 500 level. Typically offered Spring.

548 Advanced Computer Graphics 3 Solid modeling, visual realism, light and color models, advanced surface generation techniques.

550 Parallel Computation 3 Parallel machine models, principles for the design of parallel algorithms, interconnection networks, systolic arrays, computational aspects to VLSI. Required preparation must include differential equations and a programming course. Typically offered Spring.

553 (Effective through Summer 2024) Graph Theory 3 Graphs and their applications, directed graphs, trees, networks, Eulerian and Hamiltonian paths, matrix representations, construction of algorithms. (Crosslisted course offered as MATH 453, MATH 553, CPT S 453, CPT S 553). Required preparation must include linear algebra. Recommended preparation: MATH 301. Offered at 400 and 500 level. Typically offered Fall. Cooperative: Open to UI degree-seeking students.

554 Advanced Graph Theory 3 Advanced treatment of the theory of graphs including matchings, colorings, extremal graph theory, graph algorithms, algebraic and spectral methods, and random graph models. Required preparation: MATH 453 or equivalent. (Crosslisted course offered as MATH 554, CPT S 554). Typically offered Fall. Cooperative: Open to UI degree-seeking students.

555 Computer Communication Networks 3 Packet switching networks; multi-access and local-area networks; delay models in data networks; routing and flow control. (Crosslisted course offered as E E 555, CPT S 555). Typically offered Spring.

557 Advanced Computer Networks 3 ATM networks, optical WDM networks, and wireless/mobile networks; access, transport, and routing protocols.

560 Operating Systems 3 Structure of multiprogramming and multiprocessing; efficient allocation of systems resources; design implementation and performance measurement. Typically offered Fall.

561 Advanced Computer Architecture 3 Instruction set architectures, pipelining and super pipelining, instruction level parallelism, superscalar and VLIW processors, cache memory, thread-level parallelism and VLSI. (Crosslisted course offered as E E 524, CPT S 561). Typically offered Fall.

562 Fault Tolerant Computer Systems 3 Fault tolerance aspects involved in design and evaluation of systems; methods of detection and recovery; multicast, middleware, and reconfiguration. (Crosslisted course offered as CPT S 562, E E 562).

564 Distributed Systems Concepts and Programming 3 Concepts of distributed systems; naming, security, networking, replication, synchronization, quality of service; programming middleware. Credit not granted for both CPT S 464 and CPT S 564. Offered at 400 and 500 level. Typically offered Spring. Cooperative: Open to UI degree-seeking students.

566 Embedded Systems 3 (2-3) The design and development of real-time and dedicated software systems with an introduction to sensors and actuators. Credit not granted for both CPT S 466 and CPT S 566. Offered at 400 and 500 level. Cooperative: Open to UI degree-seeking students.

570 Machine Learning 3 Introduction to building computer systems that learn from their experience; classification and regression problems; unsupervised and reinforcement learning. Typically offered Fall.

571 Computational Genomics 3 Fundamental algorithms, techniques and applications. Credit not granted for both CPT S 471 and CPT S 571. Offered at 400 and 500 level. Typically offered Spring.

572 Numerical Methods in Computational Biology 3 Computational methods for solving scientific problems related to information processing in biological systems at the molecular and cellular levels.

573 Bioinformatics Software Development 3 Provides programming skills needed to address current computational problems in bioinformatics; emphasis on mathematical development and software design.

575 Data Science 3 The data science process, data wrangling, exploratory data analysis, linear regression, classification, clustering, principal components analysis, recommender systems, data visualization, data and ethics, and effective communication. Credit not granted for both CPT S 475 and CPT S 575. Recommended preparation for 575: Familiarity with algorithm design and analysis, basic linear algebra, and basic probability and statistics. Offered at 400 and 500 level. Typically offered Fall.

577 Structured Prediction: Algorithms and Applications 3 Machine learning algorithms to predict structured outputs from structured inputs for diverse applications, including: natural language processing, computer vision, social networks, smart environments, and computer engineering. Typically offered Spring.

580 Advanced Topics in Computer Science 3 May be repeated for credit.

581 Software Maintenance 3 Software maintenance, refactoring, reengineering, reverse engineering.

582 Software Testing 3 Software testing, testing levels, testing objectives, testing techniques.

583 Software Quality 3 Software quality, quality assurance, process and product quality, software measures, quality attributes, quality management.

587 Software Design and Architecture 3 Software design; design principles, patterns, and anti-patterns; design quality attributes and evaluation; architectural styles, architectural patterns and anti-patterns. Credit not granted for both CPT S 487 and CPT S 587, or for both CPT S 487 and 323. Offered at 400 and 500 level. Typically offered Fall and Spring.

591 Elements of Network Science 3 Fundamental elements of the emerging science of complex networks, with emphasis on social and information networks. Recommended preparation: CPT S 350 with a C or better. Typically offered Spring.

595 Directed Study in Computer Science V 1 (0-3) to 3 (0-9) May be repeated for credit; cumulative maximum 6 credits. Current topics in computer science. Typically offered Fall and Spring.

600 Special Projects or Independent Study V 1-18 May be repeated for credit. Independent study, special projects, and/or internships. Students must have graduate degree-seeking status and should check with their major advisor before enrolling in 600 credit, which cannot be used toward the core graded credits required for a graduate degree. Typically offered Fall, Spring, and Summer. S, F grading.

700 Master's Research, Thesis, and/or Examination V 1-18 May be repeated for credit. Independent research and advanced study for students working on their master's research, thesis and/or final examination. Students must have graduate degree-seeking status and should check with their major advisor/committee chair before enrolling for 700 credit. Typically offered Fall, Spring, and Summer. S, U grading.

702 Master's Special Problems, Directed Study, and/or Examination V 1-18 May be repeated for credit. Course Prerequisite: By department permission. Independent research in special problems, directed study, and/or examination credit for students in a non-thesis master's degree program. Students must have graduate degree-seeking status and should check with their major advisor/committee chair before enrolling for 702 credit. Typically offered Fall, Spring, and Summer. S, U grading.

800 Doctoral Research, Dissertation, and/or Examination V 1-18 May be repeated for credit. Course Prerequisite: Admitted to the Computer Science PhD program. Independent research and advanced study for students working on their doctoral research, dissertation and/or final examination. Students must have graduate degree-seeking status and should check with their major advisor/committee chair before enrolling for 800 credit. (Crosslisted course offered as CPT S 800, CS 800). Typically offered Fall, Spring, and Summer. S, U grading.

Student Affairs Schedule of Classes Commencement Veteran's Affairs Summer Session
 
Office of the Registrar, PO Box 641035, Washington State University, Pullman WA 99164-1035, 509-335-5346, bitter@wsu.edu
Copyright © Board of Regents, Washington State University