Software Engineering (SE)
SE 1400. Web Design Fundamentals (ALCS). 3 Hours.
Covers fundamental principles of front-end web design, including beginner's hands-on experience with HTML and CSS in planning, organizing, analysis, and designing websites. Introduces key foundation concepts such as Internet infrastructure, web page creation and publishing, wire framing, layout techniques, multimedia, content, color, typography, and accessibility. This course is designated as an Active Learning Community Service (ALCS) course. Students provide service in areas of public concern in a way that is mutually beneficial for both the student and community. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Demonstrate an understanding of the general workings of the Internet and infrastructure. 2. Use web authoring and design environment - tools, browsers, servers. 3. Apply current and past web markup & styling languages and their differences. 4. Compare careers within web design & development. 5. Apply design principles to the web. Course fee required. FA, SP.
SE 3010. Mobile Application 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. Course fee required. Prerequisites: CS 2420 (Grade C or higher) AND CS 3005 (Grade C or higher). SP.
SE 3020. Mobile Application 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. Course fee required. Prerequisites: CS 2420 (Grade C or higher); AND CS 3005 (Grade C or higher). FA.
SE 3100. Software 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 be able to: 1. Implement 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. Course fee required. Prerequisites: SE 2450 or CS 2450 or WEB 3450 (Grade C or higher). SP.
SE 3150. Software Quality. 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. Implement 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 possible resolutions. 4. Conduct personal reviews, peer reviews, static analysis, and other preventative measures on a component of a software system to improve software quality. Course fee required. Prerequisites: SE 2450 or CS 2450 or WEB 3450 (Grade C or higher). FA.
SE 3200. Web Application 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. Dual listed with CS 3200 (students may only take one course for credit). **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. 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. Course fee required. Prerequisites: CS 1410 (Grade C or higher) AND SE 1400 (Grade C or higher) OR CS 2810 (Grade C or higher). FA, SP.
SE 3250. Internet of Things Programming. 3 Hours.
Students will be introduced to electrical circuits and signals from a computer science perspective, including analog and digital signal processing, serial buses, sensors and actuators, microcontroller programming, front-end and back-end software development, and wireless networking and communication technologies commonly used within IoT applications. Covers electronics prototyping and software engineering processes in a practical, project-oriented course format. **COURSE LEARNING OUTCOMES (CLOs)*** At the successful conclusion of this course students will: 1. Understand the fundamentals of the Internet of Things ecosystem, including protocols, architectures, and security considerations. 2. Design IoT systems consisting of microcontrollers, sensors and actuators, and wireless networks that exchange data and information to solve real-world problems. 3. Implement and debug the communication protocols and electrical signals of commonly used serial busses (e.g. I2C, SPI, UART). 4. Analyze and interpret the time and frequency domain characteristics of real-world electrical signals. 5. Utilize prototyping platforms (e.g. Arduino, Raspberry Pi) to develop and test embedded system prototypes. 6. Develop user-facing software applications for interacting with IoT systems via mobile devices or web interfaces. Prerequisites: CS 1410 (Grade C or higher).
SE 3400. Human-Computer Interaction. 3 Hours.
An introduction to the fundamentals of human-computer interaction, user interface design, and usability analysis. Examines interaction design, implementation, and evaluation of many various types of user interfaces, supported by lectures, readings, discussions, and a hands-on approach to an interaction design team project. Topics include overviews of human information processing subsystems, user interfaces, a variety of design and evaluation methods used in interaction design. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this courses, students will be able to: 1. Identify the fundamental design and evaluation methodologies of human-computer interaction. 2. Demonstrate knowledge of human-computer interaction design concepts and related methodologies. 3. Apply theories and concepts associated with effective work design in real-world applications. Course fee required. Prerequisites: SE 1400 or WEB 1400 (Grade C or higher). FA.
SE 3450. User Experience 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 (CLOs) At the successful conclusion of this course, students will be able to: 1. Employ critical thinking and problem-solving skills required in user experience design. 2. Describe, design, construct, analyze, and evaluate the required components of a web or mobile application. 3. Demonstrate the knowledge of design components and user experience practices within application development. 4. Test and adapt designs from user feedback. Course fee required. Prerequisites: SE 1400 (Grade C or higher). SP.
SE 3500. 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 be able to: 1. Demonstrate the ability to identify a problem, then analyze and prepare a solution essential to successful problem solving. 2. Exhibit the ability to synthesize multiple sources of information to solve problems, and use one's experiences and other sources of information to 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. Course fee required. FA, SP.
SE 3550. Online Marketing and SEO (ALCS). 3 Hours.
For students interested in Internet Marketing and Search Engine Optimization (SEO). Introduces key online marketing concepts such as target demographics, pay-per-click advertising, social media outreach, AB testing, re-targeting, keyword optimization, link building, site analytics, and industry standard methods/tools to increase online traffic, conversions, and site goals. This course is designated as an Active Learning Community Service (ALCS) course. Students provide service in areas of public concern in a way that is mutually beneficial for both the student and community. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Practice, evaluate, and formulate Internet Marketing techniques 2. Use industry standards and practices. 3. Analyze and track data to measure and quantify web traffic, goals, and conversions. 4. Compare and assess search engine ranking algorithms. 5. Practice emerging onsite and offsite search engine optimization methods. Course fee required. FA, SP.
SE 4200. Web Application 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. Dual listed with CS 4200 (students may only take one course for credit). **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. Implement the architectural and design patterns used by web application frameworks, and justify how they are used to produce maintainable and scalable web applications. Course fee required. Prerequisites: SE 3200 (Grade C or higher). SP.
SE 4600. Senior Project. 3 Hours.
Required of students pursuing a Software Engineering degree. Students will complete a substantial software engineering project, with emphasis on the complete development life cycle. Students will be accountable for following professional development methods and using professional tools as well as for delivering a final artifact. **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, code, and user experiences as needed by the project or product or design using iterative processes and feedback to demonstrate continuous improvement overtime. 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 also 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. Course fee required. Prerequisites: Advanced standing. SP.
SE 4900R. Independent Research. 1-3 Hours.
For Software Engineering students with advanced standing who wish to pursue a specific focus of study related to their degree emphasis and/or research interest not otherwise available in the current Software Engineering curriculum. Students are closely supervised by appropriate faculty in the design and successful completion of the course. The course is dependent upon a formal contractual arrangement with the faculty member that is submitted at the beginning of the semester in which coursework is undertaken, and is contingent upon the department chair's approval. Students meet with the faculty mentor each week and provide progress reports for feedback. Students are required to meet the university requirement of 45 hours of work per credit. Variable credit 1.0 - 3.0. Repeatable up to 3 credits subject to graduation restrictions. Offered by arrangement. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Analyze and solve software problems within a development environment. 2. Evaluate new topics and emerging areas of the industry. 3. Communicate findings and research to instructors. Course fee required. Prerequisite: Instructor permission.
SE 4910R. Special Topics in Applied Technology. 3 Hours.
For students wishing instruction that is not available through other regularly scheduled courses in this discipline. Students fill the requirements of this course by completing coursework provided by external curriculum providers. Repeatable for credit for multiple courses without substantial overlap. *COURSE LEARNING OUTCOMES CLO's 1. Develop and build software systems using a specific framework or methodology. 2. Extrapolate the specialized insights and practices of a specific development system to a wider field of practice. 3. Apply general purpose problem solving skills to a specific problem domain. Prerequisites: Instructor permission.
SE 4920. Internship (ALPP). 3 Hours.
Designed to integrate Software Engineering students into working environments that increase aptitude, skills, and networking. The internship setting will nurture a mentor learning relationship with the student, and assist them in preparation for after graduation. This course is designated as an Active Learning Professional Practice (ALPP) course. This course allows students to explore and apply content learned in the course in a professional experience away from the classroom. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Analyze and solve software problems from an employment environment. 2. Apply information on new topics and emerging areas of the business. 3. Communicate findings and research to employers. Prerequisite: Instructor permission. FA, SP, SU.
SE 4990. Special Topics in Software Engineering. 0.5-3 Hours.
For students wishing instruction that is not available through other regularly scheduled courses in this discipline. Occasionally, either students need some type of non-traditional instruction, or an unanticipated opportunity for instruction presents itself. This course may include standard lectures, travel and field trips, guest speakers, laboratory exercises, or other nontraditional instruction methods. Repeatable for credit as topics vary, up to 6 credits. Offered by arrangement. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Develop and build software systems using a specific framework or methodology. 2. Extrapolate the specialized insights and practices of a specific development system to a wider field of practice. 3. Apply general purpose problem solving skills to a specific problem domain. Course fee required. Prerequisites: Instructor permission.