|
Lecture 1 Notes
- Introduce self.
- CS97 is about research in computer science.
- Topic for this year is dynamic analysis.
- What is dynamic analysis good for? Examples:
- Debugging
- Profiling
- Sandboxing/security monitoring
- JIT compilation
- Crash resistance
- System virtualization
- Automatic test generation
- Software archeology
- Forensics
- Why is dynamic analysis interesting and important?
- Software complexity has increased to the point that it
is infeasible for humans or tools to understand the behavior
of many applications by simply examining the source code.
- Many new tools and techniques have come about in the last decade.
- Course logistics:
- About evenly split between reading papers and doing a project.
- There are also some easy "labs" that are just there to
familiarize you with a few dynamic analysis tools.
- Approximately one paper per class meeting.
- You will submit a few questions for each paper no later than 24
hours before we are scheduled to discuss it.
- Here are the details about how
you are expected to read and respond to papers.
- Project in teams of two.
- Start looking for a partner right away; maybe use Piazza.
- Proposal, milestones, presentation, final report.
- Scheduled lab time will be used primarily for milestone
meetings.
- Computer systems, a refresher.
- You should be familiar with all of this from CS31.
- This year CS97 is kind of CS31++; sorry to the theory folks in the
crowd.
- If you are shaky on this systems stuff, do not team up
with someone who is similarly shaky for the project. I will ask you
about this when you tell me who is on your team.
- The pieces:
- Assembly (/machine) code
- Processes
- Virtual memory
- Stack
- Heap
- Compiling
- Procedures
- Objects
- Higher-order functions
- Linking
- System calls
- Signals
- Threads
- Papers
|
|