Department of Computer Science & Engineering
Department Chair: Greg Cameron
Department Secretary: Caetie Carter (208) 0 -
Department Faculty: Gordon BlackGreg CameronScott ErcanbrackRex FisherRonald JonesRick 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, development and application of computer hardware and software. Students learn how to combine scientific knowledge and engineering methods with practical technical skills to help prepare them for life long learning and rewarding employment.

Three 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)

The graduates of the Computer Science and Engineering Department:
  • will have a thorough grounding in the fundamental principles and practices within their respective programs,
  • will have an understanding of the contexts in which their respective program is applied,
  • will be prepared for immediate employment in their respective program,
  • will be ethical and responsible employees.

    The department of Computer Science and Engineering strives to evaluate, improve and keep current its curriculum and the learning and teaching environment.
     
  • 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 373

     
    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    
               GEOL 111, 111L

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

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

     
    AND
    Requirement 2:
    Students who take Chem 105 must take Chem 106; 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-
               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.
     
    Take these Courses    Min Grade: C-
    CHEM 105
    ENG 316
    MATH 110
     
    Major Requirements
       
    Take these Courses    Min Grade: C-
    COMPE 224, 250, 324, 340, 350, 360, 398, 440, 460, 470, 499
    CS 124, 165, 235, 236
    MATH 111, 112, 215, 316, 321
    PH 121, 220


     
    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 150, 151, 153, 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 224, 324
    CS 236, 306, 345, 371, 373, 426, 427, 452, 460
     
    Course Descriptions

    COMPE 224 Fundamentals of Digital Systems (3:2:2)
    Theory, design, and implementation of combinational and sequential logic. Laboratory exercises are included.
    (Fall, Winter)
     
    COMPE 250 Electrical Circuit Analysis (5:3:4)
    Prerequisite: Math 113
    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.
    (Fall, Winter)
     
    COMPE 305 Principles of Electrical Engineering (3:2:2)
    Prerequisite: Math 112
    Introduction to DC and AC circuit analysis, motors, semiconductor devices, and digital logic. Intended for Mechanical Engineering majors.
    (Fall, Winter)
     
    COMPE 324 Computer Architecture (3:2:2)
    Prerequisite: CompE 224
    Instruction sets, control unit and data path design, memory hierarchy, pipelining, and I/O. Laboratory exercises are included.
    (Fall, Winter)
     
    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.
    (Fall, Summer)
     
    COMPE 350 Electronic Devices and Circuits (3:2:2)
    Prerequisite: CompE 250
    Theory, design, and implementation of circuits using diodes, bipolar junction transistors, and field effect transistors. Laboratory exercises are included.
    (Fall, Winter)
     
    COMPE 360 Microprocessors & Microcontrollers (3:2:2)
    Applications, architecture, programming and interfacing of commercial microprocessors and microcontrollers. Laboratory exercised are included.
    (Fall, Winter)
     
    COMPE 398 Internship (1-7:0:0)
    Prerequisite: Completion of first four semesters; Consent of Advisor and Department Internship Coordinator.
    Full-time employment as a computer engineering intern for one semester or more.
    (Upon Request)
     
    COMPE 440 Data Communications (3:2:2)
    Prerequisite: CompE 324
    Fundamentals of computer data communications and interfacing focusing on the physical and data link layers of the OSI architecture. Includes analog and digital data signaling, guided and wireless signal transmission, signal encoding techniques, error detection and correction, and flow control.
    (Fall, Summer)
     
    COMPE 460 Real-Time and Embedded Systems (3:2:2)
    Prerequisite: CompE 360
    Hardware/software interface, real-time kernel internals, implementation of high-level lanuage constructs, issues in real-time application software development.
    (Summer, Fall)
     
    COMPE 470 Feedback Control of Dynamic Systems (4:3:2)
    Prerequisite: Math 371
    Dynamic modeling, dynamic response, analysis and design of feedback control based on root locus, frequency response, state variable feedback. Analysis includes performance, stability, Nyquist criteria, Bode constrains; Design includes PID, Lead/Lag, and observational state feedback controllers.
    (Fall, Winter)
     
    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.
    (Fall, Summer)
     
    COMPE 499 Senior Project I (3:3:0)
    Prerequisite: CompE 440, CompE 460, CompE 470
    Culminating design experience based on skills learned in advanced technical courses. Students work in teams to plan, design, test, and demonstrate a major project.
    (Fall, Winter)
     
    CS 100 Computer Basics (1: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. This course fills the online learning requirement.
    (Winter, Summer, Fall)
     
    CS 124 Introduction to Computer Systems (3:3:0)
    Prerequisite: High School Algebra
    Algorithmic thinking and problem solving. Programming basics including fundamental data types, flow of control, subroutines, and arrays. Structured programming. Procedural paradigm of software development.
    (Summer, Fall, Winter)
     
    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 object-oriented programming. Intended for non-Computer Science majors.
    (Winter, Summer, Fall)
     
    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.
    (Winter, Fall)
     
    CS 165 Object-oriented Software Development (3:3:0)
    Prerequisite: CS 124 and Math 110
    Software design and development using an object-oriented language. Algorithm formulation, object-oriented programming, and an introduction to software engineering.
    (Winter, Summer, Fall)
     
    CS 203 Ethics I (0.5:2:0)
    Prerequisite: Eng 111/111C and CS 165
    Survey of issues regarding ethics in Computer Science.
    (Winter, Fall)
     
    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.
    (Summer, Fall)
     
    CS 236 Discrete Mathematics (4:5:0)
    Prerequisite: CS 165 and Math 112
    Discrete mathematics for Computer Science. Introduces the mathematical topics needed to provide a theoretical foundation for computer science.
    (Fall, Winter)
     
    CS 303 Ethics II (0.5:2:0)
    Prerequisite: CS 203
    Overview of intellectual property rights relative to computing including copyright, patents, trademarks, and piracy.
    (Fall, Winter)
     
    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.
    (Summer, Fall)
     
    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, including: process control; memory management; CPU scheduling; I/O and file management; concurrency; distributed systems.
    (Fall, Winter)
     
    CS 346 Software Design and Development (3:3:0)
    Prerequisite: CS 235
    Advanced object oriented design and software development.
    (Fall, Winter, Summer)
     
    CS 371 Human-Computer Interaction (2:2:0)
    Prerequisite: CS 346
    Design, implementation and evaluation of software interfaces between humans and computers.
    (Fall, Winter)
     
    CS 373 Web Engineering (3:3:0)
    Prerequisite: CS 346
    Internet and Web basics. SGML, HTML, and XML overview. CGI with Perl. Web usability. Information architecture. Servlets. JavaScript.
    (Winter, Fall)
     
    CS 398 Internship (1-4:0:0)
    Prerequisite: CS 346 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.
    (Winter, Summer, Fall)
     
    CS 399 Colloquium (1:1:0)
    Prerequisite: Eng 316/316C and CS 346
    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.
    (Winter, Fall)
     
    CS 410 Compilers (3:3:0)
    Prerequisite: CompE 324
    Formal description of algorithmic languages and techniques used in the compilation of those languages. Lexical analysis, parsing theory, semantic analysis, code generation, and code optimization.
    (Fall, Winter)
     
    CS 426 Software Engineering I (4:5:0)
    Prerequisite: Eng 316/316C and CS 346
    Software requirements elicitation, specification, and engineering. Software architecture and design. Software quality engineering including testing and reliability.
    (Winter, Summer)
     
    CS 427 Software Engineering II (4:5:0)
    Prerequisite: Eng 316/316C and CS 346
    Software metrics, process, and project management.
    (Winter, Summer)
     
    CS 452 Database Systems (3:3:0)
    Prerequisite: 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.
    (Summer, Fall)
     
    CS 460 Computer Communication & Networks (3:3:0)
    Prerequisite: CS 235
    Introduction to computer networking and data communication, including: types of networks, networking protocols, the Internet, network applications, network transport services and protocols, IP, routing, LANs, Ethernet, wireless and other selected topics.
    (Summer, Fall)
     
    CS 490 Special Topics (4:5:0)
    Prerequisite: CS 346
    An introduction to a variety of current topics in Computer Science. Intended to give students breadth in the CS curriculum.
    (Fall, Winter)
     
    CS 498 Internship (1-4:0:0)
    Prerequisite: CS 346 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.
    (Winter, Summer, Fall)
     
    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.
    (Winter, Summer, Fall)
     
    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.
    (Fall, Winter)
     
    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.
    (Fall, Winter)
     
    EET 150 DC/AC Circuits (4:2:4)
    Introduction to Direct Current Circuits and Ohlm's Law. In-depth coverage of series, parallel, and series-parallel circuits. AC characteristics of inductors and capacitors. Network theorems are applied to complex DC and AC circuits. Laboratory exercises are included.
    (Fall, Winter)
     
    EET 151 Digital Circuits (3:2:2)
    Prerequisite: High School Algebra
    Introduction to digital electronics. Number systems, truth tables, Boolean algebra, and Karnaugh maps. Covers soldering and basic construction skills. Students must design and build a project that uses sequential logic and a programmable logic device. Laboratory exercises are included.
    (Fall, Winter)
     
    EET 153 Semiconductors (4:4:2)
    Prerequisite: EET 150
    Introduction to semiconductor devices. Principles of rectifiers, zener diodes, and other pn junction devices. Students must design, build, and demonstrate a linear power supply that meets given specifications. Laboratory exercises are included.
    (Fall, Winter)
     
    EET 250 Troubleshooting (3:2:2)
    Prerequisite: EET 150 and 153
    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.
    (Fall, Winter)
     
    EET 251 Industrial Circuits (3:2:2)
    Prerequisite: EET 150, EET 151, EET 153; Corequisite: Math 112
    Introduction to electronic control systems, feedback control theory, and Programmable Logic Controllers. Computers are used to program PLCs. Laboratory exercises are included.
    (Fall, Winter)
     
    EET 252 Communications Circuits (3:2:2)
    Prerequisite: EET 150 and EET 153
    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.
    (Fall, Winter)
     
    EET 253 Linear Integrated Circuits (3:2:2)
    Prerequisite: EET 150, EET 151, EET 153
    Operational amplifiers, comparators, and active filters. Programmable timers, DACs and ADCs. Laboratory exercises are included.
    (Fall, Winter)
     
    EET 255 Microprocessors & Microcontrollers (3:2:2)
    Prerequisite: EET 151
    Microprocessor architecture and operation. 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.
    (Fall, Winter)
     
    EET 298 Work Experience (1-4:0:0)
    Prerequisite: Consent of Advisor and Department Internship Coordinator.
    Work experience with selected electronics and computer firms. Work period may be arranged during any semester or summer term.
    ( Fall, Winter, and Summer.)
     
    ET 135 Basic Electricity (3:2:2)
    Prerequisite: High School Algebra
    Survey of Ohm's law, basic electricity and basic electronics. Recommended for non-EET majors, or those investigating the major. DC and AC principles. Fundamentals of Series, parallel, and series-parallel circuits. Magnetism, inductance, and capacitance. Also covers linear and digital integrated circuits. Laboratory exercises are included.
    (Fall)