University of Austin · STM 3912B · 3 credit hours · Spring 2026
Instructor: Andy Aymeloglu
This is a project-based course designed to layer a software engineering toolkit atop your programming fundamentals. It introduces source control, client-server architecture, cloud deployment, testing, and a new language and framework (JavaScript / React). It is ambitious, and you are encouraged to make full use of coding agents to help you up the learning curve, much like the tools you will have if you move on to program in industry.
On successful completion of this course, you should be able to:
- Layer a software engineering toolkit atop your programming fundamentals.
- Understand and use key software engineering concepts: source control, client-server architecture, cloud deployment, and testing.
- Show proficiency in a new language and framework, specifically JavaScript / React.
- Collaborate in a shared codebase to build an open-ended web application that integrates the technologies covered in the course.
No textbook. We use online reference material. A few links worth bookmarking:
- Git reference guide
- React docs
- Python docs
| Component | Weight |
|---|---|
| Assignments | 1/3 |
| Final Project | 1/3 |
| Exams | 1/3 |
One of UATX's greatest strengths is its small class sizes. Lectures should be dynamic. You are heavily encouraged to ask questions, and you should expect to be called upon.
Homework takes the form of programming projects that apply skills from lecture to build components of a client-server web application. LLMs and coding agents are fair game, and in fact encouraged, on all assignments. We will not go as deep on any single technology in lecture as you may be used to from earlier courses in the intro sequence, and you should lean on coding agents to develop your skills the rest of the way.
After the reading break, you will form teams of 2 to 3 people to build one open-ended web application that strings together the technologies from the course. While we cover React / JavaScript, Python, and cloud deployment, you are not required to restrict the final project to these technologies.
Expect challenging examinations focused on conceptual mastery. The final is weighted toward material from the last few weeks that logistically cannot be covered by the assignments.
Basic programming knowledge from Data Structures or an equivalent.
Electronics. You are welcome to use a laptop to take notes and try code during class, but we will often have closed-electronic sessions focused on reading and debugging code on the class display. Silence your phone and set it aside during class.
Academic misconduct. Instructors at UATX have the authority to assess possible plagiarism, unauthorized use of artificial intelligence, and other forms of cheating. Normally, cheating results in failing the assignment. Students may appeal to the Disciplinary Council, where they may exercise their right to a public hearing by writing to the Dean of the Center responsible for the course.
Accessibility. Please review the University Accessibility Statement in the student catalog. Students with special needs should contact the Polaris Center or email Accomodations@uaustin.org. The university makes reasonable accommodations for students with disabilities in compliance with Section 504 of the Rehabilitation Act and the Americans with Disabilities Act.
Two sessions per week over ten weeks.
| Week | Lecture | Topic |
|---|---|---|
| 1 | 1.1 | Software Engineering |
| 1.2 | Unix, the Command Line, and Git | |
| 2 | 2.1 | Files, Serialization, and Data Persistence |
| 2.2 | Databases | |
| 3 | 3.1 | REST APIs and HTTP |
| 3.2 | Building a Web Server | |
| 4 | 4.1 | Testing |
| 4.2 | Practical Testing | |
| 5 | 5.1 | JavaScript Intro |
| 5.2 | Talking to Your Server | |
| 6 | 6.1 | React |
| 6.2 | Midterm | |
| 7 | 7.1 | React State and Effects |
| 7.2 | Cloud Deployment | |
| 8 | 8.1 | Docker |
| 8.2 | Continuous Integration | |
| 9 | 9.1 | Concurrency |
| 9.2 | Security | |
| 10 | 10.1 | Building an Agent |
| 10.2 | The Future (Demo Day) |
The final project kicks off mid-course, after the React material, so teams can build on a working client-server foundation.