Course Syllabus
General Course Info
- Title: Foundations of Software Engineering
- Term: Spring 2026
- Department: Computer Science (COMP)
- Course Number: 423
- Section: 001 In-person MWF - 1:25pm to 2:15pm
- Instructor: Kris Jordan
- E-mail: kris+comp423.26s@cs.unc.edu
- LinkedIn: https://www.linkedin.com/in/krisjordan/
Course Description, Target Audience, and Prerequisites
This course introduces the fundamentals of software engineering. You will gain experience with technical communication, teamwork, design, project management, production environments, automation, and code review, using modern tools and best practices.
This course is for undergraduate Computer Science majors who want experience in software engineering.
Prerequisite courses: C or better in both COMP301 and COMP211.
Course Objectives
The goal of this course is to prepare you for technical leadership by focusing on how teams design, build, and deliver software for people.
Software engineering is a fast-moving field that covers everything from ethics and communication to code and tools. The course is organized around six threads:
- Career and Professional Life
- You will learn the software engineering code of ethics and how to make and justify decisions ethically.
- You will practice teaching yourself by evaluating tools, reading documentation, using AI assistants, and experimenting.
- You will learn about common professional roles and career paths in software development.
- You will reflect on your goals and practice habits to help you achieve them.
- You will build a portfolio-grade project with a team to show to future employers.
- Collaboration
- You will practice technical communication for different audiences, especially your teammates.
- You will practice using professional collaboration workflows.
- You will practice using tools designed to help teams build software.
- You will practice working on a shared codebase with a small team.
- Design Process
- You will practice solving engineering challenges through a design lens.
- You will practice analyzing requirements, brainstorming, and making trade-offs.
- You will practice writing requirements, design documents, and creating wireframes.
- You will practice working with user personas, stories, and epics.
- Production System Design and Operation
- You will learn the main subsystems of a modern, production-ready application that integrates with databases and AI.
- You will learn how system components communicate using APIs and protocols.
- You will practice deploying a production-grade cloud system automatically.
- You will practice reasoning about cross-functional system concerns like scalability and reliability.
- Software Engineering Skills
- You will practice building software that meets design requirements.
- You will practice making and documenting architectural decisions.
- You will practice acceptance verification using techniques such as automated testing, continuous integration, and static analysis.
- You will practice code reviews and pair programming.
- You will practice contributing to a large, existing codebase.
- Tool Bench
- You will learn to use fundamental tools such as source code management, dependency managers, test harnesses, and linters.
- You will learn to use AI tools like coding agents and cloud code reviewers.
- You will practice setting up a professional development environment.
- You will practice evaluating and choosing the right tools for a job.
These threads will be woven together throughout the semester. We will label activities by thread to help you see how they fit into the big picture.
Textbooks and Resources
The course website (https://comp423-26s.github.io/) and Canvas are your main resources. There is no required textbook; we will provide all readings and tutorials online.
We may source chapters from the following books. You do not need to buy them, but they are excellent resources for your career:
- The Mythical Man-month, Fred Brooks
- Code Complete 2nd Edition, Steve McConnell
- The Pragmatic Programmer, Dave Thomas and Andrew Hunt
- Clean Code and Clean Agile, Robert Martin
- A Philosophy of Software Design, John Ousterhout
Disclaimer
The instructor may change the syllabus and will announce any changes as early as possible. This semester represents a significant iteration over previous offerings to incorporate AI-enabled software engineering workflows and modern production systems. Expect more frequent updates than in typical courses. Check the course site regularly for changes.
Modality: In-person
Lecture and office hours are your best resources. Both are in-person only; remote participation is not possible because we focus on group work.
Unlike many CS courses, software engineering is as much about communication and teamwork as it is about programming. You will work in pairs and teams all semester. Being a reliable teammate is critical to your success.
Course Requirements and Policies
You should attend all lectures and check the course page for updates. Complete all assignments on time.
Please arrive at least five minutes early so class can start on time. Place your bag in the basket under your seat.
Course Load Expectation
This course is rigorous. Communicating with teammates, reading, designing, and debugging will take significant time. You should expect to spend 3 hours in lecture and about 9 hours per week working outside of class.
We do not recommend taking COMP423 if you are enrolled in 17 or more credit hours.
Grading Criteria
To do well, you must participate in class, be a professional and productive teammate, keep up with assignments, and write verifiably acceptable software.
Your final grade will depend heavily on peer evaluations of your work on the team project and paired tasks.
Final grades are weighted as follows:
- 10% - (LS) Lesson Attendance and Participation
- 25% - Homework
- 10% - (RD) Readings
- 15% - (TK) Tasks
- 15% - (QZ) Quizzes
- 35% - Project Sprints (SP) / Final Project (FN)
- 10% - SP00 - Sprint 0
- 10% - SP01 - Sprint 1
- 10% - SP02 - Sprint 2
- 5% - Final Presentation and Hand-in
- 15% - (FN) Final Exam
Lesson (Class Attendance) Policy
We follow UNC's official Attendance, Grading, and Examination policies.
You can miss up to four (4) classes without penalty or needing approval. After four absences, further missed classes will lower your participation grade unless they are university-approved.
Regrade Requests
You have 48 hours to request a regrade after a grade is posted. Review your work first to understand any mistakes. If we graded something incorrectly, submit a request on Gradescope for that specific question. Do not use regrade requests to ask why something is wrong; come to office hours instead.
Late policies
Class assignments are due by the end of the lesson on Gradescope.
Other assignments are due at 10:00pm on their due date.
Assignments with 10:00pm deadlines have a 2-hour grace period. After that, a 15% penalty applies. The late period lasts 48 hours.
Slip Days
We will drop the late penalties for your first four late assignments. This only removes the penalty; it does not count for assignments you don't turn in. We expect you to hand everything in!
Grading Scale Breakdown
- A: 94-100
- A-: 90-94
- B+: 87-89
- B: 83-86
- B-: 80-82
- C+: 77-79
- C: 73-76
- C-: 70-72
- D: 60-69
- F: 59 or below
Grades will be rounded up if the fraction is greater than 0.499.
Office Hour Expectations
Office hours are a great way to get help. We use the CSXL app to manage the queue; you will be enrolled automatically.
Office hours are in-person in Sitterson Hall SN136. Check the CSXL app for the current schedule.
To help our TAs support everyone, please follow these guidelines:
-
TAs cannot help you with code you are working on that you cannot explain yourself. This is especially important to understand for AI-generated code: it is your responsibility to be able to understand and explain code you are responsible for and you are responsible for all code that you write yourself or generate.
-
TAs can help you for up to 20 minutes per day. This ensures everyone gets help and encourages you to try solving problems on your own or with teammates first. Solving problems yourself is a vital skill for any engineer.
-
Please write thoughtful help tickets. Explain the problem in detail and what you have already tried. We will help you make progress, but we may ask you to try reasoning through new problems on your own before returning.
Final Project Presentations
Instead addition to an abbreviated final exam, teams will present and demo their projects during the scheduled final exam period.
Final Project Licensing Agreement
You will work in a team of four to build a feature for an open-source project used by UNC CS students. We hope to merge the best projects into the production codebase. Because of this, your work will be licensed under the MIT License, and you will receive proper credit for your contributions.
Honor Code and Collaboration Policy
Software engineering is about teamwork. We encourage you to collaborate with classmates and staff unless an assignment is explicitly marked as individual (like quizzes). The largest part of your grade is a group project. Quizzes are the only part of the course where you cannot collaborate.
Always cite your collaborators clearly on any work you turn in.
Do not use AI tools to write your original text drafts. You may use them to get feedback on grammar or clarity, but we want to see your own writing and thinking, especially for self-reflections.
If you use AI tools for code, you must cite the tools you use in your commits. In some tasks where we expect AI usage, we will require your prompt contexts to be committed to the repository as files of record and specify git workflows to show proof-of-work. You must be able to explain any code you turn in. You don't need to cite official documentation or standard library examples.
In earlier offerings of the course we had a "Google Rule": no more than 20% of the lines of code you add to an assignment should be written by AI. The world of software engineering is quickly changing, however. This semester there is no limit to AI code generation in projects. You are responsible for understanding and ensuring the correctness of the code you generate and submit, though. The more you generate, the more you need to understand and assume responsibility for.
Code Review Test
We may ask you to explain any line of code you turned in. Submitting code you do not understand is intellectually dishonest. If you cannot explain your work, your grade will be penalized, and you may be reported to the honor court.
Feedback
If you have suggestions or want to thank the TAs, please give us feedback. We are happy to make improvements when we can!
University Statements and Resources
Acceptable Use Policy
By attending the University of North Carolina at Chapel Hill, you agree to abide by the University of North Carolina at Chapel Hill policies related to the acceptable use of IT systems and services. The Acceptable Use Policy (AUP) sets the expectation that you will use the University’s technology resources responsibly, consistent with the University’s mission. In the context of a class, it’s quite likely you will participate in online activities that could include personal information about you or your peers, and the AUP addresses your obligations to protect the privacy of class participants. In addition, the AUP addresses matters of others’ intellectual property, including copyright. These are only a couple of typical examples, so you should consult the full Information Technology Acceptable Use Policy, which covers topics related to using digital resources, such as privacy, confidentiality and intellectual property.
Additionally, consult the Safe Computing at UNC website for information about data security policies, updates, and tips on keeping your identity, information, and devices safe.
Data Security and Privacy
UNC-Chapel Hill is committed to fulfilling its responsibilities of transparency as a state-sponsored institution of higher learning, protecting certain types of information, and using information Carolina collects only for appropriate purposes. Consult the UNC-Chapel Hill Privacy Statement for additional information.
University Compliance Office – Accommodations
University Compliance Office (UCO) Accommodations Team (Accommodations – UNC Compliance) receives requests for accommodations for disability, pregnancy and related conditions, and sincerely held religious beliefs and practices through the University’s Policy on Accommodations. UCO Accommodations team determines eligibility and reasonable accommodations consistent with state and federal laws.
Counseling and Psychological Services
UNC-Chapel Hill is strongly committed to addressing the mental health needs of a diverse student body. The Heels Care Network website is a place to access the many mental health resources at Carolina. CAPS is the primary mental health provider for students, offering timely access to consultation and connection to clinically appropriate services. Go to the CAPS website or visit their facilities on the third floor of the Campus Health building for an initial evaluation to learn more. Students can also call CAPS 24/7 at 919-966-3658 for immediate assistance.
Title IX Resources
Any student who is impacted by discrimination, harassment, interpersonal (relationship) violence, sexual violence, sexual exploitation, or stalking is encouraged to seek resources on campus or in the community. Reports can be made online to the UCO or by contacting the University’s Title IX Coordinator, Elizabeth Hall, or the Report and Response Managers in the University Compliance Office (UCO) (formerly the Equal Opportunity and Compliance Office). Please note that I am designated as a Responsible Employee, which means I must report to the UCO any information I receive about the forms of misconduct listed in this paragraph. If you’d like to speak with a confidential resource, those include Counseling and Psychological Services, the University’s Ombuds Office, and the Gender Violence Services Coordinators. Additional resources are available at safe.unc.edu.
Policy on Non-Discrimination
As set out in the University’s Policy Statement on Non-Discrimination, the University is committed to providing an environment where all members of our community can learn, work, and thrive. Consistent with these principles and applicable laws, it is therefore the University’s policy not to discriminate on the basis of age, color, disability, gender, gender expression, gender identity, genetic information, national origin, race, religion, sex, sexual orientation or veteran status as consistent with the University’s Policy on Prohibited Discrimination, Harassment and Related Misconduct. No person, on the basis of protected status, shall be excluded from participation in, be denied the benefits of, or be subjected to unlawful discrimination, harassment, or retaliation under any University program or activity, including with respect to employment terms and conditions. The University will consider only relevant factors such as individual abilities and qualifications in admissions, hiring, disciplinary action, and all other decisions and will apply consistent standards of conduct and performance.
If you are experiencing harassment or discrimination, you can seek assistance and file a report through the Report and Response Coordinators (email reportandresponse@unc.edu or see additional contact info at safe.unc.edu) or the University Compliance Office. Please note that I am designated as a Responsible Employee, which means that I must report to the UCO any information I receive about harassment or discrimination. If you’d like to speak with a confidential resource, those include Counseling and Psychological Services and the University’s Ombuds Office.
All students are expected to adhere to University policy and follow the guidelines of the UNC Student Code of Conduct. Additional information can be found at https://studentconduct.unc.edu/.
Writing Center
For free feedback on any course writing projects, check out UNC’s Writing Center. Writing Center coaches can assist with any writing project, including multimedia projects and application essays, at any stage of the writing process. You don’t even need a draft to come visit. To schedule a 45-minute appointment, review quick tips, or request written feedback online, visit UNC’s Writing Center online.
Syllabus Changes
The instructor reserves the right to make changes to the syllabus including project due dates and test dates. These changes will be announced as early as possible.