All of the final reports have been bundled together into a single document. If you would like your report to be posted here on its own, let Ben know.
In CS97 you will learn about what goes on in the world of computer science research. You will read research papers, work on your own original project, and communicate about your own and others' work in multiple formats. This will help you know if a research career is a good fit for you, and you will have taken the first step towards becoming an independent researcher. Even if you do not pursue a career in research, this class will help you learn some of the skills needed to be an effective technical leader. Along the way you will learn about one of the cool topics that fits under the big tent of computer science research.
Instructor: Benjamin Ylvisaker
Textbook: None. Papers, tutorials, lectures, etc will be assigned.
Piazza for questions and answers, discussion, polls, etc. You are strongly encouraged to post course-related questions on Piazza (as opposed to emailing them to the instructor). Piazza supports posting publicly, anonymously (to the class, but still identifiable to instructors) and privately to the instructor(s). Obviously you are welcome to email or drop by for more private questions.
During the first few weeks, the lab sessions will be used for simple exercises to familiarize you with a few important tools. Subsequently, that time will be reserved for milestone meetings and presentations. Each team will have approximately 18 minutes to meet with the instructor. When you are not actively meeting, you are encouraged to work on your project. If there are enough resources, you're welcome to be in the lab during the "other section's" schedule time.
Office hours: MWF 8:30-9:30, 10:30-11:30.
If you want to schedule an appointment at another time, please check Ben's work calendar first, then send an email with a specific time request.
Ben is generally opposed to the available-for-work 24/7 approach to life. This means that he is generally disinclined to schedule meetings outside of normal-ish work hours (roughly M-F, 8am-6pm). Also, if you send email or post to Piazza in the evening or during the weekend, there is a very good chance it will go unread until the next work morning. Do not send last-minute emails in the middle of the night expecting a response. See this essay for a nice discussion of these issues.
All handins will be done via git repositories. Details TBA.
This year in CS97 we will look at using dynamic analysis tools to improve software quality. By software quality we mean generic "good things" we would like to be able to say about our software, such as:
Dynamic analysis tools include anything that monitors (and potentially modifies) the behavior of software as it is running. This is a very broad group of tools. Well-known tools like debuggers and profilers have been used approximately as long as people have been programming. In the last decade or so the need for more sophisticated dynamic analysis tools has increased, and researchers have responded with a new crop of awesome tools.
The need for fancier dynamic analysis tools has increased hand-in-hand with the general complexity of commodity software. It is now common for applications to consist of multiple components running on different computers, each of which is cobbled together from dozens of packages written in different programming languages by hundreds of programmers working for different organizations scattered across the globe. In this modern software engineering landscape it is challenging to achieve a tolerable level of confidence that your software actually does what its stakeholders expect it to do.
Modern dynamic analysis tools give us a way to understand what's going on under the hood and have a fighting chance at fixing problems without needing to completely understand the whole system.
Disability AccommodationIf you believe that you need accommodations for a disability, please contact Leslie Hempling in the Office of Student Disability Services (Parrish 113) or email firstname.lastname@example.org to arrange an appointment to discuss your needs. As appropriate, she will issue students with documented disabilities a formal Accommodations Letter. Since accommodations require early planning and are not retroactive, please contact her as soon as possible. For details about the accommodations process, visit the Student Disability Service website at http://www.swarthmore.edu/student-life/academic-advising-and-support/student-disability-service.xml. You are welcome to contact the instructor privately to discuss your academic needs. However, all disability-related accommodations must be arranged through Leslie Hempling in the Office of Student Disability Services.
This is the department policy on academic integrity. Some of the details are more relevant to introductory courses. Below you will find some CS97-specific amendments.
Academic honesty is required in all your work. Under no circumstances may you hand in work done with (or by) someone else under your own name. Your code should never be shared with anyone; you may not examine or use code belonging to someone else, nor may you let anyone else look at or make a copy of your code. This includes, but is not limited to, obtaining solutions from students who previously took the course or code that can be found online. You may not share solutions after the due date of the assignment.
Discussing ideas and approaches to problems with others on a general level is fine (in fact, we encourage you to discuss general strategies with each other), but you should never read anyone else's code or let anyone else read your code. All code you submit must be your own with the following permissible exceptions: code distributed in class, code found in the course text book, and code worked on with an assigned partner. In these cases, you should always include detailed comments that indicates on which parts of the assignment you received help, and what your sources were.
Failure to abide by these rules constitutes academic dishonesty and will lead to a hearing of the College Judiciary Committee. According to the Faculty Handbook: "Because plagiarism is considered to be so serious a transgression, it is the opinion of the faculty that for the first offense, failure in the course and, as appropriate, suspension for a semester or deprivation of the degree in that year is suitable; for a second offense, the penalty should normally be expulsion."
The spirit of this policy applies to all course work, including code, homework solutions (e.g., proofs, analysis, written reports), and exams. Please contact me if you have any questions about what is permissible in this course.
In CS97 there is some individual work, like the labs at the beginning of the semester and the research paper responses. For these items, you must do your own work. However, the main focus of the course is your project. The standard policies prohibiting copying do not really apply, because everyone's project will be different. Please, share code, slides, LaTeX templates, etc to whatever extent will make you more productive. However, in CS97 it is critical that you acknowledge your sources.
Past CS97 Offerings ...
... in case you're curious.