top of page

Idaho State University

Fall 2018 - Spring 2022

Empirical Software Engineering

CS 6620

Empirical software engineering focuses on improving software quality through the use of metrics. The course will provide guidance on designing, analyzing and reporting empirical studies, provide information on techniques and metrics needed to measure desired qualities, and the use of practical approaches to study software evolution. Restricted to graduate students who have the consent of the instructor.

Software Testing

CS 5522

An introduction to the theory and techniques used in software testing and formal design method. Includes topics related to code coverage, program analysis, test design, and advanced concepts such as mutation testing, metamorphic testing, and test automation. The second half of the course focuses on formal modelling techniques for the specification, verification and validation of software designs. Specific, evaluated graduate-level activities and/or performances are identified in the course syllabus.

Software Language Engineering

A pilot course focused on the techniques, tools, and formal analysis of software languages. A particular focus will be on the use and underlying constructs of functional languages as implemented in Haskell.

CS 4492

Computer Graphics

CS 4458

Graphics, transformation matrices, lighting models, object hierarchies, visible surface determination, ray tracing.

Software Testing and Formal Methods

CS 4422

An introduction to the theory and techniques used in software testing and formal design method. Includes topics related to code coverage, program analysis, test design, and advanced concepts such as mutation testing, metamorphic testing, and test automation. The second half of the course focuses on formal modelling techniques for the specification, verification and validation of software designs.

Software Engineering

CS 3321

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.

Data Structures and Programming

CS 3308

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.

Advanced Object-Oriented Programming

CS 2263

Advanced software development with an object-oriented focus. Design, implementation, and testing of several large programs using current technologies. Includes a discussion of the philosophy, application, and examples of object-oriented concepts and techniques; comprehensive survey of software engineering design patterns.

Data Structures and Algorithms

CS 2235

Implementation, usage, and design concerns of important data structures and their operations. Implementation and discussion of basic search and sorting algorithms. Discussion will include both O(n log n) and linear sorting algorithms. Incorporates aspects of time complexity and asymptotic analysis of algorithms. Students will be required to develop small to medium sized programs.

Programming and Computer Science I

CS 1181

This is your item description. Use this space to add a description of the services, products, team members or any other items you want to highlight on your site. Have a lot to say? Easily turn any item into a full page by clicking ‘Create a page from this item’ in the edit panel.

Intermediate Systems Analysis and Design

INFO 5307

Provides a general understanding of the systems development life cycle and develops the analytical skills required to thoroughly understand a problem and formulate the optimal solution. Projects will require the student to use process modeling techniques to assist in the analysis and design process. Requirements gathering is emphasized. The analysis and design of web-based systems is included.

Systems Analysis and Design

INFO 3307

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.

Courses Taught: List

Montana State University

Summer 2016 - Spring 2018

Concepts/Programming Languages

CSCI 305

An examination of several programming paradigms, and languages, as well as their application and underlying execution model. Paradigms examined include imperative, object-oriented, functional, logic and string based. Students will gain exposure to a variety of languages such as C, C++, Scheme, Prolog and Perl.

Basic Data Structures and Algorithms

CSCI 132

An examination of advanced Java and basic data structures and their application in problem solving. Data structures include stacks, queues and lists. An introduction to algorithms employing the data structures to solve various problems including searching and sorting, and recursion. Understanding and using Java class libraries. The laboratory uses Java. Introduces Big-O Notation.

Joy and Beauty of Data

CSCI 127

Provides a gentle introduction to the exciting world of big data and data science. Students expand their ability to solve problems with Python by learning to deploy lists, files, dictionaries and object-oriented programming. Data science libraries are introduced that enable data to be manipulated and displayed.

Introduction to Java I

CSCI 111

Introduction to programming: program design, analysis, and implementation in Java, including I/O, assignment, decision, iteration, scalar types, arrays, control structures, methods, classes, and common data types. No previous programming experience required.

Courses Taught: List
bottom of page