Skip to content

Latest commit

 

History

History
122 lines (93 loc) · 5.13 KB

File metadata and controls

122 lines (93 loc) · 5.13 KB

Software Engineering

University of Austin · STM 3912B · 3 credit hours · Spring 2026

Instructor: Andy Aymeloglu

Description

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.

Outcomes and Objectives

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.

References

No textbook. We use online reference material. A few links worth bookmarking:

  • Git reference guide
  • React docs
  • Python docs

Grading

Component Weight
Assignments 1/3
Final Project 1/3
Exams 1/3

In-class participation

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.

Programming projects

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.

Exams

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.

Course requirements

Basic programming knowledge from Data Structures or an equivalent.

Policies

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.

Schedule

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.