This course is a research-oriented course, aiming at offering students an immersive hands-on research experiences. In the first few weeks of the semester, you will be introduced to the different approaches of performing empirical research to answer software engineering questions. The course will focus on quantitative and qualitative research methods including interviews and surveys, design of human experiments, including crowdsourcing, and mining of software repositories (with a focus on eye tracking research and methodologies).

In the rest of the semester, you will be grouped, and each group will be expected to complete a research project at the end of the semester. Every group will give a final presentation for the project and will finish a conference style research paper. Research topics and groups will be introduced during the first week. During the semester, there will be several milestones. You are expected to submit your milestone presentation slides and give a 20 to 25 minute presentation to the rest of the class for each milestone.

Moodle Course Page
Semester Spring 2022
Date Time, Location TR 11:00 - 12:15 pm, Davis TBD
Instructor Naser Al Madi
Office: Davis 115
Email: nsalmadi@colby.edu
Prerequisites
  • CS 321 - Software Engineering
Course Goals
  1. Understand the foundations of the scientific method and empirical research with its quantitatively or qualitatively approaches.
  2. Design and implement ethical software engineering research experiments involving human participants.
  3. Describe data sources in software engineering and the associated data collection techniques.
  4. Demonstrate the ability to apply software data analysis in industry contexts.
  5. Evaluate software engineering research papers and identify the strengths and weaknesses in design, methodology, and presentation.
Milestones

There are weekly milestones for each project. The milestones designed to break your research project into smaller parts, which leads you to work better with your group members and can allow me to provide support and feedback more efficiently.

The following table lists the expected content of each milestone.

WeekMilestonesContents
4 1. Presentation: Experiment Design
  • Project motivation, methodology, expected outcomes
  • IRB form draft
  • Goals for each person
  • Contribution list per person
5 2. Presentation: Literature Search
  • literature review: a survey of scholarly sources that provides an overview of your field and topic.
  • Bibliography with each paper summarized
  • Contribution list per person
6 3. Presentation: Software Specification and Plans
  • List of main software features and how you plan to build them
  • Chosen software development model (Agile/Spiral) and management platform (Jira/GitHub)
  • Discussion of challenges to achieving this milestone
  • Planed tasks for each person
7 4. Paper: Background and related works section due
  • Document should be on Overleaf
  • Contribution list per person
9 5. Presentation: Software Demo
  • Demo of software features
  • Discussion of challenges to achieving this milestone
  • Contribution list per person
10 6. Paper: Methods section due
  • Document should be on Overleaf
  • Contribution list per person
11 7. Presentation: Better software demo
  • Demo of software features
  • Discussion of challenges to achieving this milestone
  • Contribution list per person
12 8. Presentation: Initial Results
  • Initial analysis of results
  • Discussion of challenges to achieving this milestone
  • Contribution list per person
13 9. Poster presentations
  • Poster printed and reviewed
  • Paper: results section due on Overleaf
  • Contribution list per person
14 10. Final presentations
  • Project motivation, methodology, results, and discussion
  • Contribution list per person
Finals 11. Paper: Final conference paper
  • Full paper: Abstract, introduction, background and related works, methods, results, threats to validity, discussion, and conclusion
  • Edited paper in correct conference format on Overleaf
  • Contribution list per person
Class Participation Class time will be used as follow:
  • There will be an assignment at the end of each week for the first three weeks.
  • For each milestone (except papers), every group will give an oral presentation with slides to update the rest of the class on your progress. Each group member should present the part they worked on. Everyone in the class is expected to ask questions and everyone in the group is expected to answer questions.
  • Attending classes is an easy way for you to work with your group members and/or get help from me. So you are expected to attend classes. Let me and your group members know beforehand if you have to miss a class.
Grading The course grade will be determined as follows:
Activity Percentage Graded as individual or group Grading Rubrics
Assignments and Milestones 35% Individual The grade for each milestone depends on the content, your contribution, and your oral presentation. I want to know what you did and what your plan is. If you ran into problems and didn't make much significant progress, talk to me about it. The oral presentations is based largely on your ability to communicate your research to me and to your classmates. In order to receive a high grade, the contributions of each team member must be well-integrated into a coherent presentation. This means you should spend more time thinking about how to talk to each other and to your classmates. Also, it is perfectly acceptable to spend most of your presentation talking about challenges, since that is how we learn.
Software 15% Group The grade for the Software depends on the degree of completion your use of the correct processes that we covered in the previous semester. I expect your code to be well designed and implemented, refactored, well documented, and tested.
Experiment and data collection 10% Group The grade for experiment and data collection will depend on the amount and quality of the data collected.
Participation 10% Individual The grade for class participation depends largely on your willingness to ask questions during or after another group's presentation. You are expected to attend the classes. Also, your performance in the first month will also be part of it.
Poster Presentation 10% Group The poster will be graded based on the design and content. Whether your poster is eye-catching enough that can make people stop and read your poster? Whether the poster has good amount of pictures and texts that can give people an idea about your project and results without your explanation? Whether you explanation can make people more interested in your research?
Final Paper 20% Group The final conference style paper will be graded based on the organization of the content, the depth of analysis and clarity (well written or not).
Collaboration, Academic honesty

This policy applies to anyone you work with other than your partner.

Computer science, both academically and professionally, is a collaborative discipline. In any collaboration, however, all parties are expected to make their own contributions and to generously credit the contributions of others. In our class, therefore, collaboration on homework and programming assignments is encouraged, but you as an individual are responsible for understanding all the material in the assignment and doing your own work. Always strive to do your best, give generous credit to others, start early, and seek help early from both your professors and classmates.

The following rules are intended to help you get the most out of your education and to clarify the line between honest and dishonest work. We reserve the right to ask you to verbally explain the reasoning behind any answer or code that you turn in and to modify your project grade based on your answers. It is vitally important that you turn in work that is your own. We do use automated plagiarism detection software, so please be sure to abide by these, rather minimal, rules. Reports of academic dishonesty are handled by an academic review board and a finding of academic dishonesty may result in significant sanctions. For more details on Colby's Academic Integrity policies and procedures, see colby.edu/academicintegrity.

  • If you have had a substantive discussion of any programming project with a classmate, then be sure to cite them in your write-up. If you are unsure of what constitutes "substantive", then ask me or err on the side of caution. As one rule of thumb, if you see more than 10 lines of someone else's code, then you should cite them. You will not be penalized for working together.
  • You must not copy answers or code from another student either by hand or electronically. Another way to think about it is that you should be talking English with one another, not program languages.
  • Assistive code autocomplete systems that generate more than a single token of code are not permitted. You are expected to write all your code on your own and be able to explain it and rewrite it without assistance.
The Colby Affirmation

Colby College is a community dedicated to learning and committed to the growth and well-being of all its members.

As a community devoted to intellectual growth, we value academic integrity. We agree to take ownership of our academic work, to submit only work that is our own, to fully acknowledge the research and ideas of others in our work, and to abide by the instructions and regulations governing academic work established by the faculty.

As a community built on respect for ourselves, each other, and our physical environment, we recognize the diversity of people who have gathered here and that genuine inclusivity requires active, honest, and compassionate engagement with one another. We agree to respect each other, to honor community expectations, and to comply with College policies.

As a member of this community, I pledge to hold myself and others accountable to these values. More ...

Title IX Statement

Colby College prohibits and will not tolerate sexual misconduct or gender-based discrimination of any kind. Colby is legally obligated to investigate sexual misconduct (including, but not limited to, sexual assault and sexual harassment) and other specific forms of behavior that violate federal and state laws (Title IX and Title VII, and the Maine Human Rights Act). Such behavior also requires the College to fulfill certain obligations under two other federal laws, the Violence Against Women Act (VAWA) and the Jeanne Clery Disclosure of Campus Security Policy and Campus Statistics Act (Clery Act). To learn more about what constitutes sexual misconduct or to report an incident, see: http://www.colby.edu/studentlife/handbook-section/f-sexualmisconduct/

I am committed to all Colby students feeling safe, accepted, and included in all aspects of their college experiences, including this course. Colby prohibits and will not tolerate sexual misconduct or gender based discrimination of any kind and is obligated, by federal and state laws, to respond to reports and provide resources to students. As your professor I am considered a "responsible employee" which requires me to report incidence of sexual misconduct, dating violence, or harassment to the Title IX Coordinator.

If you wish to access confidential support services, you may contact:

  • The Counseling Center: 207-859-4490
  • The Title IX Confidential Advocate, Emily Schusterbauer: 207-859-4093
  • The Office of Religious and Spiritual Life: 207-859-4272
  • Maines's 24/7 Sexual Assault Helpline: 1-800-871-7741
Religious Holidays

Colby College supports the religious practices of students, faculty, and staff, but we don't always know which people will observe which holidays. Since I need to plan course activities in advance, I need to know in advance, if you need to miss a class or have a deadline adjusted in order to observe a holiday. Please notify me by email at least 14 days in advance of any religious holiday that will affect your ability to participate in this course.

© 2022 Naser Al Madi. Page last modified: 01/10/2022