Software Development (SD)

SD 6100. Fundamentals of Programming. 3 Hours.

Covers structured programming techniques, the syntax of a high-level programming language, and fundamental principles of front-end web development through completion of programming projects of increasing difficulty. **COURSE LEARNING OUTCOMES (CLOs) At this course's successful conclusion, students will be able to: 1. Construct computer programs in a modern web development environment using standard tools. 2. Develop solutions using a range of programming constructs, including variables, conditionals, control structures, functions, user input/output, and data collections. 3. Demonstrate the use of correct syntax and semantics in a high-level programming language. 4. Develop problem-solving skills specific to web development by working on real-world coding challenges and debugging exercises. 5. Apply modern web markup, styling, and programming languages to design and create user-centered web interfaces. Prerequisites: Admission to the Master of Software Development program.

SD 6110. Foundations of UI/UX Design. 3 Hours.

Covers the fundamental principles of user experience design from a design and development standpoint. Students take an active learning approach in applying concepts in objective development, target demographics, user personas, user stories, user case flows, research methodologies, prototyping, implementation, usability testing, and modern approaches in interface and interaction design. **COURSE LEARNING OUTCOMES CLO's) At the successful conclusion of this course students will: 1. Employ critical thinking and problem-solving skills required in user experience design. 2. Describe and create the required user interface design components of a web or mobile application. 3. Demonstrate an understanding of user experience practices within application development. 4. Test and adapt designs from user feedback. 5. Use modern design tools, including web markup and styling languages to create prototypes for user testing. Prerequisites: Admission to the Masters of Software Development program.

SD 6200. Multitier App Development I. 3 Hours.

Covers the fundamentals of three-tier web applications, including client-side code for modern browsers, server code using representative languages, and integration with database systems; also covers the protocols that connect these components and the environments in which they run. **COURSE LEARNING OUTCOMES (CLOs)** At the successful conclusion of this course students will: 1. Develop modern web applications using both client-side and server-side languages and technologies. 2. Integrate database technologies into the ecosystem of a web application at a fundamental level. 3. Deploy the environments and infrastructure required by web application servers and related systems. 4. Implement the architectures, protocols, and standards necessary to interconnect the client-side and server-side components. Prerequisites: Acceptance in the Master's of Software Development Program at Utah Tech University.

SD 6210. Tech Entrepreneurship. 3 Hours.

Covers concepts and principles of electronic commerce from an interdisciplinary approach, including computer sciences, marketing, consumer behavior, finance, economics, and information systems. Specifics include electronic commerce process steps, Internet infrastructure, demographics, marketing and market research, advertising, promotion, strategy development, financing, competitive analysis, technical development, Web site review, launch, and on-going innovation. **COURSE LEARNING OUTCOMES CLOs** At the successful conclusion of this course students will: 1. Demonstrate the ability to identify a problem, then analyze and prepare a solution essential to successful problem solving. 2. Synthesize multiple sources of information to solve problems, and create new insights and generate better problem solving approaches. 3. Demonstrate the ability to create, think, design, and/or build prototype solutions for problems or product ideas. 4. Facilitate the constant change of technology by fostering intellectual curiosity and the ability to access information from diverse sources as well as relating knowledge to daily life and defining issues within larger contexts. 5. Demonstrate an awareness and an understanding of these issues as the apply to technology entrepreneurship by articulating and integrating relevant ethical, legal, social, and technical concerns into their projects and exhibiting an openness to ideas different from or in conflict with one's own, including assumptions, prejudices, and privileges. 6. Demonstrate the ability to function effectively in teams to accomplish stated goals. using advanced knowledge skills in problem solving positive work ethic, effective use of technology, and understanding team-centric workplace culture, improved social behavior and competent professional skills to obtain and maintain successful employment within an organization, business, or other entity. 7. Demonstrate convincing technical communications skills, both orally and in writing by exhibiting the ability to be a useful team member, capable of working in groups on strategic problems. 8. Apply and understand technology entrepreneurship process elements including (a) opportunity assessment, (b) market research, (c) competitive assessment, (d) strategy development, (e) finance development, (f) risk assessment, (g) technology development, (h) web review, (i) launch, and (j) ongoing innovation. Prerequisites: Acceptance in the Master's of Software Development Program at Utah Tech University.

SD 6220. Software Development Practices. 3 Hours.

Covers essential components of the software development life cycle, including requirements elicitation and prioritization; software development process, including methodologies, planning, estimation, and team organization; and software design, which explores the fundamental principles and architectural and design patterns essential to the production of quality software. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course students will: 1. Employ methodologies to facilitate the planning, estimation, risk analysis and team organization present in an effective software development life cycle. 2. Elicit, define, prioritize, and validate the functional and nonfunctional requirements of a complex software system. 3. Design software and related components while considering the design principles, architectural patterns, and design patterns necessary to produce quality software. Prerequisites: Acceptance in the Master's of Software Development Program at Utah Tech University.

SD 6300. Multitier App Development II. 3 Hours.

Covers advanced concepts and topics in client-side and server-side web application development. Students will be introduced to a variety of modern software frameworks, languages, architectural patterns, and techniques in order to create interactive, data-centric web applications. **COURSE LEARNING OUTCOMES (CLOs)**At the successful conclusion of this course, students will be able to: 1. Develop modern web applications using both client-side and server-side languages and technologies. 2. Assess the makeup of various client-side and server-side web application frameworks and their constituent components. 3. Create an interactive user experience using a client-side framework and interaction with a web service. 4. Employ the architectural and design patterns used by web application frameworks and justify how they are used to produce maintainable and scalable web applications. Prerequisites: Acceptance in the Master's of Software Development Program at Utah Tech University.

SD 6310. Software Quality and Testing. 3 Hours.

Presents practices and tools used to promote software quality as part of the software development life cycle. Considers several facets of software testing, including unit testing, test-driven development, integration testing, regression testing, and user interface testing. Explores testing frameworks and tools used to automate software testing. Covers the analysis of defects and failure reports, personal and peer reviews, and static analysis. **COURSE LEARNING OUTCOMES (CLOs)** At the successful conclusion of this course, students will be able to: 1. Employ software testing processes including unit testing, test-driven development, integration testing, regression testing, and user interface testing. 2. Demonstrate the use of various software testing tools used to automate one or more test suites implemented within a software system. 3. Analyze and prioritize failure reports and defects identified to affect a software system, research potential causes of a defect, and propose and evaluate resolutions. 4. Facilitate personal reviews, peer reviews, static analysis, and other preventative measures on a component of a software system to improve software quality. Prerequisites: Acceptance in the Master's of Software Development Program at Utah Tech University.

SD 6330. Mobile App Development for Android. 3 Hours.

For students interested in writing applications for modern mobile devices using Google's Android operating system. **COURSE LEARNING OUTCOMES (CLOs)** At the successful conclusion of this course, students will be able to: 1. Develop modern applications for phones and tablets using the Android SDK and related tools. 2. Design and implement a functional graphical user interface suitable for a mobile application. 3. Develop sophisticated mobile applications using the software architecture and design patterns native to the mobile platform. Prerequisites: Acceptance in the Master's of Software Development Program at Utah Tech University.

SD 6340. Mobile App Development for iOS. 3 Hours.

For students interested in writing applications for modern mobile devices using Apple's iOS operating system. **Course Learning Outcomes (CLOs)** At the successful conclusion of this course, students will be able to: 1. Develop modern applications for phones and tablets using the iOS SDK and related tools. 2. Design and implement a functional graphical user interface suitable for a mobile application. 3. Develop sophisticated mobile applications using the software architecture and design patterns native to the mobile platform. Prerequisites: Acceptance into Utah Tech's Master of Software Development program.

SD 6400. Advanced Topics in App Development. 3 Hours.

Stay ahead of the curve in the dynamic field of software engineering with our specialized course on exploring emerging trends and cutting-edge toolsets. This course is designed to equip software engineers, developers, and technology enthusiasts with the knowledge and skills needed to navigate and leverage the latest advancements in the ever-evolving landscape of software development. **Course Learning Outcomes (CLOs)** At the successful conclusion of this course students will: 1. Utilize current industry toolsets to create software programs 2. Utilize cloud, api, and devops tools to expediently develop and release software. Prerequisites: Acceptance into Utah Tech's Master of Software Development program.

SD 6450. Graduate Capstone. 3 Hours.

Students will harness their software development skills to plan and execute meaningful capstone projects, culminating in a powerful showcase of their proficiency and readiness for the dynamic software development landscape. **Course Learning Outcomes (CLOs)** At the successful conclusion of this course, students will be able to: 1. Identify and plan a meaningful project, break down the project into workable items, and then attach timelines to project elements to ensure student/project work accountability. 2. Produce prototypes, designs, and code using industry standard tools, incorporating iterative processes and feedback to demonstrate continuous improvement over time. 3. Identify and assemble necessary resources for the completion of project work. 4. Plan and implement all aspects of the instructor approved project. 5. Demonstrate the ability to function effectively in teams to accomplish stated goals. Demonstrate advanced knowledge skills in problem solving positive work ethic, effective use of technology, and understanding team-centric workplace culture. 6. Demonstrate convincing technical communications skills, both orally and in writing exhibiting the ability to be useful team members, capable of working in groups projects and initiating self-learning and independent work as is necessary for the approved project. 7. Demonstrate accountability and responsibility with development processes by submitting weekly project updates on hourly workload, meaningful project progress, iterative changes, new learning, and project challenges. Prerequisites: Acceptance into Utah Tech's Master of Software Development program.