CS 8395: Advanced Topics in Software Engineering Fall23

Meetings

Lecture — Tuesday and Thursday, 11:00AM - 12:15PM Engineering & Science 001

Textbook

None

Instructor

  Yu Huang
  yu.huang at vanderbilt.edu
  Office Hours:
  Tuesday 1:00PM - 2:00PM Central, Sony 4108

Course Staff

  Zachary Karas
  z.karas at vanderbilt.edu
  Office Hours:   W 3:00PM - 4:30PM Central Time, Sony 4118

Websites

Piazza : You will be automatically added on August 23. After that, if you need access, email yu.huang at vanderbilt.edu

Brightspace : Only for homework report submission and score release

Overview

As a graduate level special topic course, this course considers ...

  • What is software engineering?
  • What cutting-edge topics do we consider in software engineering research?
  • What contributions are seen in software engineering research?
  • What research methods are commonly used in software engineering research?
  • How to evaluate and design a research project in software engineering?
  • How can you apply software engineering research methods to your own research?

Different from the undergraduate course on software engineering (e.g., CS4278/5278 Principles of Software Engineering ), which focuses on the whole process of software development and practical skills in modern software engineering, CS8395 is a graduate level special topic course that focuses more on the cutting edge topics in software engineering research. In this course, we will focus on six core topics:

  • Program Analysis
  • Program Testing and Automated Repair
  • Software Security
  • Human Factors in Software Engineering
  • Artificial Intelligence for Software Engineering
  • Open Source Software

Under each topic, we will also include interdisciplinary topics. This is due to the great nature of software engineering: it is important for many other domains and can benefit from them as well. For example, program analysis methods will include discussions on Programming Language; human factors will include discussions on Human-Computer Interaction (HCI), diversity and bias, and ethics in SE research. At the beginning of the course, we will also discuss the overview of SE research and basic techniques for reading and evaluating papers and making presentations.

The goal of this course to help students learn about basic research topics and methods in SE, develop basic research capabilities, and encourage them to combine what they learn with their own research work. Thus, the only semester-long assignment involves writing and presenting a research proposal. Students are also required to present a research paper from a list provided by the instructor (or two, depending on how many students are enrolled), lead the Q&A and discussion session for the presentation, and also evaluate each other's presentations in the classroom.

Acknowledgement

This course is designed with generous help and inspiration from Drs.

  • Kevin Moran, George Mason University
  • Claire Le Goues, Carnegie Mellon University
  • Emerson Murphy-Hill, Google
  • Vincent Hellendoorn, Carnegie Mellon University
  • Toby Li, Notre Dame University
  • Collin McMillan, Notre Dame University
  • Westley Weimer, the University of Michigan
  • Specifically, we want to acknowledge the following courses:

  • Program Analysis at Carnegie Mellon University (by Dr. Claire Le Goues)
  • Intersections of Deep Learning & Software Engineering at George Mason University (by Dr. Kevin Moran)
  • Software Engineering as a Human Activity at North Carolina State University (by Dr. Emerson Murphy-Hill)
  • Attendance

    This course is delivered in person.

    Live attendance at the lectures is required and discussion is highly encouraged (discussion on research is one of the main purposes for a 8000-level graduate course). Students with extenuating circumstances, such as certain medical conditions or conference attendance, should email BOTH the instructor and the TA ahead.

    In this course, we will invite guest speakers. Guest lectures will be either in-person or remote. If it is remote, we will check the attendance from the zoom participant list.

    Upper-level Research Course

    This course is an upper-level special topic course in computer science. It is a course for graduate students.

    It is not a capstone course or a major design experience course. It does not feature coding assignments or a large team project. If you are looking for more hands-on software industry practice (e.g., coding), please seriously consider my other course CS4278/5278 instead.

    The expected workload for this class is "light" — we expect students to focus more on creative and critical thinking on software engineering research and open their mind for more possibilities in their own research.

    Grading and Examinations

    There is no exam during the semester. You are expected to be present in lecture, evaluate your classmates' presentations and proposals, and pariticipate in in-class discussions. If you are excused by the instructor from attending live lecture, we will make alternate grading arrangements.

    The grading breakdown is as follows (will be updated once we finalize the presentation plan):

    • 0% Team Sign-Up (HW0)
    • 5% Paper Presentation Sign-up (HW1)
    • 10% Research Proposal: Mid-Report (HW2)
    • 20% Research Proposal: Final Report (HW3)
    • 10% Research Proposal: Mid-Presentation
    • 20% Research Proposal: Final Presentation
    • 20% Research Paper Presentation
    • 15% Peer Reviews*: Presentations/Proposals

    *All students must adhere to principles of professionalism, and any form of discrimination based on sex, gender, race, or other factors is entirely prohibited. Within our course, the course staff also verifies that students are observing fundmantal behvioral guidelines. If any violations are found, the course staff has the right to cut off corresponding points from the Peer Reviews category.

    Regrade and Makeup Policy

    Regrade requests for written assignments must be received within one week of you receiving your score unless otherwise specified. All regrade requests should be made via Piazza using private posts.

    Regrade requests for presentations are only accepted for mistakes on score calculation.

    When we regrade an assignment we will look over it very carefully for correctness: it is possible that after a regrade you will end up with fewer points than before the regrade. Regrades should be treated with caution and used only when the graders have made a clear mistake evaluating your work.

    If you miss an assignment deadline or in-class activity, we can be very lenient about extensions or makeups, but we must have some amount of documentation for accounting and student equity. For example, a doctor's note or discharge note if you are sick. This policy follows that of other professors in the department. Please email the TA and the instructor to submit documentation and/or discuss our particular situation.

    Late Policy and Grace Period

    Every student has ONE grace period for late submissions for all the written assignments (basically, you can only apply grace period to HW2 and HW3). The grace period allows you to submit a written assignment within a week after the deadline without any penalty. Otherwise, you lose 20% for each day you are late after the deadline. If you have not submitted a written assignment within 4 days (if not using grace period), you get zero points.

    There is absolutely no late policy for presentations. If you miss your presentation, you automatically get zero points for that presentation.

    All course materials submitted for a grade must be turned in by 11:59pm (Central Time) on the last date listed on the course syllabus.

    Student Mental Health

    Students often experience strained relationships, increased anxiety, alcohol or drug problems, feeling down, difficulty concentrating, family issues, or a lack of motivation. Student mental health concerns are quite common but we don't always talk about them. Vanderbilt Univeristy is committed to advancing the mental health and well-being of its students. If you or someone you know is feeling overwhelmed, depressed, or in need of support, confidential mental health services are available on campus.

    Research

    Your class work might be used for research purposes. For example, we may use anonymized student assignments to design algorithms or build tools to help programmers. Any student who wishes to opt out can contact the instructor after final grades have been issued. This has no impact on your grade in any manner.

    We may also post some research studies looking for human participants in software engineering. All such studies are 100% voluntary and your participation will not affect your grade in any manner.