Software Development Minor

Program Requirements

Core

This course provides conceptual and logical tools for students planning to major in a computing-based major. Programming in a high-level language such as C++, Python, or Java, and the development of skills in abstraction, problem-solving, and algorithmic thinking are emphasized.

Prerequisites: MATH 112 or MATH 113 or MATH 115 or MATH 121

This course is a continuation of CIS 121. Students develop a basic knowledge of programming skills and object-oriented concepts, and use fundamental data structures such as lists, stacks, queues, and trees.

Prerequisites: MATH 113 or MATH 115 or MATH 121; and CS 110 or CIS 121 or IT 210

This course builds on CS 122 (Data Structures) with coverage of advanced data structures and associated algorithms, including trees, graphs, hashing, searching, priority queues, and memory management. Formal proof techniques, the analysis of best, worst, and expected cases, and the development of efficient algorithms are emphasized. Use of effect-free programming, first-class functions, and higher-order operations such as map, reduce, and filter are explored.

Prerequisites: MATH 121 and CS 111 or CIS 122 or IT 214

This course explores both structured as well as object oriented systems analysis and design. Use of upper and lower CASE tools are employed in the analysis, design and implementation of a team oriented term project.

Prerequisites: CIS 122, CIS 340

Restricted Electives

Choose 4 Credit(s).

This course provides the student with a solid understanding of the principles, techniques and design patterns involved in advanced object-oriented programming. Successful students should have a distinct advantage in the marketplace.Variable

Prerequisites: CIS 223, CIS 380

Topics include software quality assurance, software quality metrics, software configuration management, software verification and validation, reviews, inspections, and software process improvement models, functional and structural testing models.

Prerequisites: CIS 223, CIS 380

An introduction to all important aspects of software engineering. The emphasis is on principles of software engineering including project planning, requirements gathering, size and cost estimation, analysis, design, coding, testing, implementation, and maintenance. Group project work.

Prerequisites: CIS 223, CIS 380