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