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
  5. Homework Assignments
    1. Homework Assignment Teams
    2. Homework Submissions
    3. Team Declarations
      1. Team Concerns
    4. Late Homework Policies
      1. One Late Day Policy
      2. HW1 Late Policy
      3. HW6 Late Policy
    5. Advice on Homework
    6. Homework collaboration policy
    7. Homework external resources policy
      1. AI Assistance rules
      2. How to Cite Code
    8. Homework academic honesty violations
  6. Quizzes
  7. Exams
    1. Midterm
    2. Final Exam
    3. Exam Rules
    4. Exam Curves
    5. Academic Honesty
  8. Regrade Requests
  9. Class Management
    1. Attendance
    2. Lectures
  10. This Syllabus
    1. Professionalism
  11. Miscellaneous Policies
    1. Inclement Weather Policy
    2. SDAC and Other Special Circumstances
    3. Religious Accommodations

Basic Info

CS 3140 Fall 2022 Semester

Course Website - https://cs3140.com

Course Logistics: https://cs3140.com

Online Textbook: https://sde-course.com

Drive Folder: https://drive.google.com/drive/folders/1kOugthKDDMWz5P7eXwM_H6wlg-Z2X68A?usp=drive_link

Lecture Sections

Both sections use same resources, assignments, policies, notes, etc.

  • Section 001: Prof. Paul “Will” McBurney
    • Tuesdays and Thursdays @ 2:00 PM - 3:15 PM
    • McLeod Hall 1020
  • Section 002: Prof. Derrick Stone
    • Tuesdays and Thursdays @ 3:30 PM - 4:45 PM
    • Olsson Hall 120

Staff Information

Instructor: Prof. Will McBurney
Office: Rice 404
Office Hours:

Instructor: Derrick Stone

Teaching Assistants: TBD

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
  • Full-stack 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 @ https://sde-coursepack.github.io/

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 https://github.com/sde-coursepack/sde-coursepack.github.io

Where do I go for resources/help?

  • Announcements -> Drive Folder
  • Slides -> Drive Folder
  • In-class code -> Drive Folder
  • Homework instructions -> Drive Folder
  • 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

  • Links to all other class resources
  • 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:

Drive Folder

The student Drive Folder contains:

  • All Lecture Notes
    • Announcements
    • Slides
    • Assigned Readings for each lecture
    • Example Code
  • Up-to-date Course Schedule
  • Assignment Information
    • Directions
    • Submission Instructions
    • Sample input files

Online Coursepack

Online Coursepack @ https://sde-coursepack.github.io/

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 ~88% 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.

Gradescope

You will declare your team for each assignment on Gradescope. Team declarations are typically due one week after the assignment is released. Solo submitters must still submit, declaring they are working alone. Anyone who does not submit a team declaration will be required to work alone.

Every homework assignment will be submitted on Gradescope using the “submit via Github” option. Submissions must come from your teams GitHub repository on the class organization.

Homeworks and Exams will be graded on Gradescope. All regrade requests are submitted through GitHub.

Piazza

Piazza @ https://piazza.com/class/lzso29z0jdl1w4/

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 homework 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)

Email

Due to the class size, email should only be used for the following:

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

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

We will not be using email for:

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

PLEASE make sure to put “[SDE]” at the beginning of the subject line of all emails! And please be patient with me in responding. During the semester, we can routinely receive 50-100 emails a day, 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) - 60%
    • 9% each for Homework 1 through 5
    • 15% for Homework 6
  • Quizzes (9) - 5%
    • Must pass at least 8 quizzes for full credit
  • Midterm - 12.5%
  • Cumulative Final Exam (1) - 22.5%

There will be no extra credit opportunities.

Homework Assignments

There will be 6 homeworks 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 - Unit testing with JUnit, Test Driven Development.
  • HW3 - Design, Refactoring, Java Streams, and Polymorphism
  • HW4 - UML Class Diagrams, Three Tier Architecture, Testing with Mockito, Design patterns
  • HW5 - Data persistence, JSON, SQLite Databases, JDBC
  • HW6 - Final assignment, JavaFX GUI, Hibernate ORM, Design Patterns
    • Note that this assignment will have 2 distinct parts

All assignments are required, and no homework assignments will be dropped.

All assignments are intended to take several days to complete. You should expect to start assignments well in advance of the due date. 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.

Homework Assignment Teams

All assignments are designed to be done collaboratively. The following outline our rules on assignment teams.

  1. Assignments may be worked on individually or in groups of 2 or 3. Groups may not be larger than 3.
    1. Every team will be required to complete all the requirements for the assignment, regardless of size. The same grading rubric will be applied to groups of 3 as well as people working alone.
    2. You can only work with a specific person on 4 assignments or less. You may not work with someone on 5 or more assignments.
      1. We audit teams at the end of the semester. Anyone students violating this policy will lose half credit on each homework over 4 that they worked on together.
    3. 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. There will be a pinned post on Piazza to look for teammates, and you are encouraged to come to class and get to know the students around you.
  2. All teams must be declared on Gradescope.
    1. The team declaration deadline is typically the Friday before the assignment is released.
    2. You must submit to the declaration assignment on Gradescope even if working alone.
    3. Late submissions for team declarations will not be accepted for any reason whatsoever.
    4. If you fail to submit a team declaration by the deadline, you will be required to work alone. No late team adds, no exceptions.
  3. All team members must join that team’s Github repository on the school GitHub organization.
    1. You may not work using your own repositories outside of the class organization.
    2. All assignment work is committed, shared, and pushed to GitHub.
    3. You submit your assignment by submitting GitHub repository on Gradescope
    4. Once you have added someone to your team, you cannot remove them for any reason for that assignment.
  4. Everyone on a given team gets the same grade for their assignment.
  5. If someone on your team hasn’t contributed, please let the professor know via email the professor
    1. with the subject line “[SDE] HWx Group Issues”
  6. If we find someone has not meaningfully contributed:
    1. They may lose up to 100% of the points on the assignment.
    2. They may be required to work alone on future assignments
    3. Repeated instances of non-contibution may result in academic honesty penalties up to and including an F in the course.
    4. This will not affect the grade of the rest of the group. The rest of the group is still expected to have completed the full assignment.

Homework Submissions

Homeworks will typically be due on Thursdays at 11:59 p.m. ET. All homework is submitted through Gradescope.

We will only ever grade your most recent submission to Gradescope. We will not grade multiple submissions and give you the best score. If your most recent submission is late, we will not grade your most recent on-time submission.

Team Declarations

To declare your team, you will complete an assignment on Gradescope called “HWX - Team Declaration” where X is the number of the assignment. The form 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, df3gh, JaneSmith12345
Sarah Thomas, stu9xyz, ThisIsAGithubAccount

Late team submissions will not be accepted for ANY REASON WHATSOEVER **. If you miss the deadline, you must work as an individual! **No Exceptions for ANY REASON! No one will be added to a team late 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, or all of your commits were meaningless or even harmful, 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 contributed meaningful work to your team’s code base, then you have not demonstrated that skill set.

Late Homework Policies

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.

The intent of this late policy is to strictly enforce deadlines, but to have initially soft late penalties. It is possible to get an “A” on a homework even submitting one day late.

One Late Day Policy

Student are given one opportunity for “late day credit”. During the semester, if you submit any assignment late, you will receive 5 points (see HW1 and HW6 Policies below) to “make-up” that late day. This will be applied automatically at the end of the semester, not on the individual assignment; please do not email the professor to request to use this late day! It will be automatically applied at the end of the term.

This is the only late day you will receive. So if you use it on HW2, and then are sick when HW5 is due, you will not be granted an additional late day or extension. We will not be granting any short term extensions for any reason.

If you are unable to participate in the class or homework for an extended period, you should contact your Dean of Students, and they will notify us of the prolonged absence. We will handle those cases on an ad-hoc basis.

HW1 Late Policy

HW1 is broken into two 50 point parts submitted separately, rather than a single 100 point assignment. As such, each portion of the assignment will lose 2.5 points per day.

HW6 Late Policy

Homework 6 will have a separate late policy - no late submissions after Friday, December 6th, 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

Generally, extension requests will not be granted on homework assignments. 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 will not be granted over short term illnesses.

Advice on Homework

  1. Don’t try to form teams at the last second. In general, you should know who you are working with within a day or two after the assignment is released.
  2. It’s better to have working code that implements some features than to have non-working code that attempts to implement all features
  3. Submissions that cannot be compiled or executed without crashing will not receive partial credit
  4. Start early - in a worst case you’ll finish early and have more free time.
  5. 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
  6. Expect to spend at least half of your time testing and debugging
    1. You will whether you plan to or not
  7. 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!
  8. Always work in a branch, not in main.
    1. When you want to add your code to main, merge your branch to main.
  9. Never push code directly to main.
  10. When fixing a bug, write a test first
    1. The test should fail
    2. The bug is fixed when the test passes
  11. Never push code you haven’t tested/run
    1. Especially right before the deadline!
    2. This has caused many teams to lose substantial points!

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. This includes posting your code on a public GitHub, sending your code to perspective employers, etc. If you are found to have posted code online that was later copied by another student, even without your knowledge, this is still a violation of the policy, and both you and the copying student will be penalized equally.

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 your team (or any individual on it) submitted code which violates our academic honesty policy, your team will be found responsible.

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 when used appropriately and with citation. The rules are the same as StackOverflow - you may copy small snippets of code (typically small functions, etc.). You should not however, attempt to use such tools to complete entire assignments.

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

All “chat logs” with AI tools must be saved!

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.

Additionally, all LLM conversation logs should be saved on your local machine.

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 the course faculty find sufficient evidence to indicate that your homework 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)
  • An additional 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 Student 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.

Quizzes

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. Any score >= 80% is considered a passing score will be treated as 100%, while any score less than 80% will be weighted to 80%. Example, 70% is treated as 70/80, or 87.5%

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 automatically. This includes missed quizzes.

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.

Because quiz answers are automatically released shortly after the quiz deadline, no late quiz submissions can be made for any reason.

Exams

The class will have two exams; one midterm, and one cumulative final.

Midterm

There will be one midterm during the course.

  • Midterm: Tuesday, October 8, 2023, in-class
    • Covers all material from start of class up to and including September October 3

You must attend the exam for your registered section. Your exam submission will not be graded if you take the exam in the wrong session, unless you have received explicit permission from the course professor.

If you know you will be absent for an exam ahead of time, you must let your professor know with at least one 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 the midterm (expect a roughly 40/60 split), but all content from the course is considered “fair game.”

The final exam is scheduled for:

Saturday, December 14, 7pm - 10pm - both sections take the exam at the same time.

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).
    1. We cannot give any student a final exam early for any reason, per UVA policies.
  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 without 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. For logistics reasons, those with extended time/alternative test room accommodations need to schedule those exams with SDAC. You should schedule them now (at the start of the semester!). Do not wait!

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

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 professor’s view of the 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 eventually be reflected in the curved scores on Canvas. However, it may take up to one week for curved scores to be updated.

Academic Honesty

Students found copying on exams will receive an automatic F in the course, regardless if the copying occurs on the midterm or final exam.

Regrade Requests

For Homework and exams, regrade requests can be submitted on Gradescope within one week of an assignment’s scores being posted on Gradescope. Regrade requests cannot be accepted for any reason after the regrade request deadline. The course staff will not revisit old assignments at the end of the semester, even if it would bump you up a letter grade.

Regrade requests are for when the existing rubric was applied incorrectly.

The following regrade requests will not be granted:

  • 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

As much as is possible, regrade requests will be handled directly by the course’s professors directly. Abuse of the regrade request system will result in all future regrade requests being declined without examination.

If you regrade request was rejected on Gradescope and you are still unsure if the assignment was graded correctly, you are encouraged to attend professor office hours for further clarification (not TA Office Hours!). For this, please come to office hours that are not close to homework deadlines, as those office hours can get very busy.

Regrade requests may result in your entire assignment being regraded. If, for example, during a regrade request, the staff finds that you should have received a deduction but you mistakenly did not, this could result in you losing points. To be clear, we don’t look for reasons to deduct additional points, we are simply trying to grade your assignment correctly.

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 incorrectly 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 without further review.


Class Management

Attendance

  • 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.

Lectures

Lectures will not be recorded. All readings, slides, and code examples from class will be uploaded to the Drive Folder.

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 via daily announcements in class and on Piazza as a pinned post. It is up to the student to monitor this page and their announcements for any changes.

Final authority on any decision in this course rests with the professor, not with this document.

Professionalism

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 at the sole discretion of the course professor.

Academic Integrity

Summary:

  • 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 http://honor.virginia.edu/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 https://uvaemergency.virginia.edu/.

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 cmacmasters@virginia.edu to schedule an appointment. For general questions please visit the SDAC website: sdac.studenthealth.virginia.edu.

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 UVAEOCR@virginia.edu 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!

Learning

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 - www.virginia.edu/sexualviolence.

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 http://www.virginia.edu/justreportit/confidential_resources.pdf). 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.