Giter VIP home page Giter VIP logo

senior-thesis-afluent-2022's Introduction

CMPSC 600/610: Senior Thesis starter

This repository contains the starter materials for your thesis in Computer Science 600 and 610 in 2021-2022 academic year. The main directory of this repository contains the LaTeX source code for a project that is designed for use with GitHub Classroom. To learn more about the course in which these assignments were completed, please visit the Computer Science Thesis Fall 2021 Allegheny College GitHub Organization.

The LaTeX file in this repository is automatically compiled with GitHub Actions, ensuring that it compiles correctly and, moreover, that a PDF of the thesis document is available in your GitHub repository whenever tagging a commit for a release.

Overview

This assignment requires a researcher to write a LaTeX document, stored in the file SeniorThesis.tex that describes the key aspects of a senior thesis research project. Please refer to the source code in this file for an explanation of the components of a senior thesis and the way in which you create them in LaTeX.

Your course instructor will reduce a researcher's grade for this assignment if the pdf of your completed thesis document has not been properly released before the assignment's due date on December 13, 2021 at 11:59 pm. Unless you provide the course instructors with documentation of the extenuating circumstances that you are facing, no late work will be considered towards your grade for this project.

For specific details about the general evaluation rubric for minimum requirements please see thesis guidelines.

Explanation of sections

Please consult the following sub-sections, as section requirements have changed from requirements in previous years. All descriptions of each section are delimited by the understanding that sections should "include, but not be limited to" the areas highlighted.

Also keep in mind that the typical instruction to

whenever possible, use and describe one or more concrete examples and technical diagrams

applies across all relevant sections listed below.

A final note about requirements: nearly all of the sections requests some discussion of ethical implications inherent in projects. The ways in which ethical issues impact research will vary from project to project. Readers will be able to guide students on a project-by-project basis toward responding to the ethics requirements listed below.

Introduction

  • a statement of the problem addressed in this research
  • overall project aims
  • background motivating your research
  • a high-level overview of ethical issues implied by the current state of the problem underlying the work

Related Works

  • the review of relevant existing work (i.e. "literature review")
    • the literature review should be a concise, scholarly review of the literature explaining the background to the proposed research
    • the review should provide the context for the aims of the research in relation to existing work on the topic
    • review of ethical discussions referenced in the Introduction

Method of Approach

  • describes the infrastructure and tools implemented to serve, test, and support research and conduct experiments
  • enumerates the general processes and code used by the project
    • here, where using diagrams or code snippets, elaboration of any included material is required
  • addresses the interventions that the research incorporates or develops to address ethical concerns in datasets, software processes, or theoretical approaches

Experiments

  • displays and discusses evaluative metrics and data used as validation strategies the projects
  • clearly defines thresholds for success, and discusses the outcomes of experiments relative to them
  • discusses any threats to validity that remain from the original summary of the research or those introduced by any approaches or data used in the these research and implementation process

Conclusion

  • provides a summary of your research and experimental outcomes
  • proposes, where applicable, future areas of work or research indicated by the conclusion of this research
  • includes an evidence- or results-based appraisal of ethical issues left unresolved or created by research

Tagging

Since this repository primarily contains LaTeX source code, the GitHub Actions configuration for it will compile the source code and automatically release a PDF of the main file whenever the last commit is associated with a Git Tag.

This will build a PDF file available in the "Releases" listing for this repository. All release numbers for your writing in this repository should adhere to the Semantic Versioning standard expected of GitHub projects. Here this means that:

  • Major version releases feature a tag number change reflecting full releases; generally these start at 1.0.0
  • Minor version releases indicate small changes or additions to documents; typically these increment the second digit in the version (e.g. 1.1.0)

Please note that your readers will only read the PDF generated from "tagged" releases of the file SeniorThesis.pdf that has a version number greater than 1.0.0.

That is:

  • if your commit is tagged SeniorThesis-chompers-1.0.0, then
  • the file SeniorThesis.pdf should be available for download in the "Releases" tab in your GitHub repository for this project under the name SeniorThesis-chompers-1.0.0.

To ensure you can create a release appropriately, make a single small change to the SeniorThesis.tex and:

  1. commit your file using a git commit command
  2. create your first tag for this repository: type git tag senior_thesis-YOUR_USERNAME-0.1.0.
  3. You are now ready to push your changes with the tag number using git push -u origin main --tags

The above steps should build a version of your project.

When you make subsequent changes to your files and perform commits and you are ready to release a new version of SeniorThesis.pdf, then you should again tag your work before a push command with a tag that adheres to the Semantic Versioning standard.

Each time that you correctly execute this sequence of commands you will release a new version of your document to GitHub that is easily accessible as a PDF to you and to your first and second readers.

Updates

If a course instructor updates the provided material for this assignment and you would like to receive these updates, then you can type this command in the main directory for this assignment:

git remote add download [email protected]:allegheny-computer-science-thesis-2021/cmpsc-dept-thesis.git

You should only need to type this command once; typing the command additional times may yield an error message but will not negatively influence the state of your repository. Now, you are ready to download the updates provided by the course instructor by typing:

git pull download main --allow-unrelated-histories

This second command can be run whenever the faculty need to provide you with new source code for this assignment. However, please note that, if you have edited the files that the course instructor updated, running the previous command may lead to Git merge conflicts. If this happens, you may need to manually resolve them with the help of the instructor or a teaching assistant.

Problems

If you have found a problem with this assignment's provided source code, then you can go to the Computer Science 600/610 Thesis starter repository and create an issue by clicking the "Issues" tab and then clicking the green "New Issue" button. To ensure that your issue is properly resolved, please provide as many details as is possible about the problem that you experienced.

Students who find, and use the appropriate GitHub issue tracker to correctly document, a mistake in any aspect of this laboratory assignment will receive free laptop stickers and extra credit towards their grade for it.

Assistance

If you are having trouble completing any part of this project, then please talk with your first reader. In particular, if you have questions about your research project, please see your first reader. Alternatively, you may ask questions in the Slack channel for this course.

senior-thesis-afluent-2022's People

Contributors

github-classroom[bot] avatar

senior-thesis-afluent-2022's Issues

Feedback on Senior Thesis Chapters

Hello @noorbuchi!

Once you return for the Spring 2022 semester and we resume meeting during office hours and in CMPSC 610 you should schedule a meeting so that we can go over your senior thesis chapters from CMPSC 610. In the meantime, here is some brief feedback that will help you to see ways in which you can improve the material that you submitted as part of your grade in CMPSC 600.

  • The thesis chapters were correctly released on GitHub.
  • You did not write an abstract for the thesis which makes it hard to see the submitted chapters in their appropriate context.
  • The first chapter of your thesis is too short; you should work with your thesis readers to identify and prepare new content.
  • The second chapter of your thesis is also too short; again, you should work with your thesis readers to identify ideas for new content.
  • Your chapters contained a lot of boilerplate content that should be updated or deleted from the thesis.
  • The motivation for deciding to use your proposed approach is still not clear; more details are needed on this topic.
  • Please make your own motivating example instead of using an existing example in Figure 1.6.
  • At a later stage, the thesis chapters would benefit from a technical diagram that explains the overall tool architecture.
  • Going forward, please make the project's experiment design and evaluation metrics very clear.

Okay, I look forward to seeing you again during the Spring 2022 semester! Please keep in touch if you have any questions about the senior thesis research experience in the Computer Science Department at Allegheny College.

Feedback After Your Senior Thesis Defense

Hello @noorbuchi, as @mariakimheinert and I promised, here is some feedback about your senior thesis. We encourage you to make some small improvements to your document so that you can complete the highest quality document possible.

Our suggestions are as follows:

  • When there are other potential ways to configure some aspect of AFLuent, please make sure that you mention those alternatives and then refer to them explicitly when you are writing about future work to further study the tool.
  • Your thesis contains several different types of graphs. Please make sure that the description of each type of graph is provided inside of your thesis so as to ensure that the document is entirely self-contained. Overall, the goal is for you to explain the meaning of each graphical element, color, and symbol inside of the graph.
  • Please carefully check your document for small mistakes in writing and formatting. For instance, you write "p value" when it is more appropriate to write "p-value".
  • Please carefully check all of the references in your thesis as there are several small mistakes. For instance, you need to make sure that words like "Stack Overflow" and "Python" are capitalized correctly. You should also ensure that months of the year are correctly spelled out and capitalized and, overall, that all of the references have a consistent format.
  • When your thesis reports on measure(s) of efficiency you should make it more clear as to what you measured for efficiency, how you conducted that type of measurement, and the limitations for that type of measurement. If part of your future work involves more experimentation to study efficiency then you should make that more clear in your future work section.
  • Some of the ideas in your future work section seem inspired by prior work in the field of fault localization. As such, you should reference some of the papers that, for instance, have reported on human studies of fault localization techniques.
  • Your future work also mentions a "larger sample" of projects. Your thesis should explicitly state the types of projects you suggest should be included in any follow-on experiments. We can talk about this during an office hours meeting as I have some ideas for new subjects.
  • Finally, the thesis document itself should make a prominent reference to the GitHub repository that contains the source code and documentation for your Pytest plugin. I suggest that you make an organization on GitHub specifically for the project and then invite @mariakimheinert and I to be collaborators on the project and the organization. We can help you with small tweaks to the documentation before we release the final version of your tool and write a paper about it to the Journal of Open Source Software!

Overall, congratulations, you have done a very good job on your senior thesis research so far! ๐Ÿš€

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.