Computer Science Major

The discipline of Computer Science has arisen as one of the highest-paying fields in the last decade; the average starting salary for a Computer Science graduate in the USA is more than $63,000/year. The Computer Science Program at ISU can prepare you to succeed in a wide range of exciting computer-science-related careers including software engineering, databases, computer security, networks, system administration, etc.

While many computer science graduates focus on technical work, the computer science major can also be a general purpose degree leading in a number of additional directions: by adding a minor or second major in Philosophy or Political Science, computer science majors can go into Law; or by adding the minor in Business Administration, they may complete the MBA in a 5th year leading to technical management possibilities. The MBA is also important for those students interested in graduate work as part of the National Information Assurance Training and Education Center (NIATEC).


Required Courses
Course# Name Prereq
CS 1181 Computer Science and Programming I MATH 1143 or MATH 1147 (Coreq okay)
Problem solving methods and algorithm development with an emphasis on programming style. Satisfies Objective 7 of the General Education Requirements.
CS 1182 Computer Science and Programming II CS 1181 or
INFO 1181
Object-oriented programming and design. Sorting and searching. Recursion. Event-driven programming. UML class-diagrams. Secure software design/coding concepts for resilient software systems.
CS 1187 Applied Discrete Structures CS 1181 or
INFO 1181
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.
CS 2275 Computer Architecture and Assembly CS 1181 or
INFO 1181
Computer organization from the perspective of instructions, including the central processor, busses, input and output units, and memory units. Instruction sets, loaders and linkers, assembly language, address computation, and other architecture-related functions. Virtual memory. Dynamic and static linking. Uses a different programming language.
CS 2282 Advanced Programming CS 1182 or
INFO 1182
Advanced object-oriented programming and software design and development in a modern object-oriented language not previously used. Event driven programming. Elementary threading. UML. Includes a significant software project.
CS 3385 Data Structures and Algorithms CS 2282, CS 2275, (CS/MATH 1187 or MATH 2287 or MATH 2240)
The design, construction, and analysis of data structures. Abstract data types, lists, stacks, queues, trees, and graphs. Sorting, searching, hashing. Theory. Includes significant coding projects. Uses Linux.
CS 4477 Operating Systems CS 2275, CS 2282.
Processes description and control, threads, concurrency, memory management scheduling, I/O and files, distributed systems, security, networking. Includes Team implementation of a significant portion of an operating system. Uses a different operating system.
CS 4481 Compilers and Programming Languages CS 3385, Math 1175, Phys 2211
Programming language concepts. Regular expressions, context-free grammars, FSAs,stack machines. Theory/algorithms for lexical, syntactic and semantic analysis, recursive descent and parsing, synmbol tables, object code generation. Design and implementation of a compiler.
CS 4488 Software Engineering and Senior Project CS 3385 & (CS3321 or CIS 4403) & (CS4451 or CIS4407)
Analysis, specification, design, implementation, and testing of a large software project. Formal approach and tools. software lifecycles; human computer interaction; project and team management. Uses a different programming language.
INFO 3307 Systems Analysis and Design INFO 1182 or
CS 1182 (Coreq okay) or POI
Develops systems analysis skills, using proven techniques, prototyping, and structured analysis and design phases of the systems development life cycle. The course emphasizes Secure Software Design, which includes secure design elements, software architecture, secure design review, and threat modeling. Requirements: gathering is emphasized, including secure software requirements gathering to capture all of the security requirements from various stakeholders and understand the sources and processes needed to ensure a more effective design.
INFO 3380 Networking and Virtualization INFO 2285 or
CS 2275
Study of the implementation and development of network information systems. Protocols and techniques will be compared, and virtualization and cloud computing will be emphasized.
INFO 4407 Database Design & Implementation INFO 3307 (Coreq okay)
Covers multi-user relational database management systems, stored procedures, SQL, transaction processing, etc. The course emphasizes Secure Software Design, which includes secure design elements, software architecture, secure design review, and threat modeling.
INFO 4411 Intermediate Information Assurance INFO 2285, CS 2275, INFO 3310, or POI
Focuses on homeland security, information assurance, integrity, control, and privacy. Covers CNSS-4011, NIST-800-16 standards, national policy, and international treaties. The course considers Software Deployment, Operations, Maintenance and Disposal, including security issues around steady state operations and management of software, as well as security measures that must be taken when a product reaches its end of life.
Plus six credits from the list of approved electives for the CS major.
  • Any 3000 or 4000 level Computer Science course
  • INFO 4407, 4487, 4491, 4412 through 4416, 4419, 4499
  • MGT 3329; EE 3345, 4413, 4416, 4417, 4427, 4475, 4494
  • MATH 3355, 3356, 4406, 4407, 4408, 4441, 4442, 4450, 4451, 4465, PHIL 4470
  • Other electives may be approved by the Program Director or Chair on a case by case basis.
Total Hours: 45

(Click on any course to see a course description.)



Required Non-CS Courses
Course# Name Prereq
MATH 1147* or
MATH 1144 or
MATH 2275
Precalculus or MATH 1108
Trigonometry MATH 1143
Calculus III MATH 1175
MATH 1147: A single one-semester course equivalent to College Algebra (MATH 1143) plus Trigonometry (MATH 1144). Credit cannot be granted in both MATH 1143 and MATH 1147, or in both MATH 1144 and MATH 1147.
MATH 1144: Circular functions and right triangle approaches to trigonometry. Graphs of trigonometric functions: amplitude, frequency, phase shift. Trigonometric identities, inverse functions, and equations. Introduction to vectors in the plane, polar coordinates, and polar representation of complex numbers.
MATH 2275: Third course in the sequence MATH 1170, MATH 1175, and MATH 2275. Multivariable calculus. Vector algebra and geometry. Functions of several variables. Differentiation. Optimization. Multiple Integrals. Parametric curves and surfaces. Line and surface integrals. Vector fields. Green's, Stokes', and divergence theorems.
MATH 1170 (4 hrs) Calculus I MATH 1144 or MATH 1147
First course in the sequence MATH 1170, MATH 1175, and MATH 2275. Real-valued functions of one real variable: limits, continuity, derivatives, integrals, applications. Credit cannot be granted in both MATH 1160 and MATH 1170. Satisfies Objective 3 of the General Education Requirements.
MATH 1175 (4 hrs) Calculus II MATH 1170
Second course in the sequence MATH 1170, MATH 1175, and MATH 2275. Techniques of integration, trigonometric integrals, improper integrals. Applications of definite integrals. Sequences and series. Parametric curves in the plane, polar coordinates.
MATH 2240 Linear Algebra MATH 1170
Introduction to linear algebra. Linear systems, matrices, determinants, vector spaces, linear transformations, linear independence, eigenvalues and eigenvectors, orthogonalization.
MATH 3350 Statistical Methods MATH 1160 or MATH 1170
A calculus-based introduction to statistical procedures, including simple regression, basic experimental design, and non-parametric methods.
MATH 3352 Introduction to Probability MATH 1175 or permission of instructor
Fundamentals of probability, discrete and continuous random variables, distributions such as binomial, uniform, Poisson, hypergeometric, normal, gamma; expectation; joint, marginal, conditional distributions; central limit theorem; applications to statistics. Emphasizes material needed to develop statistical inference methods.
CS/MATH 1187 or
MATH 2287
Applied Discrete Structures or CS 1181
Foundations of Mathematics MATH 1170
CS/MATH 1187: 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 CS 1187.
MATH 2287: Logic and proofs, sets, functions, relations, mathematical induction, and the cardinality of sets.
PHYS 2211 (4 hrs) Engineering Physics I MATH 1175 (Coreq okay)
Mechanics of particles and rigid bodies; kinetic theory and thermodynamics; electricity and magnetism; wave motion; optics. Partially satisfies Objective 5 of the General Education Requirements. 4 semester hours.
PHYS 2213 (1 hr) Engineering Physics I Laboratory INFO 2285 or
CS 2275
Principles and methods of physical measurement. COREQ: PHYS 2211. Partially satisfies Objective 5 of the General Education Requirements. 1 semester hour.
CHEM 1111 (4 hrs) General Chemistry MATH 1143 or MATH 1147 or equivalent. COREQ: CHEM 1111L.
Introductory course for students in scientific and technical fields; structure and reactivity of elements and compounds, stoichiometry, states of matter, solutions, and chemical periodicity. May be repeated upon completion of CHEM 1111L. Partially satisfies Objective 5 of the General Education Requirements. 4 semester hours.
Total Hours: 26
Notes
* Students placing directly into MATH 1170 should substitute MATH 2275, 3360, or any of the MATH courses allowed as CS electives as long as they are not also used as CS electives or requirements to result in a total of 30 hours of math and science. Physics 2212 can also be used to meet the 30 hour requirement.
† Math 4450 can be substituted for Math 3350 in the CS curriculum for students doing dual math / CS majors or interested in CS Graduate School.
‡ MGT 2216 and 2217 are allowed as alternatives to MATH 3350 and 3352, particularly for those students doing the CS major, the Minor in Business Administration, and the MBA.

(Click on any course to see a course description.)



Elective/Specialization Courses
Course# Name Prereq
CS 3321 Software Engineering CS 2282 and CS 2275
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. Cross listed as INFO 3307.
CS 3331 Web Programming CS 2282
Server- and client-side programming, web-based database programming.
CS 3342 Computer Graphics CS 2282 and MATH 2240
Covers raster graphics, primitives, scan conversion, geometric transformations, object hierarchies, curves and surfaces, solid modeling, visible surface determination, illumination, shading, manipulation and advanced modeling techniques.
CS 4420 Computer Security and Cryptography CS 3385
Public key and private key cryptography, key distribution, cryptographic protocols, requisite mathematics and selected topics in the development of security and cryptography.
CS 4442 GUI Development INFO 3307
Planning and construction of graphical user interfaces and discussion of essential software engineering concepts.
CS 4444 Image and Audio Processing CS/MATH 1187, MATH 3352, and MATH 3360
Image/audio acquisition, quantization, spatial and spectral filters, sharpening, smoothing, restoration, compression, segmentation, Fourier and Wavelet transforms.
CS 4451 Database Theory Design Programming CS 3385
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.
CS 4470 Parallel Processing CS 3385 and CS 2275 or CS 4475
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.
CS 4480 Theory of Computation CS 3385, CS/MATH 1187 or MATH 2287, MATH 1175
Finite representations of languages, deterministic and nondeterministic finite automata, context free languages, regular languages, parsing, Turing Machines, Church’s Thesis, uncomputability, computational complexity classes.

(Click on any course to see a course description.)

 
 
CONTACT DETAILS

Informatics and Computer Science

Idaho State University

921 S. 8th Ave., Stop 8020

Pocatello, Idaho 83209-8020


office: Business Administration 534

voice: 208.282.4783

fax: 208.282.4367

email: