Department of Computer Science
Department Chair: Greg Cameron
Department Secretary: (208) 0 -
Department Faculty: Greg CameronKevin Twitchell

 
Computer  Science  is  "the  study  of  computers,  including  their  design,  operation,  and  use  in  processing  information.  Computer  Science  combines  both  theoretical  and  practical  aspects  of  engineering,  electronics,  information  theory,  mathematics,  logic,  and  human  behavior.  Aspects  of  Computer  Science  range  from  programming  and  computer  architecture  to  artificial  intelligence  and  robotics."  (Microsoft  Press  Computer  and  Internet  Dictionary)  The  Computer  Science  curriculum  teaches  students  algorithms  and  problem  solving,  software  development,  aspects  of  computer  hardware,  the  theory  underlying  computing,  and  ethics. 

Students  interested  in  creating  computer-based  solutions  to  problems  are  attracted  to  Computer  Science.  Students  with  an  aptitude  for  mathematics  are  usually  successful  in  Computer  Science. 

Students  graduating  with  a  bachelors  degree  in  Computer  Science  are  prepared  to  enter  the  work  force  and  develop  software  applications  in  any  industry.  Currently  there  is  a  significant  shortage  of  software  developers;  the  quantity  of  unfilled  positions  for  developers  is  expected  to  continue  to  increase  over  time.  Students  may  also  choose  to  continue  their  education  in  graduate  school  and  research  some  of  the  many  facets  of  Computer  Science.  Regardless,  Computer  Science  majors  will  have  a  challenging  and  rewarding  career. 
 
Program Description
 


B.S.  in Computer Science (440)
The Computer Science major provides a solid background in Computer Science by providing experience in algorithm development, procedural and object oriented design and programming, software engineering practices, data structures,
computer organization, theoretical foundations. Upper-division classes for this degree will be available starting in 2003.

New Computer Science majors should be prepared, at a minimum, to take Math 112, Calculus I, as their first math class. Those who are not
prepared for calculus may need to take additional preparatory courses and may require more than eight semesters to graduate.

In addition to the General Education requirements, a student graduating with a major in Computer Science is required to complete the following
with a grade of "C-" or better:

General Education Requirements

As you fill the General Education and University Requirements take the classes listed below and then go to General Education for a complete listing of the requirements

CS majors are required to take one of the following Advanced Writing classes:
 Take 1 Course 

 ENG 316
 ENG 316C


AND
Computer science majors are required to take the following math courses:
 Take all of these courses 

 MATH 112
 MATH 113
 MATH 321
 MATH 341


AND
In addtion to the science sequence CS majors must take either Bio 176 or Bio 200
 Take 1 Course 

 BIO 176
 BIO 200


AND
Computer Science majors are required to have at a minimum 12 credits of approved science classes including one science sequence that contains a lab. Students taking Chem 105/106 have labs as part of the classes. Students taking Ph 121/220 will have to sign up for separate labs. In addition CS majors must take either Bio 176 or Bio 200.
 Take all of these courses 

 CHEM 105
 CHEM 106

OR
      Take all of these courses      

      PH 121
      PH 220


Major Requirements

In addition to the General Education requirements, a student graduating with a major in Computer Science is required to complete the following with a grade of "C-" or better:
 Take all of these courses 

 COMPE 250
 COMPE 324
 CS 104
 CS 124
 CS 165
 CS 204
 CS 235
 CS 236
 CS 273
 CS 304
 CS 306
 CS 345
 CS 346
 CS 371
 CS 404
 CS 410
 CS 426
 CS 427
 CS 428
 CS 452
 CS 460
 CS 499

Sample Sequence of Courses

Consult with your advisor as you plan each semester.
 
B.S.  in Computer Science
First Semester
CS 1040.5
CS 1243
MATH 1124
Religion2
Arts3
Reading and Writing (English)3
Total Credits15
Second Semester
COMPE 2505
CS 1653
MATH 1134
Religion2
Letters3
Total Credits17
Third Semester
CS 2353
CS 2733
Religion2
Social Science3
Physical Science4
Total Credits15
Fourth Semester
COMPE 3243
CS 2040.5
CS 2363
Religion2
American Institutions3
Physical Science4
Total Credits15
Fifth Semester
CS 3040.5
CS 3063
CS 3463
ENG 3163
MATH 3213
Religion2
Total Credits14
Sixth Semester
CS 3453
CS 3713
CS 4263
MATH 3413
Religion2
Basic Skills2
Total Credits16
Seventh Semester
CS 4040.5
CS 4103
CS 4273
CS 4523
Religion2
Elective3
Total Credits14
Eighth Semester
CS 4283
CS 4603
CS 4993
Biological Science4
Elective2
Total Credits15



Minor in  Computer Science (147)
Those desiring a minor in Computer Science must complete the core classes (12 credits) and choose 4 classes from the list of electives. One of the electives must be an upper division course.


Minor Requirements

A student choosing to minor in CS must complete the four core courses (124 or 144, 165, 235, 346) as well as four more CS course take from the list below. Of these four additional courses at least one must be an upper division CS course.
 Take 1 Course

 CS 124
 CS 144

AND
      Take all of these courses

      CS 165
      CS 235
      CS 346

     AND
      Take 4 Courses

      COMPE 250
      COMPE 324
      CS 236
      CS 273
      CS 306
      CS 345
      CS 371
      CS 410
      CS 426
      CS 427
      CS 428
      CS 452
      CS 460

 
Course Descriptions

CS 100 Computer Basics (1:0:0)
Fullfills GE Basic Skills requirement.
A pass/fail course that requires passing a two-part exam. The exam includes objective-type questions and performance section where the student uses computer applications to produce a final product. The topics in the exam will include the basic computer operating system, word processing, spreadsheet, and Internet skills. If desired, a student can prepare for the exam by completing self-paced tutorials that will be provided over the Internet. No class time is required. This course fills the online learning requirement.
 
CS 124 Introduction to Software Development (3:3:0)
Prerequisite: High School Algebra
Algorithmic thinking and problem solving. Programming basics including fundamental data types, flow of control, functions, and arrays. Structured programming. Procedural paradigm of software development.
 
CS 144 Introduction to Programming (3:3:0)
Prerequisite: Math 110 (may be taken concurrently)
Introduction to problem solving, algorithm formulation, procedural programming and object-oriented programming. Course is intended for non-Computer Science majors.
 
CS 165 Object-oriented Software Development (3:3:0)
Prerequisite: CS 124 and Math 110
Software design and development using the object-oriented paradigm. Algorithm formulation and object-oriented programming.
 
CS 202 Ethics (1:1:0)
Prerequisite: ENG 111/111C and CS 165
Survey of issues regarding ethics in Computer Science. Overview of intellectual property rights relative to computing including copyright, patents, trademarks, and piracy.
 
CS 235 Data Structures (3:3:0)
Prerequisite: CS 165
Builds on the foundation of CS 124 and CS 165 to introduce the fundamental concepts of data structures and the algorithms that proceed from them.
 
CS 236 Discrete Mathematics (4:5:0)
Prerequisite: CS 165, Math 112, and Math 221
Mathematics for computer science. Introduces the mathematical topics needed to provide a theoretical foundation for computer science.
 
CS 246 Software Design and Development (3:3:0)
Prerequisite: CS 235
Advanced object-oriented design and software development.
 
CS 290 Special Topics (1-3:0:0)
Prerequisite: Consent of Instructor.
Faculty/student consultation will determine an area of study/research that will give an advanced student greater appreciation and experience in this field. Terms of enrollment, credit, etc. will be determined by the instructor.
 
CS 306 Algorithms and Complexity (3:3:0)
Prerequisite: CS 235 and CS 236
Introduces formal techniques to support the design and analysis of algorithms, focusing on both the underlying mathematical theory and practical considerations of efficiency. Topics include asymptotic complexity bounds, techniques of analysis, and algorithmic strategies.
 
CS 345 Operating Systems (3:3:0)
Prerequisite: COMPE 324
Analysis of methods used by operating systems to perform typical system services, including: process control, memory management, scheduling, I/O, file management, and concurrency.
 
CS 371 Human-Computer Interaction (2:2:0)
Prerequisite: CS 373
Introduction to basic HCI concepts. Provides a foundation for the analysis, design, and evaluation of effective interactive systems.
 
CS 373 Web Engineering (3:3:0)
Prerequisite: CS 246
Internet and Web fundamentals. Client and Server side technologies. Web application development using: XHTML. CSS, XML, XSL/XSLT, JavaScript, Perl, PHP, and Java Servlets.
 
CS 398 Internship (1-4:0:0)
Prerequisite: CS 246 and consent of Department Internship Coordinator.
Planned and supervised practical experience in vocational or educational settings. Interns acquire practical skills while applying classroom theory and principles.
 
CS 399 Colloquium (2:2:0)
Prerequisite: Eng 316/316C and CS 246
Fundamentals of presenting to technical and non-technical audiences. Review classics of Computer Science literature. Present information on a technical topic of general interest in an open forum.
 
CS 426 Software Engineering I (4:5:0)
Prerequisite: Eng 316/316C and CS 246 (CS 427 must be taken concurrently)
Software requirements engineering including elicitation, and specification. Software architecture and design. Software quality engineering including testing and reliability.
 
CS 427 Software Engineering II (4:5:0)
Prerequisite: Eng 316/316C and CS 246 (CS 426 must be taken concurrently)
Software metrics, software process, and software project management.
 
CS 452 Database Systems (3:3:0)
Prerequisite: CS 236 and CS 373
Study of database design and implementation; comparison of basic models; study of query languages; discussion of issues of integrity, security, dependencies, and normal forms.
 
CS 460 Computer Communication & Networks (3:3:0)
Prerequisite: CS 235, CS 246
Introduction to computer networking with an Internet focus, including: applications, protocols, transport services, IP, routing, LANs, and security.
 
CS 470 Computer Security (3:3:0)
Prerequisite: CS 236 and CS 246
Security in multi-user and distributed computer systems, cryptography, identification and authentication, message and software protection.
 
CS 480 Computational Theory (3:3:0)
Prerequisite: CS 306
Finite automata, regular expressions, grammars, languages, turing machines, computability, complexity, P and NP problems.
 
CS 490 Special Topics (3:3:0)
Prerequisite: Consent of Instructor
Current topics in Computer Science.
 
CS 498R Internship (1-4:0:0)
Prerequisite: CS 246 and consent of Department Internship Coordinator.
Planned and supervised practical experience in vocational or educational settings. Interns acquire practical skills while applying classroom theory and principles.
 
CS 499 Senior Project (3:1:2)
Prerequisite: CS 426 and CS 427
Directed individual or group research and study of a topic in Computer Science not covered by the curriculum. The topic shall be such that the student shall apply material covered by the curriculum to understand a new topic.