Skip to body

Computer Science

College of the Sciences

Computer Science Major

In order to expose computer science majors to a broad theoretical base while emphasizing the laboratory experience, students will complete the CS core courses. To add depth and flexibility to their academic programs, with major advisor, students will work out a focus area and choose the elective courses approved by the department. A specific focus may be developed in many areas of computer science; examples include: software engineering, intelligent systems, computational science, computer graphics, visualization and computer vision, human-computer interaction, big data analytics, and cybersecurity.


Admission Requirements
Admission to the computer science major or minor is not selective; however, progress in the major/minor is dependent upon earning certain grades in prerequisite courses. In order to continue in any CS course a student must receive a C grade or higher in each of the CS courses and a C grade or higher in each of the General Education Academic Writing courses and required Math courses. Applications will be accepted through the last day of classes (i.e., the week before finals) of the fall, winter, and spring quarters for admission the following quarter.

The computer science department believes that advising is one of the keys to success in an undergraduate program. To that end, majors and minors are required to meet with a computer science advisor every term in order to register. Pre-admission students are also encouraged to meet with their designated computer science advisor each term. Advisors and advising times are listed with the CS office


Program Requirements
In addition to the courses listed in the required courses listed in the Program Curriclum, students must complete at least 20 credits of electives. Of these 20, at least 12 must be from CS (excluding CS 490, CS 495, and CS 496).


Program Learner Outcomes
Upon successful completion of this program, students will be able to:

  • Demonstrate an understanding of each of the subject areas that define the discipline as well as the interrelationships that exist among them.

  • Demonstrate the ability to utilize appropriate theoretical constructs for problem solving: definitions, and axioms, theorems, proofs, and interpretation of results.

  • Have the ability to apply basic research methods in computer science.

  • Have the ability to apply appropriate design constructs: requirements analysis and specification, design, implementation, and testing.

  • Demonstrate knowledge of ethical codes and societal issues associated with the computing field.

  • Demonstrate knowledge of recent technological and theoretical developments, general professional standards, and have an awareness of their own strengths and limitations as well as those of the discipline itself.

  • Be aware of the history of computing, including those major developments and trends - economic, scientific, legal, political, and cultural - that have combined to shape the discipline.

  • Have the necessary background for entry into graduate study.

  • Have the ability to communicate effectively.


Click here to schedule academic advising, for the Computer Science Major.



The information below can be used to see the prerequisites for the core courses in the Computer Science major. It is subject to change and cannot replace the academic planning available through an advisor in the Computer Science Department.

For a complete list of Computer Science courses, click here.
 

Required Courses and Prerequisites:

CS 110:  Programming Fundamentals I
CS 111:  Programming Fundamentals II 
       -  CS 110 and one of MATH 153 or MATH 154 or MATH 172 or MATH 173
CS 112:  Foundations of Computer Science
CS 301:  Data Structures  -  CS 111 and MATH 154
CS 302:  Advanced Data Structures and File Processing 
      -  C or higher in CS 111, CS 301 and C or higher in Math 154, 172, or 173
CS 311:  Computer Architecture I  -  C or higher in CS 111
CS 312:  Computer Architecture II  -  C or higher in CS 301 and CS 311 and CS 325
CS 325:  Technical Writing in Computer Science 
      -  ENG 101 and ENG 102 with a grade of C or higher and CS 110 and CS 111 and CS 301 with a grade of B- or higher
CS 361:  Principles of Language Design I  -  C or higher in CS 302
CS 362:  Principles of Language Design II  -  CS 361 and MATH 260 with a grade of C or higher in both
CS 380:  Introduction to Software Engineering  -   C or higher in CS 302 and CS 325 
CS 392:  Lab Experience in Teaching Computer Science
CS 420:  Database Management Systems  -  C or higher in CS 302, CS 325 and Math 260
CS 427:  Algorithm Analysis  -  C or higher in CS 302 and Math 330
CS 446:  User Interface Design and Development  -  CS 111 with a grade of C or higher
CS 470:  Operating Systems  -  C or higher in CS 302, CS 312, CS 325, and CS 361
CS 480:  Advanced Software Engineering  -  CS 325 and CS 380 and admission to computer science major
CS 481:  Software Engineering Project  -  CS 325 and CS 480 and admission to computer science major
CS 489:  Senior Colloquium  -  CS 325 and admission to the computer science major
CS 492:  Lab Experience in Teaching Computer Science
MATH 172:  Calculus I 
      -  MATH 154 with a grade of C or higher, a score of 19 on the Advanced Math Placement Test, or a score of 46 or higher
           on the Compass Trigonometry test

MATH 260:  Sets and Logic 
      -  MATH 173 with a grade of C or higher or MATH 172 and CS 301 with grades of C or higher
MATH 330:  Discrete Mathematics  -  MATH 260 with a grade of C or higher
     NOTE:  Prerequisites are subject to change. Check with the academic catalog.


Typical Elective Courses:

CS 351:  Web Development Technologies II  -  C or higher CS 111
CS 370:  Introduction to the UNIX Operating System 
      -  C or higher in CS 110, CS 111, and CS 301; C or higher in Writing I & II and C or higher in Math 172
CS 426:  Autonomous Robotics  -  CS 301 with a grade of C or higher
CS 428:  Introduction to Graph Algorithms  -  C or higher in CS 302 and Math 330
CS 430:  Cybersecurity  -  C or higher in CS 312
CS 440:  Computer Graphics 
      -  C or higher in CS 302, CS 361; C or higher in Math 260; Recommend students take Math 265
CS 445: Data and Information Visualization  -  C or higher in CS 302
       (CS 445 and CS 545 are layered courses; students may not receive credit for both)

CS 450:  Computer Network and Data Communications 
      -  C or higher in CS 301, CS 311, and CS 325; C or higher Math 172
CS 455:  Artificial Intelligence  -  CS 302, CS 325, CS 362 and MATH 330
CS 456:  Data Mining  -  CS 302 and CS 361 and MATH 260
        (CS 456 and CS 556 are layered courses; students may not receive credit for both)

CS 457:  Computational Intelligence and Machine Learning  -  C or higher in CS 302 and Math 330
        (CS 457 and CS 557 are layered courses; students may not receive credit for both)

CS 460:  Software Engineering for Mobile Devices  -  CS 301
CS 471:  Optimization  -  CS 302 and CS 325 and MATH 330
CS 473:  Parallel Computing  -  C or higher in CS 361
       (CS 473 and CS 573 are layered courses; students may not receive credit for both)

CS 530:  High-performance Computing  -  CS 528


^ Back To Top ^

 

Take the Next Step to Becoming a Wildcat.

Admissions@cwu.edu