Department of Computer Science & Engineering
Department Chair: Greg Cameron
Department Secretary: Caetie Carter (208) 0 -
Department Faculty: Gordon BlackGreg CameronRex FisherRonald JonesNeil MorganRick NeffKevin SmithKevin Twitchell

 
Department of Computer Science and Engineering
The curriculum in the Computer Science and Engineering Department is designed to provide a broad background in the theory and practice of computer hardware and software. Students learn how to combine scientific knowledge and engineering methods with practical technical skills to help prepare them for intriguing and challenging careers.

Four degree programs are offered:

1) B.S. in Computer Science (CS)
2) B.S. in Computer Engineering (CompE)
3) A.A.S. in Electronics Engineering Technology (EET)
4) A.A.S. in Computer Systems Technology (CST).

A minor in Computer Science is also available.

Employment opportunities are excellent for Computer Science and Computer Engineering graduates. They will enter one of the fastest growing job markets and command some of the highest starting salaries among all university graduates. Typical career work includes computer design, software development, networking, and computer interfacing.

Students earning an Associate Degree in EET or CST are also very much in demand. They find work in such areas as failure analysis, electronic manufacturing, field service, instrumentation and calibration, computer installation, computer repair, and computer networking.
 
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, and theoretical foundations.

Your advisor can help you determine the best sequence of courses to meet all graduation requirements within eight semesters.

General Education Requirements

As you fill the General Education and University requirements, take the classes listed below and then go to the General Education section for a complete listing of the requirements.
 
Requirement 1:
Students with strong math backgrounds may choose to take Math 112 without first completing Math 110 and Math 111. After passing Math 112, the additional five math credits required for graduation may be received by applying for vertical credit. It is highly recommended, however, that those planning to attend graduate school take additional math classes, including Math 113, instead of using vertical credit.

Take these Courses    Min Grade: C-
ENG 316
MATH 110

 
AND
Requirement 2:

Take this Course    
CS 273

 
AND
Requirement 3:

Take 1 Course    Min Grade: C-
BIO 176, 200

 
AND
Requirement 4:

Take this Course    Min Grade: C-
CHEM 105
 
        OR
           Take these Courses    
           PH 121, 150
 
                  OR
                     Take these Courses    
                     GEOL 111, 111L

 
Major Requirements
   
Requirement 1:
CS 273 may be used to fulfill the General Education Basic Skills requirement.

Take all of these Courses    Min Grade: C-
COMPE 250, 324
CS 124, 165, 203, 235, 236, 273, 303, 306, 345, 346, 371, 399, 410, 426, 427, 452, 460, 490, 499
MATH 111, 112, 221, 341

 
AND
Requirement 2:
Students who take Chem 105 must take Chem 106; students who take Ph 121 must take Ph 220 and Ph 250; students who take Geol 111 must take Geol 112 and Geol 112L.

Take this Course    Min Grade: C-
CHEM 106
 
        OR
           Take these Courses    Min Grade: C-
           PH 220, 250
 
                  OR
                     Take these Courses    Min Grade: C-
                     GEOL 112, 112L


 
B.S.  in Computer Engineering (450)   
This curriculum focuses on preparing students to enter industry as computer engineers. Scientific and engineering theory is an important element of the program. Laboratory experiences are included in most courses to develop practical skills that working engineers must possess.

Your advisor can help you determine the best sequence of courses to meet all graduation requirements within eight semesters.

General Education Requirements

As you fill the General Education and University requirements, take the classes listed below and then go to the General Education section for a complete listing of the requirements.
  Students with strong math backgrounds may choose to take Math 112 without first completing Math 110 and Math 111. After passing Math 112, the additional five math credits required for graduation may be received by applying for vertical credit. It is highly recommended, however, that those planning to attend graduate school take Math 341 and Math 371 instead of using vertical credit.

Take these Courses    Min Grade: C-
CHEM 105
ENG 316
MATH 110
 
Major Requirements
   
Take these Courses    Min Grade: C-
COMPE 250, 324, 340, 350, 360, 489, 490, 499
CS 124, 165, 235, 236, 345, 346, 460
MATH 111, 112, 113, 321
PH 121, 220


 
A.A.S.  in Computer Systems Technology (348)   
This degree focuses on the hardware and software of computers, including electronic circuits, computer architecture, networking, interfacing, and programming. It bridges the gap between the mostly-software content of Computer Science and the traditional Engineering and Engineering Technology programs that emphasize hardware. Graduates may get jobs configuring, troubleshooting, and repairing computers and networks. They may also pursue B.S. degrees at another university.

Your advisor can help you determine the best sequence of courses to meet all graduation requirements within four semesters.

Basic Education Requirements

As you fill the Basic Education Requirements and University requirements, take the classes listed below and then go to the Basic Education section for a complete listing of the requirements.
 Students with strong math backgrounds may choose to take Math 112 without first completing Math 110 and Math 111. After passing Math 112, the additional five math credits required for graduation may be received by applying for vertical credit.

Take these Courses    Min Grade: C-
ENG 316
MATH 110
 
Major Requirements
   
Take all of these Courses    Min Grade: C-
CS 144, 165, 235
CST 220, 225
EET 151, 152, 153, 154, 255
IS 140
MATH 111, 112
PH 121
 
        AND
           Take this Course    
           CHEM 105
 
        OR
           Take these Courses    
           PH 123, 150


 
A.A.S.  in Electronics Engineering Technology (350)   
Graduates are prepared for employment as Electronics Engineering Technicians or to transfer into B.S. programs in Electronics Engineering Technology at another university. Students gain knowledge and skills in analog circuits, digital circuits, semiconductors, linear integrated circuits, troubleshooting, RF communications, control systems, and microprocessors.

The Electronics Engineering Technology program at Brigham Young University-Idaho has been continuously accredited by the Technology Accreditation Commission of the Accreditation Board for Engineering and Technology (TAC/ABET) since 1970. Call (410) 347-7700 or visit the web page at www.abet.org for more information about this accreditation.

Your advisor can help you determine the best sequence of courses to meet all graduation requirements within four semesters.

Basic Education Requirements

As you fill the Basic Education Requirements and University requirements, take the classes listed below and then go to the Basic Education section for a complete listing of the requirements.
 Students with strong math backgrounds may choose to take Math 112 without first completing Math 110 and Math 111. After passing Math 112, the additional five math credits required for graduation may be received by applying for vertical credit.

Take these Courses    Min Grade: C-
ENG 316
MATH 110
 
Major Requirements
   
Take all of these Courses    Min Grade: C-
CS 144
EET 151, 152, 153, 154, 250, 251, 252, 253, 255
ENGRT 125
MATH 111, 112
PH 121
 
        AND
           Take this Course    
           CHEM 105
 
        OR
           Take these Courses    
           PH 123, 150



Minor in  Computer Science (147)   

Take these Courses    
CS 165, 235, 346

AND
Take 1 Course    
CS 124, 144

AND
Take 4 Courses    
COMPE 250, 324
CS 236, 273, 306, 345, 371, 410, 426, 427, 452, 460
 
Course Descriptions

COMPE 224 Fundamentals of Digital Systems (3:2:2)
Prerequisite: CS 124
Theory, design, and implementation of combinational and sequential logic. Laboratory exercises are included.
 
COMPE 250 Electrical Circuit Analysis (5:3:4)
Analysis and design of DC and AC circuits. Steady state, and time and frequency domain analysis. Transient analysis with differential equations. Extensive laboratory exercises are included.
 
COMPE 305 Principles of Electrical Engineering (3:2:2)
Prerequisite: Math 113
Introduction to DC and AC circuit analysis, semiconductor devices, and digital logic. Intended for Mechanical Engineering majors. Laboratory exercises are included.
 
COMPE 324 Computer Architecture (3:2:2)
Prerequisite: CompE 224
Computer organization and architecture which includes: instruction set, control unit and data path design, memory hierarchy, pipelining, and I/O. Laboratory exercises are included.
 
COMPE 340 Digital Systems Design (3:2:2)
Prerequisite: CompE 224
Advanced topics in combinational logic, state machine design, and control structures. HDL, CPLDs, and FPGAs. Laboratory exercises are included.
 
COMPE 350 Electronic Devices & Circuits (4:4:2)
Prerequisite: CompE 250
Introduction to semiconductor devices and applications. Diodes, BJTs, FETs, and amplifiers. Laboratory exercises are included.
 
COMPE 360 Microprocessors & Microcontrollers (3:2:2)
Prerequisite: CompE 324 and CompE 340
Applications, architecture, programming and interfacing of commercial microprocessors and microcontrollers. Laboratory exercised are included.
 
COMPE 489 Senior Project I (3:3:0)
Prerequisite: Senior standing
First of a two-semester sequence of integrated courses culminating in the design and prototype production of a complete system that combines computer hardware and software to solve an engineering, science, manufacturing, or business problem. Integrates technical writing, team building, project management, communication, and presentation skills.
 
COMPE 490 Special Topics (3:2:2)
Prerequisite: Senior standing or permission of instructor
In-depth study of a topic in computer engineering that interests students and faculty. Possible topics: VLSI design, super computing, robotics, current research, etc. Laboratory exercises are included where appropriate.
 
COMPE 499 Senior Project II (3:3:0)
Prerequisite: CompE 489
Second of a two-semester sequence. A "capstone" experience. See CompE 489.
 
CS 100 Computer Basics (1-2:0:0)
Fulfills 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, and the exam may be taken at any time during the semester. This course fills the online learning requirement.
 
CS 102 Introduction to Computer Science (1:1:0)
Prerequisite: High School Algebra
Provides information to help a student determine if he/she would like to major in Computer Science. Basic concepts of Computer Science, software engineering, and software development.
 
CS 124 Introduction to Computer Systems (3:3:0)
Prerequisite: High School Algebra
How a computer works from hardware to high-level programming including: number systems and codes, logic gates, truth tables, binary and hexadecimal arithmetic, memory concepts and operation, basic computer system organization and instructions, high-level procedural programming language, program translation and algorithm analysis. Computer Science and Computer Engineering majors only.
 
CS 144 Introduction to Software Development (3:3:0)
Prerequisite: Math 110 (may be taken concurrently)
Algorithm formulation, problem solving, fundamental data types. Procedural paradigm of software development. Structured programming. Introduction to objects. Intended for non-Computer Science majors.
 
CS 148 Computer Science Review (1:1:0)
Prerequisite: CS 165 or equivalent
Review of CS 165 concepts for those who have not been taking Computer Science classes for an extended period of time.
 
CS 165 Object Oriented Software Development (3:3:0)
Prerequisite: CS 124 and Math 110
Software development using an object-oriented language. Algorithm formulation, an introduction to software engineering, and object-oriented programming.
 
CS 203 Ethics I (0.5:2:0)
Prerequisite: Eng 111/111C and CS 165
Survey of issues regarding ethics in Computer Science.
 
CS 235 Data Structures (3:3:0)
Prerequisite: CS 165
Abstraction, recursion, introduction to algorithm analysis, list structures, binary trees, sorting and graphs.
 
CS 236 Discrete Mathematics (4:5:0)
Prerequisite: CS 165 and Math 112
Discrete mathematics for Computer Science and Computer Engineering. Introduces the mathematical topics needed to provide a solid foundation for further courses.
 
CS 273 Web Engineering (3:3:0)
Prerequisite: CS 144 or CS 165
Internet and Web overview. Introduction to human-computer interaction. Information architecture. Client-server computing with client-side and server-side programming. (Fulfills General Education Basic Skills requirement for CS majors.)
 
CS 303 Ethics II (0.5:2:0)
Prerequisite: CS 203
Overview of intellectual property rights relative to computing.
 
CS 306 Algorithms and Complexity (3:3:0)
Prerequisite: CS 235 and CS 236
Theory and application of languages and algorithms. Topics include algorithmic analysis; greedy, divide and conquer, back-tracking, branch and bound, and dynamic programming type algorithms; automata; languages and grammars; parsing techniques.
 
CS 345 Operating Systems (3:3:0)
Prerequisite: CS 235 and COMPE 324
Analysis and design of methods used by operating systems to perform typical system services: design and implementation of file and directory systems; I/O methods, including programmed, interrupt-driven, and DMA; CPU scheduling; memory management techniques and implementations; concurrent programming; deadlocks; protection mechanisms.
 
CS 346 Software Design and Development (3:3:0)
Prerequisite: CS 235
Advanced object oriented design and software development.
 
CS 371 Human-Computer Interaction (3:3:0)
Prerequisite: CS 273 and CS 346
Overview of human-computer interaction theories and methods. Graphical user interface design, user-centered design, usability engineering, user psychology, and the nature of human-computer interaction.
 
CS 399 Colloquium (1:1:0)
Prerequisite: Eng 316/316C and CS 346
Fundamentals of presenting to technical and non-technical audiences. Present information on a technical topic of general interest in an open forum.
 
CS 410 Compilers (3:3:0)
Prerequisite: CS 306
Principles and practices in the design and development of programming language compilers.
 
CS 426 Software Engineering I (3:3:0)
Prerequisite: Eng 316/316C and CS 346
Software requirements, design, and quality engineering.
 
CS 427 Software Engineering II (3:3:0)
Prerequisite: Eng 316/316C and CS 346
Software metrics, process, and project management.
 
CS 452 Database Systems (3:3:0)
Prerequisite: CS 236
Study of database design and implementation; comparison of basic models (entity-relationship, hierarchical, network, relational); study of query languages; discussion of issues of integrity, security, dependencies, and normal forms.
 
CS 460 Computer Communication & Networks (3:3:0)
Prerequisite: CS 345
Introduction to data communications and networking. Communications fundamentals, computer networks, software, architecture, telecommunications, regulations, standards.
 
CS 490 Special Topics (3:3:0)
Prerequisite: CS 346
Current topics in Computer Science
 
CS 499 Senior Project (3:1:2)
Prerequisite: CS 426 and CS 427
Directed 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.
 
CST 220 Computer Architecture (3:2:2)
Prerequisite: EET 151
This class focuses on the hardware of the IBM PC. The functions of the system board, expansion cards, storage devices, etc. are covered. Emphasis is on the operational characteristics of each device or system (both hardware and software drivers). Students also learn how to assemble, upgrade, troubleshoot, and perform preventive maintenance on PCs through lab exercises.
 
CST 225 Computer Networking & Interfacing (3:2:2)
Prerequisite: CST 220
Introduces networking concepts and operation including: topologies, protocols, media and applications. Emphasis is on the operation, installation, and configuration of network hardware. Students install and configure the hardware and software for peer-to-peer and client/server local area networks. Interfacing: Serial, parallel and USB hardware and protocols with an emphasis on their use in networking.
 
EET 151 Digital Circuits (3:2:2)
Prerequisite: High School Algebra
Introduction to digital electronics. Number systems, truth tables, Boolean algebra, and Karnaugh maps. Combinational logic circuits: SSI devices (AND, OR, NAND, etc.), and MSI devices (MUX, DX, ALU, etc.). Sequential logic circuits: flip-flops, counters, and shift registers. State machine design and analysis. Also covers soldering and basic construction skills. Students must design and build a project that uses sequential logic and a programmable logic device. A Student presentation is required. Laboratory exercises are included.
 
EET 152 DC Circuits (3:3:0)
Prerequisite: High School Algebra; Corequisite: Math 110
Introduction to Direct Current circuits and Ohm's law. In-depth coverage of series, parallel, and series-parallel circuits. Efficiency, internal resistance of sources, and maximum power transfer . Kirchoff's laws, network theorems, and Delta-Wye transformation. Magnetism and DC characteristics of inductors and capacitors. Student presentations are required.
 
EET 153 Semiconductors (4:4:2)
Prerequisite: EET 152; Corequisite: EET 154
Introduction to semiconductor devices. Principles of rectifiers, zener diodes, and other pn junction devices. Diode applications such as voltage rectifiers, voltage multipliers, voltage regulators, clippers, and clampers. Principles, biasing, modeling, and small signal applications of bipolar junction transistors and field effect transistors. Students must design, build, and demonstrate a linear power supply that meets given specifications. Laboratory exercises are included.
 
EET 154 AC Circuits (4:3:2)
Prerequisite: EET 152; Corequisite: Math 111
Introduction to Alternating Current circuits. AC characteristics of inductors and capacitors. Phasor algebra is used to analyze series, parallel, and series-parallel AC circuits. Network theorems are applied to complex AC circuits. Resonant circuits and harmonics. Laboratory exercises are included.
 
EET 250 Troubleshooting (3:2:2)
Prerequisite: EET 153 and EET 154
Identify and repair trouble-symptoms in TVs, radios, tape recorders, VCRs, and CD players. Students use proper instrumentation to isolate the malfunction to a particular component. Defective components are replaced to restore normal operation. Student presentations are required. Laboratory exercises are included.
 
EET 251 Electronic Circuits (3:2:2)
Prerequisite: EET 151, EET 152, EET 153; Corequisite: Math 112
Introduction to electronic control systems, feedback control theory, and Programmable Logic Controllers. Electromechanical components: sensors, motors, and driver circuits. Mechanics: gears, springs, friction, and inertia. Interface circuits between mechanics and electronics. Student presentations covering some of the class topics are required. Laboratory exercises are included.
 
EET 252 Communications Circuits (3:2:2)
Prerequisite: EET 153 and EET 154
Introduction to analog and digital electronic communication. Theory of amplitude modulation, frequency modulation, pulse modulation, antennas and transmission lines. Transmitters, receivers, oscillators, and antennas are built and tested. Student presentations are required. Laboratory exercises are included.
 
EET 253 Linear Integrated Circuits (3:2:2)
Prerequisite: EET 151, EET 152, EET 153, EET 154
Operational amplifiers, comparators, and active filters. Programmable timers, DACs and ADCs. Special measurement techniques. A student project and presentation are required. Laboratory exercises are included.
 
EET 255 Microprocessors & Microcontrollers (3:2:2)
Prerequisite: EET 151
Microprocessor architecture and operation: internal state machine, registers, and microcode. Microprocessor systems: direct memory access, interrupts, and interfacing to memory and I/O (including programmable ports). Applications of state machines, ROM-controllers, microprocessors, and microcontrollers. Troubleshooting with an emulator. Students must design, build, and present to the class an approved project that uses a microcontroller. Laboratory exercises included.