Computer Science Program

Computer Science Program

The goal of Computer Science at Idaho State University is to provide students with a broad yet rigorous computer science education. Graduates earning a Bachelor of Science in Computer Science will possess the following: the requisite qualifications for obtaining employment as a computer scientist; an understanding that life-long learning is an integral part of personal, professional and social interaction; and the requisite qualifications for pursuing an advanced degree in Computer Science or a related field, particularly when the curriculum is augmented with additional selected math courses. By adding the Minor in Business Administration, they may complete the MBA in a 5th year; this is particularly important for those students interested in graduate work as part of the National Information Assurance Training and Education Center (NIATEC).

Students wishing to become computer science majors should contact the CS office to have an advisor assigned to them and to sketch out an initial program of study. While taking CS 3308, CS majors must contact their CS advisor to revise their program of study. Before the beginning of their final year of study, students should ensure that their degree works page indicates all general education, CS major, and other degree requirements will be completed by graduation. All courses applying toward the computer science major or minor must be passed with a grade of “C-“ or higher. For all major or minor courses after 1181, CS students are expected to have a laptop computer with sufficient capacity to run various tools within virtual machines. 

As part of Computer Science’s commitment to lifelong learning, students will become accustomed to both written and oral presentations. They will be immersed in a virtual learning environment based on modern software design and development processes. Students are expected to adapt to new operating systems, DBMSs, programming languages, development environments, and security protocols.

The Bachelor of Science program in Computer Science is accredited by the Northwest Commission on Colleges and Universities.

Bachelor of Science in Computer Science

The following courses are required in addition to the university's General Education Requirements for the Bachelor of Science degree.  120 credits are required to graduate.1

Mathematics and Science Courses:
MATH 1170Calculus I4
MATH 1175Calculus II4
MATH 2275Calculus III4
MATH 2240Linear Algebra3
Select one course from each pair or triple:
CS/MATH 1187Applied Discrete Structures3
or MATH 2287 Foundations of Mathematics
PHYS 2211Engineering Physics I3-4
or MATH 3360 Differential Equations
MATH 3350Statistical Methods3
or MATH 4450 Mathematical Statistics I
or MGT 2216 Business Statistics
MATH 3352Introduction to Probability3
or MGT 2217 Advanced Business Statistics
Required Computer Science and Related Courses:
INFO 1150Software and Systems Architecture3
CS/INFO 1181Computer Science and Programming I (Satisfies General Education Objective 7)3
CS 1182Computer Science and Programming II3
or INFO 1182 Informatics and Programming II
CS 2275Computer Organization and Assembly3
CS 3308Data Structures and Programming3
INFO 3380Networking and Virtualization3
CS 3385Data Structures and Algorithms3
INFO 4411Intermediate Information Assurance3
CS 4471Operating Systems4
CS 4481Compilers3
CS 4488Advanced Software Engineering and Project3
Select one course from each pair:
CS 3321Software Engineering3
or INFO 3307 Systems Analysis and Design
CS 4451Database Theory Design and Programming3
or INFO 4407 Database Design and Implementation
To allow students to have the broadest possible learning experience, students are encouraged to select elective courses carefully. These range from an increased emphasis in advanced Mathematics to a specialization in Computer Security/Information Assurance.
The CS Major also requires 6 additional elective credits from the following list:6
Any 4000 level Computer Science course
Systems Security for Senior Management
Systems Security Administration
Systems Security Management
System Certification
Risk Analysis
Web Application Development
Systems Development and Implementation Methodologies
Secure Software Life Cycle Development
Advanced Linear Algebra
Modern Algebra I
Modern Algebra II
Introduction to Numerical Analysis I
Introduction to Numerical Analysis II
Mathematical Statistics II
Symbolic Logic and Foundations of Mathematics
Other electives may be approved by the computer science program director or chair on a case by case basis.
Total Hours73-74
1

All required courses for the CS major and minor must be completed with a grade of C- or higher.

Minor in Computer Science

MATH 1170Calculus I3-4
or MGT 2217 Advanced Business Statistics
INFO 1150Software and Systems Architecture3
CS/INFO 1181Computer Science and Programming I (Satisfies General Education Objective 7)3
CS 1182Computer Science and Programming II3
or INFO 1182 Informatics and Programming II
CS 2275Computer Organization and Assembly3
CS 3308Data Structures and Programming3
Approved Electives 16
Total Hours24-25
1

Plus six credits from the list of approved electives shown above for the major in Computer Science or INFO 4407, INFO 4411, or CS 3385.

How to Read Course Descriptions

Courses

CS 1181 Computer Science and Programming I: 3 semester hours.

Problem solving methods and algorithm development with an emphasis on programming style. Secure software design/coding concepts for resilient software. Equivalent to INFO 1181. Satisfies Objective 7 of the General Education Requirements. PRE-or-COREQ: MATH 1143 or MATH 1147. F, S

CS 1182 Computer Science and Programming II: 3 semester hours.

Object-oriented programming and design. Sorting and searching. Recursion. Event-driven programming. UML class-diagrams. Secure software design/coding concepts for resilient software systems. PREREQ: CS 1181/INFO 1181. S

CS 1187 Applied Discrete Structures: 3 semester hours.

Discrete structures in CS and EE. Boolean algebra and logic; sets, functions, and relations; iteration, recursion, and induction; algorithms; programming in pseudocode; basic counting principles; graphs and trees; and other selected topics from discrete mathematics. Equivalent to MATH 1187. PREREQ: CS 1181/INFO 1181. S

CS 2263 Advanced Object-Oriented Programming: 3 semester hours.

Advanced programming in a modern object-oriented language, different from the one used in CS 1181 and CS 1182; philosophy, application, and examples of object-oriented concepts and techniques; comprehensive survey of software engineering design patterns. PREREQ: CS 1182. D

CS 2275 Computer Organization and Assembly: 3 semester hours.

Effect of computer architecture on the performance and correctness of code including data representation, machine language, compilation, code optimization, memory hierarchy, linking, pipelining, virtual memory, I/O and storage, and operating systems. Assembly programming. PRE-or-COREQ: INFO 1150, CS 1182 or INFO 1182. PREREQ: MATH 1143 or MATH 1144 or MATH 1147 or MATH 1170 or equivalent. D

CS 2299 Experimental Course: 1-6 semester hours.

This is an experimental course. The course title and number of credits are announced in the class schedule by the scheduling department. Experimental courses may be offered no more than three times with the same title and content.

CS 3308 Data Structures and Programming: 3 semester hours.

Introduction to data structures and their associated algorithms. Abstract data types, linked lists, stacks, queues, trees. Pointers. Sorting and searching. Elementary threading. Extensive programming exercises and projects. PREREQ: CS 1182 or INFO 1182 and MATH 1143 or MATH 1144 or MATH 1147 or MATH 1170 or equivalent. D

CS 3321 Software Engineering: 3 semester hours.

Techniques and tools for conceiving, designing, testing, deploying, maintaining, and documenting large software systems with particular focus on the structured analysis and design phases including task analysis, human factors, costs, and project and team management. PREREQ: CS 3308. D

CS 3344 Artificial Intelligence: 3 semester hours.

Fundamental principles and techniques of artificial intelligence systems; search strategies; knowledge acquisition and representation; common sense reasoning; planning; machine learning; expert systems; intelligent agents and multi-agent systems. PREREQ: CS 3385. D

CS 3385 Data Structures and Algorithms: 3 semester hours.

The design, construction, and analysis of data structures, algorithms, and complexity beyond CS 3308. Balanced trees, heaps, hash tables, graph algorithms, sorting and searching. Space and time complexity. Significant coding projects. PREREQ: CS 2275, CS 3308, MATH 1175, and MATH 2240. PRE-or-COREQ: MATH 1187 or MATH 2287. D

CS 3386 Data Structures and Algorithms II: 3 semester hours.

Continuation of CS 3385. PREREQ: CS 3385. D

CS 3393 Computer Science Internship: 1-3 semester hours.

Internship program coordinated by Computer Science faculty providing significant exposure to computer science issues and techniques. May not be used to fulfill computer science major or minor requirements. PREREQ: INFO 3307, INFO 4407, CS 3308, CS 2275, MATH 1175, ENGL 1102, and permission of instructor. D

CS 4420 Computer Security and Cryptography: 3 semester hours.

Public key and private key cryptopgraphy, key distribution, cryptographic protocols, requisite mathematics and selected topics in the development of security and cryptography. PREREQ: CS 3385. D

CS 4440 Web Programming: 3 semester hours.

Server and client-side, secure, web-based database and related applications. PREREQ: CS 3308, CS 2275. PRE-or-COREQ: INFO 4407 or CS 4451. D

CS 4442 GUI Development: 3 semester hours.

Planning and construction of Graphical User Interfaces and discussion of essential software engineering concepts. Includes the use of a modern toolkit language. PREREQ: CS 3385. D

CS 4444 Image and Audio Processing: 3 semester hours.

Image and audio acquisition, quantization, spatial and spectral filters, sharpening, smoothing, restoration, compression, segmentation, Fourier and Wavelet transforms. PREREQ: CS 1187/MATH 1187, MATH 3352, and MATH 3360. D

CS 4445 Data Compression: 3 semester hours.

A survey of modern techniques of data compression, both lossy and loss-less and encryption. PREREQ: CS 3385. D

CS 4451 Database Theory Design and Programming: 3 semester hours.

Data models, relational algebra and calculus, SQL and stored procedures, database design, ER diagrams, normalization theory, data storage, index structures, performance analysis, concurrency control. Database programming language access. Uses a different programming language. PREREQ: CS 3385. D

CS 4458 Computer Graphics: 3 semester hours.

Graphics, transformation matrices, lighting models, object hierarchies, visible surface determination, ray tracing. PREREQ: CS 3385 and (CS 1187 or MATH 1187 or MATH 2287). D

CS 4460 Comparative Programming Languages: 3 semester hours.

Design of historical and contemporary programming languages, concentration on promoting understanding of structural organization, data structures and typing, name structures, and control structures. PREREQ: CS 3385 and either CS 2275 or CS 4475. D

CS 4470 Parallel Processing: 3 semester hours.

Topics in high-performance computing: parallel architectures, SIMD, MIND, SMP, NUMA models, message passing, cache coherency issues, MPI, PVM, parallel programming languages, cluster and grid approaches, applications and experience programming on a cluster. PREREQ: CS 3385 and either CS 2275 or CS 4475. D

CS 4471 Operating Systems: 4 semester hours.

Theory, design, and implementation of software systems to support the management of computing resources. Concurrency, mutual exclusion and synchronization, CPU scheduling. Process, memory, and security. I/O files, and device management. Scripts and shells. Extensive systems programming including implementation of a portion of an operating system. PREREQ: CS 2275 and CS 3308. D

CS 4475 Advanced Computer Architecture: 3 semester hours.

Continuation of CS 2275, Computer Organization and Assembly. PREREQ: CS 2275 and EE 2274. D

CS 4480 Theory of Computation: 3 semester hours.

Finite representations of languages, deterministic and nondeterministic finite automata, context free languages, regular languages, parsing, Turing Machines, Church's Thesis, uncomputability, computational complexity classes. PREREQ: CS 3385, CS 1187/MATH 1187 or MATH 2287, and MATH 1175. D

CS 4481 Compilers: 3 semester hours.

Design and construction of compilers. Theory and pragmatics of lexical, syntactic, and semantic analysis. Interpretation. Code generation for a modern architecture. Run-time environments. Includes a large compiler-implementation project. PREREQ: CS 3385. D

CS 4488 Advanced Software Engineering and Project: 3 semester hours.

Analysis, specification, design, implementation, and testing of a large software project. Formal approach and tools. Software lifecycle. Human computer interaction. Project and team management. Uses a different programming language. PREREQ: CS 3385, CS 3321 or INFO 3307, and CS 4451 or INFO 4407. D

CS 4492 Special Problems in Computer Science: 3 semester hours.

Research and reports on problems or topics in computer science. May be repeated for up to 9 credits with different content. PREREQ: Permission of instructor. D

CS 4499 Experimental Course: 1-6 semester hours.

This is an experimental course. The course title and number of credits are announced in the class schedule by the scheduling department. Experimental courses may be offered no more than three times with the same title and content.

Faculty

Program Director and Professor

Beard

Chair and Professor

Parker

Professor

Schou

Assistant Professor

Edwards

Back to Top