Docs
Course documents
Readings
- Nick Feamster, Presenting a Technical Talk
- Nick Feamster, Storytelling 101: Writing Tips for Academics
- Stephen Pinker, Why Academics Stink at Writing
- How to write a scientific abstract in six easy steps
- ACM Code of Ethics and Professional Conduct
- Copyright basics
Lawrence Lessig, In defense of piracy
Rachel Thomas, If you think women in tech is just a pipeline problem, you haven’t been paying attention
Assignments
I will not be using Moodle for this course; you should turn in all of your assignments on paper.
Project proposal
First draft due Tuesday, August 29.
Your project proposal should be about 1–2 pages. Your proposal should answer the questions:
- What is the background to your project, that is, what is the problem or question that motivates your project?
- What do you propose to do? Be specific.
- What is the timeline for your project? What are the different components and when will you aim to have them done? Be specific: your timeline should be in bullet point form with specific dates.
- What are your goals? In other words, how will you know if your project is successful?
In addition, if you wish to do a year-long thesis project you should indicate this in your proposal.
Final proposal due Tuesday, September 5. (Last day for committing to a year-long thesis project.)
After receiving feedback on your initial proposal, you should turn in a revised version that takes the feedback into account.
Along with your revised proposal, you should turn in a “work plan”, up to 1 page explaining how you will make time to work on your capstone or thesis project. Be as specific as possible. Be creative in coming up with very specific ways to help yourself succeed. Some examples:
- Horrible: “I will work on my project 5 hours per week.” This plan gets an F.
- Bad: “I will work on my project from 2-4pm every Tuesday before lacrosse practice, and from 9-noon every Sunday.” Better, but still probably a D.
- Better: “Every Tuesday from 2-4pm before lacrosse practice, I will go to Blue Sail which is a good distraction-free place for me to work. I will turn off my phone. For the first 4 weeks of the semester I will spend those two hours doing background reading; I will print papers I want to read ahead of time and write notes in the margins as I read. On Sundays, …” and so on. Probably a B.
- I will leave you to imagine what an A plan looks like.
Note that after September 5 you may not “upgrade” a semester project into a year-long thesis; however, the opposite is always an option: if you start out doing a year-long thesis but decide by the end of the semester that you do not wish to continue, you may “downgrade” it to a semester capstone project with no penalty.
Resume/CV
Due: Thursday, August 31
You should make either a resume or a curriculum vitae (CV). A resume is appropriate if you are interested in obtaining a non-academic job. A CV may be appropriate if you intend to apply to graduate schools.
You should bring four printed copes of your resume or CV to class on September 1.
Here are a few resources explaining what should go in a resume or a CV:
There are tons of other explanations and examples online; just search for more examples.
Cover letter
Due: Thursday, September 14
You should write a one-page cover letter, tailored to a particular type of opportunity. If possible, you should find a specific job advertisement or graduate program you are interested in, and tailor your cover letter to that.
You should bring four printed copies of your cover letter to class. You should also bring a printed copy of the job advertisement or graduate program you are targeting. If you are not targeting a specific opportunity, then you should bring a 1-paragraph description of the sort of opportunity you intend to target.
Classic literature presentation
Sometime prior to your chosen date, you should meet with the other student who is also signed up for that date:
- Each of you should give the other a practice version of your talk.
- Give each other constructive feedback to improve the talk, and write down some notes (ideally typed) about what you discussed. It does not have to be long or even use complete sentences. I am just looking for evidence that you met and that you were thinking carefully about the feedback you gave each other. You should turn in this feedback along with your talk.
On your chosen date,
- You will give your (now revised) talk to the class. Your talk should take no more than seven minutes. Yes, I will use a timer, and yes, I will cut you off after seven minutes!
- You should turn in a 2-page summary/review of your chosen paper/article/book. What are the main points? What did you learn from it? Why is it important? Do not merely summarize!
Here is a list of suggested classic papers or books in computer science you could choose to present:
- No Silver Bullet: Fred Brooks
- The Mythical Man-Month: Fred Brooks (the department has a copy)
- Go To Statement Considered Harmful: E. Dijkstra
- Computing Machinery and Intelligence: A.M. Turing
- On the Criteria to be Used in Decomposing Systems into Modules: D.L. Parnas
- Report on the Algorithmic Language ALGOL 60
- Design Principles Behind Smalltalk: Daniel Ingalls
- Revenge of the Nerds: Paul Graham
- Free Culture: Lawrence Lessig (you can also borrow a phyiscal copy from me)
- Cramming More Components onto Integrated Circuits: Gordon Moore
- The Cathedral and the Bazaar: Eric S. Raymond (borrow a physical copy from me)
- Can Programming be Liberated from the Von Neumann Style?: John Backus
- Notes on the Analytical Engine: Ada Augusta, Countess of Lovelace (you probably only want to look at the “Notes by the Translator”, which are actually written by Ada Lovelace)
- The Early History of Smalltalk: Alan Kay
- Mindstorms: Children, Computers, and Powerful Ideas: Seymour Papert
- Reflections on Trusting Trust: Ken Thompson
- Time, Clocks, and the Ordering of Events in a Distributed System: Leslie Lamport
See also this list by Michael Eisenberg. Not everything on that list is appropriate/feasible: ask me if something on that list catches your fancy.
If there is a particular area of computer science you are interested in, you are also encouraged to try to find a seminal paper in that field to present, or to ask one of the CS faculty for help in identifying an appropriate paper in that area.
Resources
Career resources
- ARTechJobs, a site with a growing number of tech job postings from the state.
- Google Tech Dev Guide. Google’s guide to pursuing a career in tech development, including learning resources and an interview prep guide.
- Google YouTube Live playlist, featuring presentations with various advice for students.
Resumes, CVs, and cover letters
A few resources explaining what should go in a resume or a CV:
There are tons of other explanations and examples online; just search for more examples.
LaTeX
You must write your capstone project or thesis document using LaTeX on the ShareLaTeX site. You are encouraged, but not required, to complete other writing assignments using LaTeX as well.
- Here are some example LaTeX documents:
- small2e.tex
- sample2e.tex
- A short example of how to use LaTeX for scientific reports by Stephen J. Eglen
The LaTeX wikibook is a good comprehensive reference.
The Not-so-short introduction to LaTeX is another good comprehensive reference.
Here is a list of LaTeX math symbols.
Detexify lets you draw a symbol and then tells you likely LaTeX commands to produce it.
The LaTeX Table Generator lets you easily generate LaTeX tables via a visual editor.
- To install LaTeX on your own computer, use one of these:
Capstone paper/thesis
- Here is a template you can use as a basis for your capstone paper. Note, if you are doing a semester-long project, you should change the word “thesis” to “capstone project”.