2012-13 Idaho State University Undergraduate Catalog

Idaho State University Undergraduate Catalog 2012-2013

Computer Science

Program Director and Professor: Schou
Chair and Professor:  Beard
Professor: Parker
Associate Professor: Kantabutra
Assistant Professor: Chiu
Lecturer:  Munson

 Faculty Information 

Web Page   
Degree, Minor, and Courses   

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 in as part of the National Information Assurance Training and Education Center (NIATEC).

Students wishing to become computer science majors should contact the computer science office to have an advisor assigned to them and sketch out an initial program of study. While taking CS 2282, CS majors must complete a COMPUTER SCIENCE PROGRAM OF STUDY form, available on the Computer Science web site and meet with their advisor for its approval. Additional meetings with an advisor are recommended to ensure that the anticipated schedule is maintained. For courses transferred from another university to apply toward the computer science major, the corresponding ISU computer science course must be listed on the student’s ISU transcript or there must be a completed and approved petition form in the student’s file. Transferring computer science students entering ISU already having completed CS 2282, must call the Computer Science office, have an advisor assigned to them, and complete a program of study form. Before the beginning of their final year of study, students should meet with academic advising to insure that all general education requirements have been completed; successful completion of general education requirements is determined by academic advising. Students then should fill in a COMPUTER SCIENCE GRADUATION CHECKLIST form, also available on the Computer Science web site, and meet with their advisor for approval. The student should bring a copy of their approved program of study form and transcript. An approved COMPUTER SCIENCE GRADUATION form is needed to take CS 4488.  All courses applying toward the computer science major must be passed with a grade of “C-“ or higher.

In CS 2282 and subsequent computer science courses, computer science majors and minors are expected to have a laptop computer with sufficient capacity to run various tools within virtual machines. This machine will help the student work in a safe and secure environment and assist in their mastery of continually-evolving professional environments.

As part of the 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 Computing Accreditation Commission of ABET http://www.abet.org

Bachelor of Science in Computer Science

Key Courses

Mathematics:

MATH 1170	Calculus I					4 cr
MATH 1175 Calculus II 4 cr
MATH 2240 Linear Algebra 3 cr

Chemistry:

CHEM 1111,1111L, and CHEM 1112,1112L
General Chemistry I, II, and Labs 9 cr

    OR

Physics:

PHYS 2211, 2213, 2212, and 2214 
Engineering Physics I, II 10 cr

Computer Science:

CS 1181		Computer Science and Programming I		3 cr
CS 1182 Computer Science and Programming II 3 cr
CS/MATH 1187 Applied Discrete Structures 3 cr
CS 2282 Advanced Computer Programming 3 cr
CS 2263 Advanced Object-oriented Programming 3 cr

The program of study for the Bachelor of Science in Computer Science degree  totals 130 credits as follows:

General Education and Mathematics Requirements (40-46 credits minimum)
Students pursuing a Bachelor of Science in Computer Science must complete the University's General Education Requirements using the following courses:

Goal 1		ENGL 1102, Critical Reading and Writing		3 cr
Goal 2 COMM 1101, Principles of Speech 3 cr
Goal 3 MATH 1170, Calculus I 4 cr
Goals 4 and 5 are met by taking EITHER of the following
sequences plus two additional courses in the physical
or biological sciences, to total 15 or 16 cr:
CHEM 1111, 1111L and CHEM 1112, 1112L
General Chemistry I and II, and Labs 9 cr
OR
PHYS 2211,2214 Engineering Physics I, II,
and Labs 10 cr
Two additional courses* in the physical and
biological sciences 6 cr
Any two of Goals 6, 7, and 8 6 cr
Any three of Goals 9, 10 (A or B), 11, and 12 9 or 14 cr

*Please consult with a CS advisor for a list of approved courses.

Additional Mathematics Courses (10 credits):

MATH 1175	Calculus II					4 cr
MATH 2240 Linear Algebrar 3 cr
MATH 3352 Introduction to Probability 3 cr

Major Core Requirements (53 credits)
Computer Science students must complete the following group of core courses:

CS 1181		Computer Science and Programming I		3 cr
CS 1182 Computer Science and Programming II 3 cr
CS/MATH 1187 Applied Discrete Structures 3 cr
CS 2263 Advanced Object-oriented Programming 3 cr
CS 2282 Advanced Computer Programming 3 cr
CS 3321 Fundamentals of Software Engineering 3 cr
CS 3385 Data Structures and Algorithm Analysis I 3 cr
CS 3386 Data Structures and Algorithm Analysis II 3 cr
CS 4451 Database Theory and Implementation 3 cr
CS 4460 Comparative Programming Languages 3 cr
CS 4475 Computer Architecture and Organization 3 cr
CS 4477 Operating Systems 3 cr
CS 4491 Computer Science Ethical-Societal Issues 3 cr
CS 4496A Project Design I 3 cr
CS 4496B Project Design II 3 cr
EE 2274 Introduction to Digital Systems 3 cr
ENGR 3360 Engineering Economics 2 cr
ENGL 3307 Professional and Technical Writing 3 cr

Major Elective Requirements (12 credits):

Computer Science students must complete twelve credits of upper division major elective coursework, chosen from the following list:*

CIS 4411	Intermediate Information Assurance***		3 cr
CIS 4485 Network and Communication Systems III 3 cr
CiS 4487 Software Systems Study
of the Software Implementation Process*** 3 cr
CIS 4491 Seminar in Computer Information Systems**,*** 3 cr
CS 3331 Web Programming 3 cr
CS 3342 Computer Graphics 3 cr
CS 3343 Neural Networks 3 cr
CS 3344 Artificial Intelligence 3 cr
CS 4420 Cryptography and Security 3 cr
CS 4442 Graphical User Interfaces 3 cr
CS 4444 Image and Audio Processing 3 cr
CS 4445 Data Compression 3 cr
CS 4470 Parallel Processing 3 cr
CS 4480 Theory of Computation 3 cr
CS 4481 Compilers and Lexical Analysis 3 cr
CS 4487 Topics in Computer Science 3 cr
EE 3345 Signals and Systems 3 cr
EE 4413 Techniques of Computer-aided
Circuit Analysis and Design 3 cr
EE 4417 Probabilistic Signals and Systems 3 cr
EE 4427 Embedded Systems Engineering 3 cr
EE 4475 Digital Signal Processing 3 cr
EE 4494 Embedded Systems and Control Laboratory 1 cr
EE 4499 Special Topics** 3 cr
ENGR 3364 Engineering Numerical Techniques 3 cr
MATH 4441 Introduction to Numerical Analysis I 3 cr
MATH 4442 Introduction to Numerical Analysis II 3 cr
MATH 4465 Partial Differential Equations 3 cr

* Other choices may be approved by Computer Science advisors on an individual basis.
** With prior advisor approval.
*** No more than 6 credits of business/CIS courses from this list may be applied toward degree ­requirements.

Additional Electives (14-15 credits)

  1. Students must take enough additional elective courses to total at least 130 credits.
  2. A minimum of 64 non-computing credits must be taken in meeting graduation requirements.
  3. Passing grades are required in all courses, and at least a 2.00 GPA is required for graduation.

Minor in Computer Science

Students receiving degrees in all colleges may satisfy the requirements for a Minor in Computer Science (CS) by completing the following courses. Students pursuing this minor must consult with a CS advisor early in their program to complete a Program of Study Agreement.

Required Courses:

CS 1181		Computer Science and Programming I		3 cr
CS 1182 Computer Science and Programming II 3 cr
CS/MATH 1187 Applied Discrete Structures 3 cr
CS 2263 Advanced Object-oriented Programming 3 cr
CS 2282 Advanced Computer Programming 3 cr
MATH 1170 Calculus I 4 cr
MATH 1175 Calculus II 4 cr

Computing Electives:
Six upper division credits in Computer Science, Computer Information Systems, or Electrical Engineering, chosen with the approval of a Computer Science advisor. 


Computer Science Courses

CS 1181 Computer Science and Programming I 3 credits. Problem solving methods and algorithm development with an emphasis on programming style. Lecture and ­laboratory. Equivalent to NE 1181.  PRE-or-COREQ: MATH 1143 or MATH 1147. F, S

CS 1182 Computer Science and Programming II 3 credits. Continuation of CS 1181, including such topics as data structures, sorts, searches, recursion, and object-oriented programming concepts. PREREQ: CS 1181. PRE-or-COREQ: MATH 1170. F, S

CS 1187 Applied Discrete Structures 3 credits. 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.  Equvalent to  MATH 1187.  PREREQ: CS 1181. S 

CS 2263 Advanced Object-oriented Programming 3 credits. 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. S

CS 2282 Advanced Computer Programming 3 credits. Further supervised programming experience, covering advanced features of the language used in CS 1182. Includes the use of a Unix-like operating system. PREREQ: CS 1182. F

CS 3321 Fundamentals of Software Engineering 3 credits. Formal approaches and tools for conceiving, designing, building, testing, deploying, maintaining, and documenting large software systems; software lifecycle models; project and team management; verification and validation techniques; legal and ethical issues. Includes a major software development project. PREREQ: CS 2263 or CS 2282, and admission to major. F

CS 3331 Web Programming 3 credits. HTML, server- and client-side programming, web-based database programming. PREREQ: CS 2263. R2

CS 3342 Computer Graphics 3 credits. ­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. PREREQ: CS 2263 and MATH 2240. R2

CS 3343 Neural Networks 3 credits. Survey of neural network architectures and applications. Training algorithms, multi-layer perceptrons, backpropagation, learning and generalization, Hopfield and recurrent nets. PREREQ: CS 2263, CS/MATH 1187, MATH 2275, and MATH 3352. R2

CS 3344 Artificial Intelligence 3 credits. Fundamental principles and techniques of artificial intelligence systems; search strategies; knowledge acquisition and representation; commonsense reasoning; planning; machine learning; expert systems; intelligent agents and multi-agent systems. PRE-or-COREQ: CS 3386. R2

CS 3385 Data Structures and Algorithm Analysis I 3 credits. Analysis and design of non-numeric algorithms which act on data structures. PREREQ: CS 2263 or CS 2282, and admission to major, and either CS/MATH 1187 or MATH 2240. F

CS 3386 Data Structures and Algorithm Analysis II 3 credits. Continuation of CS 3385. PREREQ: CS 3385. S

CS 4420 Computer Security and Cryptography 3 credits. Public key and private key cryptography, key distribution, cryptographic protocols, requisite mathematics and selected topics in the development of security and cryptography. PREREQ: CS 3385. R2

CS 4442 GUI Development 3 credits. Planning and construction of Graphical User Interfaces and discussion of essential software engineering concepts. Includes the use of a modern toolkit language. PRE-or-COREQ: CS 3385. R2

CS 4444 Image and Audio Processing 3 credits. Image/audio acquisition, quantization, spatial and spectral filters, sharpening, smoothing, restoration, compression, segmentation, Fourier and Wavelet transforms. PREREQ: CS/MATH 1187, MATH 3352, and MATH 3360. R2

CS 4445 Data Compression 3 credits. A survey of modern techniques of data compression, both lossy and loss-less, and encryption. PRE-or-COREQ: CS 3386. R2

CS 4451 Database Theory and Implementation 3 ­credits. Data models, relational algebra, SQL, data storage, index structures, query ­compilation and execution, concurrency control. PREREQ: CS 2263 and CS 3385. PRE-or-COREQ: CS 3386. S

CS 4460 Comparative Programming Languages 3 credits. Design of historical and ­contemporary programming languages, concentrating on promoting understanding of structural organization, data structures and typing, name structures, and control structures. PREREQ: CS 3385. PRE-or-COREQ: CS 4475. F

CS 4470 Parallel Processing 3 credits. 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. PRE-or-COREQ: CS 3385. R2

CS 4475 Computer Architecture and Organization 3 credits. Design, implementation, and performance evaluation of modern computer systems; instruction sets; datapath and control optimizations; single-cycle, multiple-cycle, and pipelined processors; hazard detection and resolution; memory hierarchies; peripheral devices. PREREQ: EE 2274. F

CS 4477 Operating Systems 3 credits. Processes description and control, threads, concurrency, memory management scheduling, I/O and files, distributed systems, security, networking. PREREQ: CS 2263 and CS 4475. S

CS 4480 Theory of Computation 3 credits. Finite representations of languages, deterministic and nondeterministic finite automata, context free languages, regular languages, parsing, Turing Machines, Church’s Thesis, uncomputability, computational complexity classes. PRE-or-COREQ: CS 3385. R2

CS 4481 Compilers and Lexical Analysis 3 credits. Covers lexical analysis, syntax analysis, top-down, bottom-up, and LR parsing, syntax-directed translation, type checking, code generation and optimization, writing a compiler PRE-or-COREQ: CS 3386. R2

CS 4482 Independent Problems 1-3 credits. Students are assigned to, or request assignment to, independent problems on the basis of interest and preparation. May be repeated for a maximum of 6 credits. Equvalent to  CE/ENGR/EE 4481. PREREQ: Permission of instructor. D

CS 4487 Topics in Computer Science 3 credits. Selected topics in Computer Science will be chosen depending on the instructor’s interests. PREREQ: CS 3386. D

CS 4491 Computer Science Ethical-Societal Issues 3 credits. Investigate various ethical issues arising in the profession, ranging from research to commercial settings. The societal impacts of computing and its prevalence in all aspects of the modern world are investigated. Seminar format: students will read papers, make oral presentations, conduct class discussion, and submit written reports. F

CS 4496A Project Design I 3 credits. Semester one of a two semester sequence dealing with the conceptual design of multi-disciplinary projects requiring multi-disciplinary teams. Equvalent to  CE/EE/ENGR/ME 4496A. PREREQ: ­Approval of application for admission to course. F

CS 4496B Project Design II 3 credits. Continuation of design sequence dealing with the design, analysis, implementation, and consequences of multi-disciplinary projects. Equvalent to  CE/EE/ENGR/ME 4496B. PREREQ: CS 4496A. S 



IDAHO STATE UNIVERSITY
Academic Information 
Contact: webmaster@isu.edu
Revised: March 2012