CSCI 440: Capstone in Computer Science — Spring 2013

Course Syllabus

Instructor

Joel Ross
email: jross@pugetsound.edu
office: Thompson 405
phone: x3558

Class Meetings

Mon/Wed/Fri 3:00pm to 3:50pm (Thompson 399)
Note that we will not be meeting for all lecture days (see Schedule below).

Website: http://cs.pugetsound.edu/~jross/courses/cs440/
Moodle: https://moodle.pugetsound.edu/moodle/course/view.php?id=5557

Office Hours

Mon through Fri 11:00am to 12:00pm, whenever my office door is open, or by appointment.

Scheduled lecture time when we aren't meeting as a class can be considered office hours in which this class has highest priority.

Course Description

The senior capstone course provides computer science majors the opportunity to integrate the knowledge that they have gained from across the curriculum. Students are encouraged to work in teams, and can pursue either an applied or theory project. Students choosing applied projects participate in the identification of a problem, develop a project proposal outlining an approach to the problem's solution, implement the proposed solution, and test or evaluate the result. Students choosing a theory project conduct original research (e.g., develop a new algorighm) and evaluate its strengths and limitations. Regardless of the choice of project, students document their work in the form of written reports and oral presentations.

Prerequisites: Senior class standing, CSCI 240, CSCI 361, or permission of instructor.

Textbook

There is no single textbook for this course. Assigned readings are available via https://moodle.pugetsound.edu/moodle/course/view.php?id=5557.

Resources

This course will involve a decent amount of writing. You should consider utilizing the Writing Center, particularly as you prepare your final report.

Papers in this course will be written following the ACM SIG format.

I recommend using a citation manager for finding references. Zotero and Mendeley are both good choices. Zotero even has an ACM SIG style plugin for easily formatting citations to match!

Course Goals

After completing this course, a student will be able to:

Course Components

Project

The main component of this course is the completion of an independent development or research project. Students will work either individually or in small teams to complete a project of their choosing over the course of the semester (indeed, students' project must be chosen and approved by the time the course begins). Much of scheduled lecture time will be given to students to work.

Deliverables

There will be 3 main deliverables associated with this project, taking the form of oral presentations and written reports:

More details about these deliverables can be found through the above links. These deliverables are intended to (a) provide students with an opportunity to practice formally presenting their work and (b) help keep projects on track over the course of the semester.

Discussants

Each presentation will be accompanied by class discussion of each project. These discussions will be led by a student discussant (assigned in advance) who is in charge of leading the discussion. The discussant's job is basically to take point on providing feedback, raising questions, and otherwise responding to the presenter. The discussant will need to read the report/presentation carefully in advance, and be prepared to respond to the presenter. The discussant should focus on (a) providing the presenter with constructive feedback on their presentation and work, and (b) raising questions and spuring discussion of the work presented. Your goal is not to critize the project, but rather to offer alternative views that may help to improve it or add further depth to our understanding. More details about the discussant's role can be found in the descriptions of the deliverables.

Readings

As a supplement to the project and as a way of integrating and reflecting on what you've learned in previous courses, we will also be discussing a number of "classic" readings (at least as determined by the instructor) in the field of computer science.

We will be reading one or two pieces each week and discussing them each Friday during lecture. By the preceding Thursday (midnight) of each week, students will be required to have read the week's reading and to post a short (~300 word) response to that reading on the appropriate "Reading Responses" Moodle forum (each student should add a "new discussion" to the forum; you are welcome to additionally respond to other people if you wish!) These responses are to indicate that you've done the reading, as well as to provide a place to note your thoughts and impressions and provide a start for our discussion on Friday. Your response might answer questions such as:

Note that the readings responses are not intended to take much time, but are aimed to encourage you to think about and analyze the readings.

Course Policies

Respect

This class will be highly discussion focused. We will be analyzing and critiquing other students' work. We will likely talk about topics on which you and your classmates may have differences in opinion. All discussion in this class should be respectful of others, both of their work and of their opinions. Be respective and constructive in your comments at all times.

Correspondence

I may send out course announcements by email, so you should check your email daily. Note that this email will go to your pugetsound.edu address. If you prefer to read your email on another account, you should set your Pugetsound account to forward your email to your preferred account (see http://www.pugetsound.edu/files/resources/6291_ForwardWebmail.pdf).

When emailing me, please try to use proper grammar and make sure to sign your emails! This will let me know who is writing, and will help me to better answer any questions.

My office hours are listed above. I am more than happy to meet and talk about the course or your project at any time.

Attendance

Class will begin and end on time. Please do your best to get to class before the start of the hour. We aren't meeting every session and when we do meet we'll be doing discussions that will require you to be in class!

Technology in Class

Please silence all cell phones/pagers/etc. before the beginning of each class. Laptops are allowed in class, but only for class purposes: please do not use class time (lecture or lab) to check your email, update your Facebook, read reddit, make LOLCats, etc. Be respectful of other people, and give your classmates your full attention during their presentations.

Late Work

There are very few deliverables in this class, and we're on a pretty strict timeline. Late assignments will not be accepted. If it looks like you will miss a due date, let me know ASAP.

Academic Honesty

Please review the Academic Honesty Policy in the Student Handbook, and ask the instructor if you have any questions regarding its application to this course. The consequences of academic dishonesty are not worth the risks. The simple rule is: do not claim anyone else's work, code, words, or ideas as your own. If you're in doubt, come talk to me in advance.

Special Accommodations

Academic accommodations are available for students with disabilities who are registered with the Office of Disability Services. If you have a physical, psychological, medical or learning disability that may impact your course work, please contact Peggy Perno, Director of Disability Services, 105 Howarth, 253.879.3395. She will determine with you what accommodations are necessary and appropriate. All information and documentation is confidential.

I also encourage all students having difficulty, whether or not due to a disability, to consult privately with me at any time.

Emergency Procedures

Please review university emergency preparedness and response procedures posted at www.pugetsound.edu/emergency/. There is a link on the university home page. Familiarize yourself with hall exit doors and the designated gathering area for your class and laboratory buildings.

If building evacuation becomes necessary (e.g. earthquake), meet your instructor at the designated gathering area so she/he can account for your presence. Then wait for further instructions. Do not return to the building or classroom until advised by a university emergency response representative.

If confronted by an act of violence, be prepared to make quick decisions to protect your safety. Flee the area by running away from the source of danger if you can safely do so. If this is not possible, shelter in place by securing classroom or lab doors and windows, closing blinds, and turning off room lights. Stay low, away from doors and windows, and as close to the interior hallway walls as possible. Wait for further instructions.

Course Schedule

Below is a planned schedule of readings and presentations. This schedule is subject to change; all changes will be announced in class, and I will do my best to keep this schedule updated.

Overall, we will be meeting on Fridays, and on presentation and check-in days indicated on the calendar.

Week Date Meetings Reading (available via Moodle)
1 01/23 check-in Wed
2 01/28 Proposal Presentations Mon & Wed Lovelace, Ada A. 1842. "Notes on 'Sketch of the Analytical Engine Invented by Charles Babbage, by LF Menabrea'". [Note A only]. Reprinted at: http://www.fourmilab.ch/babbage/sketch.html
3 02/04 Proposal Presentations Mon Light, Jennifer S. 1999. "When Computers Were Women." Technology and Culture 40 (3) (July 1): 455–483. doi:10.2307/25147356.
4 02/11 Bush, Vannevar. 1945. "As We May Think." The Atlantic Monthly 176 (1): 101–108.
5 02/18 check-in Wed Hayles, N. Katherine. 1999. "Contesting for the Body of Information: The Macy Conferences on Cybernetics." In How We Became Posthuman: Virtual Bodies in Cybernetics, Literature, and Informatics. University of Chicago Press.
6 02/25 Naur, P (editor). 1963. "Report on the Algorithm Language ALGOL 60." Commun. ACM 6 (1) (January): 1–17. doi:10.1145/366193.366201.
7 03/04 Dijkstra, Edsger W. 1965. "Solution of a Problem in Concurrent Programming Control." Commun. ACM 8 (9) (September): 569–. doi:10.1145/365559.365617.
Dijkstra, Edsger W. 1968. "Go to Statement Considered Harmful." Commun. ACM 11 (3) (March): 147–148. doi:10.1145/362929.362947.
Dijkstra, Edsger W. 1972. "The Humble Programmer." Commun. ACM 15 (10) (October): 859–866. doi:10.1145/355604.361591.
8 03/11 check-in Wed Shustek, Len. 2008a. "Interview: The ‘Art’ of Being Donald Knuth." Commun. ACM 51 (7) (July): 35–39. doi:10.1145/1364782.1364794.
Shustek, Len. 2008b. "Interview: Donald Knuth: A Life’s Work Interrupted." Commun. ACM 51 (8) (August): 31–35. doi:10.1145/1378704.1378715.
Knuth, Donald E. 1974. "Computer Programming as an Art." Commun. ACM 17 (12) (December): 667–673. doi:10.1145/361604.361612.
Spring Break
9 03/25 Von Neumann, John. 1951. "The General and Logical Theory of Automata." In Cerebral Mechanisms in Behavior; the Hixon Symposiu, 1–41. Oxford, England: Wiley.
10 04/01 Progress Reports Mon & Wed Turing, Alan M. 1950. "Computing Machinery and Intelligence." Mind 59 (236) (October 1): 433–460. doi:10.2307/2251299.
11 04/08 Progress Reports Mon & Wed Newell, Allen, and Herbert A. Simon. 1976. "Computer Science as Empirical Inquiry: Symbols and Search." Commun. ACM 19 (3) (March): 113–126. doi:10.1145/360018.360022.
12 04/15 Agre, Philip. 1997. "Toward a Critical Technical Practice: Lessons Learned in Trying to Reform AI." In Social Science, Technical Systems, and Cooperative Work: Beyond the Great Divide. Erlbaum.
13 04/22 Weiser, Mark. 1995. "The Computer for the 21st Century." Scientific American 272 (3): 78–89.
Bell, Genevieve, and Paul Dourish. 2006. "Yesterday’s Tomorrows: Notes on Ubiquitous Computing’s Dominant Vision." Personal and Ubiquitous Computing 11 (2): 133–143. doi:10.1007/s00779-006-0071-x.
14 04/29 Latour, B. 1992. "Where Are the Missing Masses? The Sociology of a Few Mundane Artifacts." In Shaping Technology/Building Society, 225–258. Cambridge, MA: MIT Press.
15 05/06 Presentation (Mon) Final Presentations May 05!
Finals 05/15 No final or meetings! Final Papers due Fri May 17, 5pm.