Course Syllabus

Table of Contents

  1. Basic Info
    1. Lecture Sections
    2. Staff Information
  2. Course Description
    1. Course Requirements
  3. Resources and Logistics
    1. Online Coursepack
    2. Where do I go for resources/help?
    3. Canvas
    4. Course Website
    5. Drive Folder
    6. Online Coursepack
    7. Gradescope
    8. Piazza
    9. Email
  4. Assessment and Grading
    1. Homework Assignments
      1. Assignment Teams
        1. Team Declarations
        2. Team Concerns
      2. Advice on Homework
      3. Late Policy
      4. Homework collaboration policy
      5. Homework external resources policy
        1. AI Assistance rules
        2. How to Cite Code
      6. Homework academic honesty violations
    2. Quizzes
    3. Exams
      1. Midterms
      2. Final Exam
      3. Exam Rules
      4. Exam Curves
    4. Regrade Requests
  5. Class Management
    1. Attendance
    2. Lecture Recordings
    3. This Syllabus
    4. Professionalism
    5. Miscellaneous Policies
      1. Inclement Weather Policy
      2. SDAC and Other Special Circumstances
      3. Religious Accommodations

Basic Info

CS 3140 Spring 2024 Semester

Course Website -

Course Logistics:

Online Textbook:

Drive Folder:

Lecture Sections

Tuesdays and Thursdays @ 9:30 AM-10:45 AM in McLeod 1020

Staff Information

Instructor: Prof. Rich Nguyen
Office Hours:

  • Mondays 11 am to 12 pm on Zoom
  • Tuesdays 1 pm to 2 pm in Rice 202
  • Wednesdays 11 am to 12 pm on Zoom
  • Thursdays 1 pm to 2 pm in Rice 202


Course Description

A first course in software engineering and software construction, this course focuses on bringing the programming concepts learned in a first course in data structures and algorithms together to begin to teach students how to build more complex systems. The course covers introductory topics in testing, software design principles, design patterns, functional programming, and data storage and manipulation. Completed CS 2100 with a C- or better.

Course Objectives

Upon completion of this course, students will:

  • Building larger object-oriented programs
  • Understanding software build environment (IDEs, Build tools, etc.)
  • Working collaboratively and asynchronously with others
  • Iterative development
  • Designing functional and object-oriented systems
  • Front-end and back-end development
  • Software Architectural and object-oriented design patterns and when to use them

Course Topics

The topics to be covered in the course include:

  • Continued development in the Java programming language
  • Programmer tools like gradle and git
  • Writing clean, understandable, testable code
  • Automated testing, including unit and integration testing
  • Software design principles
  • Software Architectures, including 3-Layer architecture
  • Software Design Patterns
  • GUI and Event-driven programming with JavaFX
  • Database management with SQLite

Course Requirements

You should meet the following requirements to take this class:

  1. __Prerequisite: CS 2100 - C- or higher
  2. __Prerequisite knowledge: Proficiency with the Java programming language, including:
    1. Basic java syntax around variables, functions, conditionals, and loops
    2. Understanding of object-oriented programming, including creating your own classes, polymorphism (inheritance and interfaces), the Object class
    3. Common data structures, especially List (ArrayList and LinkedList), Map (HashMap), Set (HashSet, TreeSet)
  3. Willing to attend and participate with in-person lectures.
  4. Start homework assignments early, and emphasize working incrementally over several days rather than cramming.
  5. Participate to the best of your ability in discussions in class, on Discord, or on Piazza
  6. Be a meaningful contributor to your assignment team.

Resources and Logistics

Online Coursepack

Online Coursepack @

This will act as the textbook for this course. This is a free resource that is authored and maintained by Prof. McBurney. If you find typos/minor errors, you can submit fixes as pull-requests to

Where do I go for resources/help?

  • Announcements -> Canvas
  • Slides -> Drive Folder
  • In-class code -> Drive Folder
  • Homework instructions -> Drive Folder
  • Lecture recordings -> Canvas
  • Quizzes -> Canvas
  • Finding a team -> In-class or Piazza (using the LFG pinned post)
  • Concept questions -> Piazza or Office hours
  • Coding/debugging help -> Office hours only
  • Regrades -> Gradescope only
  • Personal issues -> Email your professor


Canvas has links to all other course material.

  • Links to all other class resources
  • Lecture recordings
  • Quizzes (only Quizzes - Exams are in-person pencil and paper)
  • Gradebook (including curved exam scores)

Course Website

This is the website that you are currently on. Here you can find:

The schedule and assignments information page will include links to the drive folder for Lecture Notes, Slides, Assignment Write-ups, and Submission documents.

Drive Folder

The student Drive Folder contains:

  • All Lecture Notes
    • Announcements
    • Slides
    • Example Code
  • Up-to-date Course Schedule
  • Assignment Information
    • Directions
    • Submission Documents
    • Sample input files

Note that all content in the Drive Folder can be accessed via the Schedule page on the Course Website.

Online Coursepack

Online Coursepack @

There is no official textbook for the course that you need to purchase. Prof. McBurney is writing an “online textbook” at the URL above, which at the start of the semester is about ~70% completed

If you would like to participate, you can clone the repository of the online textbook and submit pull requests:

Coursepack Github Repository

All assistance will be credited. I am accepting pull requests for:

  • Editing/typo/grammar fixes
  • Interesting examples/tutorials
  • Additional Source code examples
  • Anything you would like to add to help

All credit for contribution will be included on this page

Assigned Readings for each Lecture are listed and linked in the lecture notes for that lecture on the Drive Folder. Readings are strongly encouraged to be completed before class.

Content in the readings that are not covered directly in lecture are considered “fair game” for exams.


Every homework assignment will have a document to submit. You will not submit any code on Gradescope (your code will be on Github). You will only submit PDF documents.

Exams will be graded on Gradescope.

All regrade requests are handled on Gradescope. Please be aware that if a regrade request results in a grade change, it can take up to one week for that change to be reflected on Canvas’s Gradebook, as syncing the Gradebook to Gradescope is a very time-consuming process, and we will likely only do it once at the end of the regrade request period.

Curved exams scores will not appear on Gradescope (Gradescope doesn’t have a feature for this). Curved Exam Scores will be posted on Canvas Usually within 24 hours of Raw Exam Scores being posted on Gradescope.


Piazza @

We will be using Piazza for the following:

  • Looking for teammates
  • Long-form questions about the class, code, or project (please post all code privately!)
  • Private messages for faculty or the entire staff
  • A searchable repository of common questions in the course about the project, assignments, etc.

We will not be using Piazza for:

  • Any code debugging for any reason. All questions for help with your specific code must be in office hours only.
  • Regrades (use Gradescope first, then professor office hours only if not resolved)


We will be using email for the following:

  • Personal issues that can and should only be handled by a professor

Your Email subject line should start with “[SDE]” OR “[CS 3140]”

We will not be using email for:

  • Regrades (use Gradescope)
  • Debugging/Coding help (use Office Hours)
  • Installation Help (use Piazza or Office Hours)
  • Homework Questions (use Piazza)

PLEASE be patient with us in responding. We receive A LOT of email and it’s easy to get behind. If there is a time-critical nature to your note, please let us know that as well.

Emails will generally be responded to within the next two business days (not including weekends or holidays). If you do not hear back within three business days, please email us again. It’s possible your first email was missed, we forgot to hit send, etc. We are human, we will make mistakes in a class this large.

Assessment and Grading

Grade Minimum Percentage
A 93.0%
A- 90.0%
B+ 87.0%
B 83.0%
B- 80.0%
C+ 77.7%
C 73.0%
C- 70.0%
D+ 67.0%
D 63.0%
D- 60.0%
F 0.0%

There is no grading rounding.

Grading in this class will be based one:

  • Homework Assignments (7) - 65%
    • 10% each for Homework 1 through 5
    • 15% for Homework 6
  • Quizzes (10) - 10%
    • Must pass at least 8 quizzes for full credit
  • Reflection (1) - 5% * Evaluation of professionalism practice in the course
  • Midterm (1) - 10%
  • Final Exam (1) - 10%

There might be some extra credit opportunities.

Homework Assignments

There will be 6 homework assignments. These assignments will be mostly Java programming assignments. Each assignment is independent and doesn’t require using any code you wrote from previous assignments. That said, homework assignments may reference previous assignments.

Assignment purpose:

  • HW1 - Thinking about design and responding to change
    • Note that this assignment will have 2 distinct parts
  • HW2 - Testing and clean code
  • HW3 - Refactoring and Java Streams
  • HW4 - UML Class Diagrams, Three Tier Architecture, Testing with Mockito
  • HW5 - Databases
  • HW6 - Final project with Java GUI

On HW2 through HW5, you will be given starter code to work with. This starter code will be automatically added to your teams GitHub Repository when you begin the assignment. HW1 and HW6 will have no starter code.

All assignments are intended to take several days to complete. Starting on an assignment late will not earn any leniency in deadlines, grading, etc. Office Hours will become busier closer to deadlines, so students should start early.

Assignment Teams

All assignments are designed to be done collaboratively. Assignments have a cap of 3 people. Rules on assignment teams:

  1. You can only work with a specific person on 4 assignments or less. You may not work with someone on 5 or more assignments.
  2. All team members must join that team’s Github repository. All assignment work is committed, shared, and submitted via Github.
  3. Everyone on a given team gets the same grade for their assignment. (See Team concerns below)
  4. Once you have added someone to your team, you cannot remove them for any reason for that assignment.
  5. If someone on your team hasn’t contributed, you are encouraged to let the professor know, as well as not work with that person in the future.
  6. You are welcome to work alone or with a smaller group than suggested. However, the assignment requirements will be the same, regardless of group size. Individual programmers will be held to the same expectations as groups.
  7. The instruction staff will not put you on a team, nor will they find a team for you. You are responsible for forming your own teams.

Team Declarations

All teams must be declared at least one week before the due date. To declare your team, you will complete an assignment on Gradescope called “HWX - Team Declaration” where X is the number of the assignment. The document simply requires the names and computing IDs of everyone on the team (as well as their Github name). Example:

Aaron A Aaronson: abc2def - Aaron2xSon
Jane Smith: df3ghi - JaneSmith12345
Sarah Thomas: stu9xyz - ThisIsAGithubAccount

Late team submissions will not be accepted for ANY REASON WHATSOVER **. If you miss the deadline, you must work as an individual! **No Exceptions for ANY REASON!

Team Concerns

All team members are expected to contribute working code to every assignment! If you do not show any meaningful source code commits on GitHub, you may receive the following penalties at the discretion of the professor:

  • Zero on the homework assignment (regardless the score of your teammates)
  • You may be required to complete up to all remaining assignments individually, meaning you will not be allowed to form a group.
  • In severe cases, you may receive an additional professionalism penalty in the course.

The goal of this class is to leave this class with the programming skills and tools under your belt to succeed in project work. If you do not contribute work

Advice on Homework

  1. It’s better to have working code that implements some features than to have non-working code that attempts to implement all features
  2. Submissions that cannot be compiled or executed without crashing will not receive partial credit
  3. Start early - in a worst case you’ll finish early and have more free time.
  4. Break the assignment into several individual features.
    1. Have different people implement each those features in separate classes/files.
    2. Do not have one giant main-class or main-method
      1. This isn’t sustainable for collaborative work
      2. This makes it nearly impossible to test your code effectively
  5. Expect to spend at least half of your time testing and debugging
    1. You will whether you plan to or not
  6. Commit early and often
    1. Think of committing like “saving” a file.
    2. You should commit after each “unit of work” (wrote a function, wrote a test, fixed a bug)
    3. You shouldn’t need to push after every commit. Push when you’ve completed a feature!
  7. Always work in a branch, not in main.
    1. When you want to add your code to main, merge your branch to main.
  8. Never push code directly to main.
  9. When fixing a bug, write a test first
    1. The test should fail
    2. The bug is fixed when the test passes
  10. Never push code you haven’t tested/run
    1. Especially right before the deadline!
    2. This has caused many teams to lose substantial points!

Late Policy

Most assignments may be submitted up to one week late at a penalty of 5% per 24-hour period. (note that this penalty is subtractive, meaning if you score 85%, but it is one day late, you will get 80%). All members of an assignment team will get the same late penalty, regardless of contribution (as all members of an assignment team get the same grade on the assignment).

After 7 days, submissions will no longer be accepted.

Homework 6 will have a separate late policy - no late submissions after May 5th, at 11:59 p.m. for any reason.

  1. This is in order to ensure:
    1. TAs have time to grade the final assignment
    2. Students have time to study for the final exam
  2. In order to ensure students have time to study for final exams

We will only ever grade your most recent submission (all submissions on Gradescope will include the hash of your commit at the time you submit). We will not grade multiple submissions and give you the best score.

Generally, no extension requests will be granted on homework assignments. This is because each assignment is laddered with specific course content. Additionally, new assignments are released when the previous assignment is due, and so you should switch to focus on the new assignment.

If there is a serious issue that requires a prolonged absence, you should contact your professor. However, because all assignments are team-oriented, and work can be shared remotely over Git, extensions are unlikely to be granted for illness.

Homework collaboration policy

You should at no point see any submitted work (code, question answers, etc.) from any other team for any reason whatsoever. This simple rule is the basis of our collaboration policy. In this course, you are encouraged to work with 1-2 other people on homework assignments. Obviously, you will be sharing code with your teammates over Git. However, you should at no point share any of your direct work with anyone on any other team for any reason. You may not share or publicly post any homework, quiz, or exam content in this course.

Only the following people may look at your homework code for any reason:

  1. The professors
  2. The TAs
  3. Your team members

Be aware: this means you may not publicly post or share any software generated in this class, including as part of a portfolio, without explicit permission from your professor. Such permission will usually only be given on the final assignment of the semester.

In the case where code is found to have been shared between teams, all teams involved will be treated as having violated the academic integrity policy. People who shared their code will receive the same penalty as people who received the code.

Acceptable collaboration between teams is allowed. However, as a general rule, all collaboration should be “pencils down”. That is, if you are being so specific in your discussion that you feel you need to write something down, you are probably being too specific. You can, however, discuss any of the following:

  • General algorithms/data structures to use for some part of the function
  • Design strategies for the assignment
  • External libraries you found helpful.

All submissions in this course will be checked using cheat detection software. If it is found that you shared code, intentionally or unintentionally with any member of another team.

Ignorance of these rules will not be accepted as a defense for violating them.

Homework external resources policy

You are allowed and encouraged to use external resources like StackOverflow, Geeksforgeeks, etc. for looking up help with individual parts of your assignments (such as how to read a JSON file in Java, etc.). Professional programmers look up syntax, library and class usage examples, etc. all the time.

However, you may not copy large portions of external source code from online. If you find you are copying more than 8 lines or so, you should stop. Copying code from any external source for significant portions of the assignment is considered academic dishonesty, and will be treated as such.

All external references must be cited in your code comments! (See How to Cite Code)

AI Assistance rules

Use of AI Assistants, like ChatGPT, Copilot, etc., is allowed only in limited circumstances. The rules are the same as StackOverflow - you may copy small snippets of code (typically small functions, etc.). You may not copy an entire class from an AI tool, and you should never copy more than 6 or so lines of code at a time. Copying code from any external source for significant portions of the assignment is considered academic dishonesty, and will be treated as such.

All AI tool use must be cited in your code comments!!! (See below)

How to Cite Code

Use the following format as an example citing code you use. You may not have all of these fields available, but this should give you a good idea of things to look for. Order by title of the software package. Use the appropriate commenting format for the programming language of your source code.

Below is a general example of a citation format. This should appear above any code derived from an external source.

//  URL: <where it's located>
//  Description: <what you used, be very specific with line numbers>

If you get help from a TA or professor, you must also cite that in your code.

//  Person: Name of TA or professor - you must include a name. "A TA" is not acceptable.
//  Description: <what you got help with, be very specific with line numbers>

If using an AI assistant, you must cite as follows:

//  AI Agent: (ChatGPT, Copilot, whatever)
//  Prompt: The *exact* prompt you used.

Forgetting to cite your code with your sources is not a defense against an academic integrity violation, and will not be accepted as such. Ignorance of the rules will not be accepted as a defense for violating them.

Homework academic honesty violations

If it is found your submission violates our policies outline above, you will receive the following penalties depending on severity at the discretion of the professor:

  • 0 on the entire assignment (not just the portion that violated our policies)
  • Final Grade deduction in the course of one full letter grade (after applying a zero) of at least 10%
  • F in the course
  • Referral to Student Honor

In general, a second offense will always result in an F in the course and a referral to Honor, regardless of severity. If any member of your group violates our academic honesty policies, the entire group will be considered to have violated the policy. Generally, all members of the group could face the same penalties.


There will be occasional quizzes in the class which are meant to ensure basic understanding of the course lecture material. Quizzes will be posted on Canvas and are multiple choice. Quizzes are graded in a pass/fail way. Any score >= 80% is considered a passing score will be treated as 100%, while any score less than 80% will not have the score changed. For example, if you get a 70% on the quiz, your score will be 70%. But if you get 80%, your score will be 100%.

Quizzes can be taken up to 5 times to achieve the target score. You will be able to see your total quiz score after submitting. However, you won’t see specifically what you got right/wrong, or the correct answer until after the quiz closes.

Your lowest two quizzes will be dropped.

Quizzes are individual assignments. Collaboration/working together (even with assignment team members for homeworks) is strictly prohibited. If collaboration is discovered, it will result in all parties involved receiving a zero on their entire quiz grade for the course.



There will be one midterm during the course.

  • Midterm Exam: Thursday, February 29, 2023, in-class
    • Covers all material from start of class up to and including February 22

If you know you will be absent for an exam, you must let your professor know with at least 1-week’s notice.

Final Exam

The course final exam is cumulative, covering all material from the semester. There will be an emphasis on material covered after Midterm 2, but all content from the course is considered “fair game.”

The final exams scheduled for all sections

FRIDAY, MAY 3rd, 2023 - 2 p.m. to 5 p.m.

You must attend the section you are registered for. Any requests to take the final exam with a different section will be denied regardless of the reason. If you attend the wrong final exam section, your final exam will be given a zero.

UVA has strict final exam policies. As such, we cannot grant make-ups or alternative exam time without explicitly permission from and notification to a Dean. As such, we will not give a make-up exam for the following under any circumstances:

  1. Planned Travel (expect to be in Charlottesville during your exam time.
  2. Multiple exams within the same time period - This course is in the School of Engineering and Applied Science. As such, we do not have a “maximum number of exams within a 24-hour period policy”. We cannot reschedule exams for this reason with explicit, documented accommodations.

Any requests for make-ups due to illness must be made through your Dean, and we cannot handle them ourselves.

Exams are in-person, closed note, closed book, closed laptop, pencil and paper. Those with extended time or other accommodations should contact your professor to discuss them during the first two weeks of the class.

Exam Rules

Exams are in-person, closed note, closed book, closed laptop, pencil and paper. Those with extended time or other accommodations should contact your professor to discuss them during the first two weeks of the class.

Make-up exams due to known conflicts must be scheduled at least one full calendar week in advance.

If you are unable to attend an exam

Exam Curves

The exams may be curved at the sole discretion of the professor. The exact nature of the curve (if present)) will be determined after the exam is graded. The curve will not benefit all students equally. Generally, the curving method used benefit scores closer to the average more than it will benefit those whose scores are significantly above or below average.

Scores will never be curved downward. However, not everyone’s score is guaranteed to increase as a result of the curve.

The purpose of a curve is to adjust exam scores based on the authentic difficulty of the exam. The curve does not exist to artificially inflate scores.

The curved scores will be posted on Canvas (not Gradescope) usually within 24 hours of the raw exam scores being posted.

Regrade requests on Exams that result in points changes will be reflected in the curved scores on Canvas. However, it may take up to one week for curved scores to be updated.

Regrade Requests

Regrade Requests can be submitted on Gradescope within one week of an assignment’s scores being posted. Regrade requests cannot be accepted for any reason after the regrade request deadline.

Regrade requests are for when the existing rubric was applied incorrectly. The following will be considered frivolous regrade requests and will be rejected without further consideration:

  • Arguing that the rubric should be changed
  • Arguing the existing rubric took too many points away for a particular error
  • Arguing for partial credit when your submitted code does not compile or run without crashing
  • Asking for additional points to reach a grade threshold

Repeated frivolous regrade request will result in:

  • All future regrade requests being declined without examination
  • A professionalism deduction to your final grade

Regrade requests can result in your entire assignment being regraded. If, for example, during a regrade request, you find you should have received a deduction and you mistakenly did not, a regrade request could result in you losing points.

Regrade requests should be written professionally and respectfully. Understand that with a class of several hundred students, there will be grading errors. None of the course staff are trying to make errors, however they will happen. Regrade requests should explain how you feel the existing rubric was applied wrong in a calm and respectful tone. Insults, profanity, and unprofessional language will result in a professionalism deduction to your final course grade, and your regrade request being declined.

Class Management


  • No attendance will be taken during the live lectures sessions on Tuesdays and Thursdays.
  • In person attendance is required for exams unless you have made other arrangements
  • Students are encouraged to attend the section they registered for. However, you may attend the other section’s lecture occasionally as needed.

Lecture Recordings

  • Live Lectures will not be recorded. Recordings are not an alternative to attending class, and this class is not meant to be taken remotely.
  • Course content will generally be recorded as short videos and made available through Panopto in Canvas.

This Syllabus

This syllabus is to be considered a reference document that can and will be adjusted through the course of the semester to address changing needs. This syllabus can be changed at any time. Significant changes will be announced. It is up to the student to monitor this page and their announcements for any changes. The final authority on any decision in this course rests with the professor, not with this document.


In this course, there will be a focus on working well together and learning about the development process. A large portion of that process involves interpersonal skills and conflict management. Students and staff are all expected to treat each other with respect. This includes, but certainly is not limited to:

  • Misuse of class platforms (Piazza, Github, etc.)
  • Disrespectful language or actions to course staff or other students
  • Disrupting lecture or office hours with another student
  • Unprofessionally written work. All written answers should be in complete sentences and written for a professional college setting.
  • Not participating in work with your partners (such as no commits, missing scheduled meetings, etc.)
  • Unauthorized collaborating with other teams

Students can and will be penalized for unprofessional behavior with deductions to their final grade. The deductions can be up to and including 100% in the class.

Academic Integrity


  • Know the honor code
  • Work with your team, but not any other team
  • Using code from other students (from any semester) is an honor violation
  • Using publicly-available example code and libraries is fine, but you must cite your resources
  • Posting any of yours or a classmate’s work from homework, quizzes, or exams publicly anywhere on the internet is an honor violation
    • This includes your public Github Profile, Chegg, StackOverflow, CourseHero, etc. - This is strictly prohibited!
  • More information on what is allowed will be included with each assignment if necessary
  • It never hurts to ask the staff what is allowed or not allowed!

The School of Engineering and Applied Science relies upon and cherishes its community of trust. We firmly endorse, uphold, and embrace the University’s Honor principle that students will not lie, cheat, or steal, nor shall they tolerate those who do. We recognize that even one honor infraction can destroy an exemplary reputation that has taken years to build. Acting in a manner consistent with the principles of honor w ill benefit every member of the community both while enrolled in the Engineering School and in the future.

Students are expected to be familiar with the university honor code, including the section on academic fraud Assessments will describe allowed collaborations, and deviations from these will be considered Honor violations. If you have questions on what is allowable, ask! Unless otherwise noted, all assessments will be considered pledged that you have neither given nor received help. (Among other things, this means that you are not allowed to describe problems on an exam, assignment, or project to a student who has not taken it yet. You are not allowed to show exam papers to another student or view another student’s exam papers while working on an exam.) Sending, receiving, or otherwise copying or describing the contents of electronic files that are part of course assignments are not allowed collaborations (except for those explicitly allowed in assignment instructions).

Assignments or exams where honor infractions or prohibited collaborations occur will receive a zero grade for that entire assignment or exam. Such infractions will also be submitted to the Honor Committee if that is appropriate. Students who have had prohibited collaborations may not be allowed to work with partners on remaining homeworks.

For CS3140, using code developed by previous students in the course or code written for your use by someone outside the course is not allowed and will likely be an honor violation. This does not apply to the use of publicly available frameworks and libraries, unless indicated in the assessment instructions.

In general, we expect that you will be using code, examples, and ideas from many websites and resources for your homeworks. This is allowed within reason.
Wholesale copying of an entire project or any major feature from any source (the web, another student, etc.) is definitely not allowed. Using code snippets that you find to round out a feature is allowed with citation. If you ever have a question about what is or is not appropriate, ask first!

In ALL cases, you need to cite all sources within the code where the code or algorithm was used Failure to properly attribute your sources will result in a deductions up to 100% on assignments, and be considered an academic integrity violation in the worst case.

Miscellaneous Policies

Inclement Weather Policy

If there is the possibility of inclement weather that could affect class, it is your responsibility to stay informed. Information about how to sign up for email and/or text alerts from UVA Emergency Management, along with the current University status, can be found at

SDAC and Other Special Circumstances

It is my goal to create a learning experience that is as accessible as possible. If you anticipate any issues related to the format, materials, or requirements of this course, please make an appointment to with your instructor outside of class so we can explore potential options. Students with disabilities may also wish to work with the Student Disability Access Center (SDAC) to discuss a range of options to removing barriers in this course, including official accommodations. We are fortunate to have an SDAC advisor, Courtney MacMasters, physically located in Engineering. You may email her at to schedule an appointment. For general questions please visit the SDAC website:

If you have already been approved for accommodations through SDAC, please send your instructor your accommodation letter as soon as possible. We happily and discretely provide the recommended accommodations for those students identified by the SDAC. For quizzes, we cannot grant extensions, as the quiz solutions are released at the due time. For team homework assignments, we cannot grant significant accommodations to deadlines for an entire team due to accommodations of individuals on the team. However, we can discuss with you the best way to integrate with your team with your accommodations in consideration. Please make an appointment with your instructor outside of office hours to have this discussion.

If you have other special circumstances (athletics, other university-related activities, etc.), please contact the instructor as soon as you know these may affect you in class.

Religious Accommodations

It is the University’s long-standing policy and practice to reasonably accommodate students so that they do not experience an adverse academic consequence when sincerely held religious beliefs or observances conflict with academic requirements.

Students who wish to request academic accommodation for a religious observance should submit their request to their instructor by email as far in advance as possible. Students who have questions or concerns about academic accommodations for religious observance or religious beliefs may contact the University’s Office for Equal Opportunity and Civil Rights (EOCR) at or 434-924-3200.

Accommodations do not relieve you of the responsibility for completion of any part of the coursework - including homework assignments - missed as the result of a religious observance.

Support for Career Development

Engaging in your career development is an important part of your student experience. For example, presenting at a research conference, attending an interview for a job or internship, or participating in an extern/shadowing experience are not only necessary steps on your path but are also invaluable lessons in and of themselves. We wish to encourage and support you in activities related to your career development. To that end, please notify your instructor by email as far in advance as possible to arrange for appropriate accommodations.

Student Support Team

You have many resources available to you when you experience academic or personal stresses. In addition to your professor, the School of Engineering and Applied Science has staff members located in Thornton Hall who you can contact to help manage academic or personal challenges. Please do not wait until the end of the semester to ask for help!

NOTE: These resources are available for BACS majors as well! You are still a part of our department!


Health and Wellbeing

You may schedule time with the CAPS counselors through Student Health. When scheduling, be sure to specify that you are an Engineering student or College student. You are also urged to use TimelyCare for either scheduled or on-demand 24/7 mental health care.

Community and Identity

The Center for Diversity in Engineering (CDE) is a student space dedicated to advocating for underrepresented groups in STEM. It exists to connect students with the academic, financial, health, and community resources they need to thrive both at UVA and in the world. The CDE includes an open study area, event space, and staff members on site. Through this space, we affirm and empower equitable participation toward intercultural fluency and provide the resources necessary for students to be successful during their academic journey and future careers.

Statement on Violence

The University of Virginia is dedicated to providing a safe and equitable learning environment for all students. To that end, it is vital that you know two values that I and the University hold as critically important:

  1. Power-based personal violence will not be tolerated.
  2. Everyone has a responsibility to do their part to maintain a safe community on Grounds.

If you or someone you know has been affected by power-based personal violence, more information can be found on the UVA Sexual Violence website that describes reporting options and resources available -

As your professor and as a person, know that I care about you and your well-being and stand ready to provide support and resources as I can. As a faculty member, I am a responsible employee, which means that I am required by University policy and federal law to report what you tell me to the University’s Title IX Coordinator. The Title IX Coordinator’s job is to ensure that the reporting student receives the resources and support that they need, while also reviewing the information presented to determine whether further action is necessary to ensure survivor safety and the safety of the University community. If you would rather keep this information confidential, there are Confidential Employees you can talk to on Grounds (See The worst possible situation would be for you or your friend to remain silent when there are so many here willing and able to help.

As your professors and as people, know that we care about you and your well-being and stand ready to provide support and resources as we can. As faculty members, we are a responsible employee, which means that we are required by University policy and by federal law to report certain kinds of conduct that you report to us to the University’s Title IX Coordinator. The Title IX Coordinator’s job is to ensure that the reporting student receives the resources and support that they need, while also determining whether further action is necessary to ensure survivor safety and the safety of the University community.