Class Introduction

Welcome to:

COE 332 - Software Engineering & Design, Spring 2025
Department of Aerospace Engineering and Engineering Mechanics
The University of Texas at Austin

Unique Number: 15125

Instructors:

Time: Tues/Thur 11:00am - 12:30pm

Location: ECJ 1.314 A (in person)

Teaching Assistant: Hai Nguyen

Important Links:

Catalog Description:

Covers methods and tools for planning, designing, implementing, validating and maintaining large software systems. May include project work to build a software system as a team, using appropriate software engineering tools and techniques.

Prerequisites:

Computational Engineering 322 with a grade of at least C-.

Knowledge, Skills, and Abilities Students Should Have Before Entering This Course:

This course assumes familiarity with the Python programming language and strong working knowledge of basic, high-level language programming concepts including data structures, conditionals, loops, and functions. We also assume a basic, working knowledge of the Linux command line. We will briefly review programming concepts in Linux and Python during the first week of class, the first homework assignment will be based on these topics, and we will make every effort to help students who are less familiar with these concepts. Ultimately, each student is expected to and responsible for mastering this material. This is not an introductory programming class and we will not have time to give a comprehensive treatment of all of these topics.

Knowledge, Skills, and Abilities Students Gain from this Course (Learning Outcomes):

The objective of this course is to introduce students to advanced computing concepts in software engineering, software systems design, cloud computing, distributed systems, and computational engineering. Through a series of assignments spanning the course of the semester, students will build a cloud-based, computational system to interact with a time series data set and provide a web-accessible interface to their system.

Relationship of Course to Program Outcomes:

This course contributes to the ABET Criterion 3 student outcomes that took effect with the Fall 2019 semester. For more information, see Criteria for Accrediting Engineering Programs, 2020-2021 at https://www.abet.org/accreditation/accreditation-criteria/criteria-for-accrediting-engineering-programs-2020-2021/

STUDENT OUTCOME

  1. an ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics

  1. an ability to apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors

  1. an ability to communicate effectively with a range of audiences

  1. an ability to recognize ethical and professional responsibilities in engineering situations and make informed judgments, which must consider the impact of engineering solutions in global, economic, environmental, and societal contexts

  1. an ability to function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks, and meet objectives

  1. an ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions

  1. an ability to acquire and apply new knowledge as needed, using appropriate learning strategies

ABET Program Criteria Achieved:

Program criteria are unique to each degree program and are to be compiled from the program criteria given for each degree program and listed in table format below. The faculty should check which of the program criteria are achieved in the course.

Criterion

Criterion

Criterion

  1. Aerodynamics

  1. Orbital Mechanics

  1. Preliminary/Conceptual Design

  1. Aerospace Materials

  1. Space Environment

  1. Other Design Content

  1. Structures

I. Attitude Determination and Control

  1. Professionalism

  1. Propulsion

  1. Telecommunications

  1. Computer Usage

  1. Flight Mechanics

  1. Space Structures

  1. Stability and Control

  1. Rocket Propulsion

Topics (subject to change):

  • Software engineering and design practices in Python (d=28) (outcomes=1,2,3,4,5,6,7; criteria=M,N,O,P)

  • Version control with Git (d=1)(outcomes=2,3,5; criteria=N,O,P)

  • Unit testing, integration testing, continuous integration (d=4) (outcomes=1,2,6; criteria=M,N,O,P)

  • Linux containers with Docker, container orchestration (d=4) (outcomes=1,2,7; criteria=M,N,O,P)

  • HTTP and RESTful web services (d=5) (outcomes=1,2,6, criteria=M,N,P)

  • Application programming interfaces (d=2) (outcomes=1,2,3; criteria=M,N,O,P)

  • Virtualization with Kubernetes (d=4) (outcomes=1,2,7; criteria=M,N,P)

  • Databases and Queues (d=4) (outcomes=1,2,6; criteria=M,N,P)

  • Asynchronous programming patterns in distributed systems (d=2) (outcomes=1,2,5,6,7; criteria=M,N,P)

  • Other advanced topics as time permits

Please note: In the course of learning and working through the above topics, students will be exposed to data sets from a variety of sources (e.g. https://data.nasa.gov/browse) representing other select Criterion (A-L) relevant to the ABET program accreditation. The exact data sets and types of data will depend on individual student interests.

Professionalism Topics:

Throughout the course, students will be taught to communicate professionally in the documentation of their software and in their software engineering & design projects. Effective communication in software projects is necessary to inform other engineers about the purpose or function of the project, and how to use it. Students will form teams to work together on the Final Projects (see description below) and will be required to address ethical and professional responsibilities in the course of working on their project.

Design Assignments (Final Project Description):

The Final Project will be a culmination of all materials covered in the class. Students will build a cloud-based, computational system to interact with a time series data set and provide a web-accessible interface to their system. Prior to working on the Final Project, students will form teams to work through a “design” phase where they must identify a primary data set to work on, describe API endpoints, diagram architecture components, and draft other major documentation components. In addition, students will be required to write in their own words what they think their ethical and professional responsibilities are as an engineer and how that relates to the Final Project. The project design will be pitched to the instructors and given feedback / subject to approval. The Final Project will be due at the end of the semester in the form of a written report (e.g. pdf), video demo, and a GitHub repository containing the software and all support files. The full Final Project description will be posted on the class webpage.

Computer:

The entire course will be computer based. The instructors will provide a remote server for students to work on. Students are expected to have access to a personal / laptop computer with a web browser and a terminal (or SSH client).

Text:

No textbook will be used for this course.

Class Format:

The class will be delivered in person in a computer lab setting. Most class meetings will be comprised of lectures/demonstrations and hands-on labs. Students are expected to attend every lecture and actively participate in the hands-on labs during the class. The hands-on portions will often solve parts of homework assignments. Lecture materials with worked examples will be posted to the class website right before the class meeting. Additionally, there will be a class Slack channel for discussing ideas about the course with your fellow students and instructors.

Class Schedule (approximate, subject to change):

  • Week 1: Onboarding, Linux and Python Review, Version Control

  • Week 2: Working with JSON, CSV, XML, YAML

  • Week 3: Code Organization, Documentation, Exception Handling, Unit Testing

  • Week 4: Concepts in Software Design, Intro to Containerization and Automation

  • Week 5: Advanced Containers, Docker Compose

  • Week 6: REST APIs, Intro to Flask

  • Week 7: Advanced Flask

  • Week 8: Databases, Persistence

  • Week 9: Asynchronous Programming, Concurrency, Midterm Project Due

  • Week of March 17 - Spring Break

  • Week 10: Messaging Systems, Queues

  • Week 11: Virtualization: Container Orchestration and Kubernetes

  • Week 12: Virtualization: Container Orchestration and Kubernetes, cont.

  • Week 13: Continuous Integration, Integration Testing

  • Week 14: Special Topics - Final Week of Class

  • Final Exam Day / Time: TBD, Final Project Due

Grading:

Grades for the course will be based on the following:

  • 50% Homework - Approximately 8-10 coding / software design assignments to be submitted via GitHub.

  • 20% Midterm - A midterm design project will include concepts from the first half of the semester and build on the first 4-5 homework assignments. A written component will also be required.

  • 30% Final Project - Students will form groups to work on a final class project consisting of a distributed, web-accessible, cloud system to interact with a time series data set. The project will draw from and build upon work done throughout the semester in homework assignments. The project will need to be pitched to the instructors for approval, and a written component will also be required.

(See syllabus for letter grade cutoffs)

Homework Policy:

We encourage collaboration on homework assignments. Engaging in discussions and comparing notes with other students about the homework assignments can be a valuable learning experience. However, each student is expected to complete and turn in their own homework assignment. We do not allow students to copy directly from others.

All homework assignments will be turned in as Git repositories on GitHub. Homework repositories should be set to private, and shared with the course instructor. The course instructor will pull homework from the repositories at the posted due date / time. Instructions on setting up the repositories and sharing them with the course instructor will be covered in class.

Attendance:

Regular attendance is expected but absences will not count against the student’s grades. We expect students to give us a week notice in advance of their absence if known ahead of time.

Office Hours:

Office hours will be for 1 hour immediately following the class and/or by appointment. We plan to use Slack for general communications and to help with the materials. https://tacc-learn.slack.com/

Important Dates:

Please refer to UT’s academic calendar for important dates: https://registrar.utexas.edu/calendars/24-25

Disability and Access (D&A):

The university is committed to creating an accessible and inclusive learning environment consistent with university policy and federal and state law. Please let me know if you experience any barriers to learning so I can work with you to ensure you have equal opportunity to participate fully in this course. If you are a student with a disability, or think you may have a disability, and need accommodations please contact Disability and Access (D&A). Please refer to D&A’s website for contact and more information: http://diversity.utexas.edu/disability/. If you are already registered with D&A, please deliver your Accommodation Letter to me as early as possible in the semester so we can discuss your approved accommodations and needs in this course.

Special Notes:

The University of Texas at Austin provides upon request appropriate academic adjustments for qualified students with disabilities. For more information, contact the Office of the Dean of Students at 471-6259, 471-4641 TDD or the Cockrell School of Engineering Director of Students with Disabilities at 471-4321.

Evaluation:

The Measurement and Evaluation Center forms for the Cockrell School of Engineering will be used during the last week of class to evaluate the course and the instructor.

Honor Code:

The University of Texas at Austin strives to create a dynamic and engaging community of teaching and learning where students feel intellectually challenged; build knowledge and skills; and develop critical thinking, creativity, and intellectual curiosity. As a part of this community, it is important to engage in assignments, exams, and other work for your classes with openness, integrity, and a willingness to make mistakes and learn from them. The UT Austin honor code champions these principles:

  • I pledge, as a member of the University of Texas community, to do my work honestly, respectfully, and through the intentional pursuit of learning and scholarship.

The honor code affirmation includes three additional principles that elaborate on the core theme:

  • I pledge to be honest about what I create and to acknowledge what I use that belongs to others.

  • I pledge to value the process of learning in addition to the outcome, while celebrating and learning from mistakes.

  • This code encompasses all of the academic and scholarly endeavors of the university community.

The honor code is more than a set of rules, it reflects the values that are foundational to your academic community. By affirming and embracing the honor code, you are both upholding the integrity of your work and contributing to a campus culture of trust and respect.

Academic Integrity Expectations:

Students who violate University rules on academic misconduct are subject to the student conduct process. A student found responsible for academic misconduct may be assigned both a status sanction and a grade impact for the course. The grade impact could range from a zero on the assignment in question up to a failing grade in the course. A status sanction can range from a written warning, probation, deferred suspension and/or dismissal from the University. To learn more about academic integrity standards, tips for avoiding a potential academic misconduct violation, and the overall conduct process, please visit the Student Conduct and Academic Integrity website at: http://deanofstudents.utexas.edu/conduct.

Artificial Intelligence:

The creation of artificial intelligence tools for widespread use is an exciting innovation. These tools have both appropriate and inappropriate uses in classwork. The use of artificial intelligence tools (such as ChatGPT) in this class shall be permitted on a limited basis. You will be informed as to the assignments for which AI may be utilized. You are also welcome to seek my prior-approval to use AI writing tools on any assignment. In either instance, AI writing tools should be used with caution and proper citation, as the use of AI should be properly attributed. Using AI writing tools without my permission or authorization, or failing to properly cite AI even where permitted, shall constitute a violation of UT Austin’s Institutional Rules on academic integrity. If you are considering the use of AI writing tools but are unsure if you are allowed or the extent to which they may be utilized appropriately, please ask.

Religious Holy Days:

By UT Austin policy, you must notify me of your pending absence for a religious holy day as far in advance as possible of the date of observance. If you must miss a class, an examination, a work assignment, or a project in order to observe a religious holy day, you will be given an opportunity to complete the missed work within a reasonable time after the absence.

Names and Pronouns:

Class rosters are provided to the instructor with the student’s legal name, unless they have added a chosen name with the registrar’s office. If you have not yet done so, I will gladly honor your request to address you with the name and pronouns that you prefer for me to use for you. It is helpful to advise me of any changes or needs regarding your name and pronouns early in the semester so that I may make appropriate updates to my records and be informed about how to support you in this class.

  • For instructions on how to add your pronouns to Canvas, visit this site.

  • If you would like to update your chosen name with the registrar’s office, you can do so here, and reference this guide.

  • For additional guidelines prepared by the Gender and Sexuality Center for changing your name on various campus systems, see the Resources page under UT Resources here.

Title IX Disclosure

Beginning January 1, 2020, Texas Education Code, Section 51.252 (formerly known as Senate Bill 212) requires all employees of Texas universities, including faculty, to report to the Title IX Office any information regarding incidents of sexual harassment, sexual assault, dating violence, or stalking that is disclosed to them. Texas law requires that all employees who witness or receive information about incidents of this type (including, but not limited to, written forms, applications, one-on-one conversations, class assignments, class discussions, or third-party reports) must report it to the Title IX Coordinator. Before talking with me, or with any faculty or staff member about a Title IX-related incident, please remember that I will be required to report this information.

Although graduate teaching and research assistants are not subject to Texas Education Code, Section 51.252, they are mandatory reporters under federal Title IX regulations and are required to report a wide range of behaviors we refer to as sexual misconduct, including the types of misconduct covered under Texas Education Code, Section 51.252. Title IX of the Education Amendments of 1972 is a federal civil rights law that prohibits discrimination on the basis of sex - including pregnancy and parental status - in educational programs and activities. The Title IX Office has developed supportive ways and compiled campus resources to support all impacted by a Title IX matter.

If you would like to speak with a case manager, who can provide support, resources, or academic accommodations, in the Title IX Office, please email: supportandresources@austin.utexas.edu. Case managers can also provide support, resources, and accommodations for pregnant, nursing, and parenting students.

For more information about reporting options and resources, please visit: https://titleix.utexas.edu, contact the Title IX Office via email at: titleix@austin.utexas.edu, or call 512-471-0419.

Texas Senate Bill 17

Texas Senate Bill 17, the recent law that outlaws diversity, equity, and inclusion programs at public colleges and universities in Texas, does not in any way affect content, instruction or discussion in a course at public colleges and universities in Texas. Expectations regarding academic freedom for teaching and class discussion have not been altered post-SB 17, and students should not feel the need to censor their speech pertaining to topics pertaining to race and racism, structural inequality, LGBTQ+ issues, or diversity, equity, and inclusion.

Campus Safety

The following are recommendations regarding emergency evacuation from the Office of Emergency Management, 512-232-2114:

  • Students should sign up for Campus Emergency Text Alerts at the page linked above.

  • Occupants of buildings on The University of Texas at Austin campus must evacuate buildings when a fire alarm is activated. Alarm activation or announcement requires exiting and assembling outside.

  • Familiarize yourself with all exit doors of each classroom and building you may occupy. Remember that the nearest exit door may not be the one you used when entering the building.

  • Students requiring assistance in evacuation shall inform their instructor in writing during the first week of class.

  • In the event of an evacuation, follow the instruction of faculty or class instructors. Do not re-enter a building unless given instructions by the following: Austin Fire Department, The University of Texas at Austin Police Department, or Fire Prevention Services office.

  • For more information, please visit the Office of Emergency Management.

University Resources

For a list of university resources that may be helpful to you as you engage with and navigate your courses and the university, see the University Resources Students Canvas page.

Additional Help

Our main goal for this class is your success. Please contact us if you need help:

Important links: