Computing Disciplines & Careers Homeworkwds/classes/cdc/Homework/Homework.pdf · Class meets in...

23
DEPARTMENT OF COMPUTER SCIENCES COLLEGE OF ENGINEERING FLORIDA TECH COMPUTING DISCIPLINES & CAREERS HOMEWORK WILLIAM SHOAFF FALL 2012

Transcript of Computing Disciplines & Careers Homeworkwds/classes/cdc/Homework/Homework.pdf · Class meets in...

Page 1: Computing Disciplines & Careers Homeworkwds/classes/cdc/Homework/Homework.pdf · Class meets in Olin Engineering 118 from 12:00 p.m. to 12:50 p.m. Monday Tuesday Wednesday Thursday

D E PA R T M E N T O F C O M P U T E R S C I E N C E SC O L L E G E O F E N G I N E E R I N G

F L O R I D A T E C H

C O M P U T I N GD I S C I P L I N E S& C A R E E R SH O M E W O R K

W I L L I A M S H O A F F FA L L 2 0 1 2

Page 2: Computing Disciplines & Careers Homeworkwds/classes/cdc/Homework/Homework.pdf · Class meets in Olin Engineering 118 from 12:00 p.m. to 12:50 p.m. Monday Tuesday Wednesday Thursday
Page 3: Computing Disciplines & Careers Homeworkwds/classes/cdc/Homework/Homework.pdf · Class meets in Olin Engineering 118 from 12:00 p.m. to 12:50 p.m. Monday Tuesday Wednesday Thursday

Network Professionally 7

Build Your Résumé 9

Plan Your Degree 11

Read and Write about Computing 15

Bibliography 21

Page 4: Computing Disciplines & Careers Homeworkwds/classes/cdc/Homework/Homework.pdf · Class meets in Olin Engineering 118 from 12:00 p.m. to 12:50 p.m. Monday Tuesday Wednesday Thursday

4 department of computer sciences

college of engineering

florida tech

Submission Information

Submit your homework using Angel drop boxes found under the Course Material tab.

Homework can be submitted before the due date. Late submissions will not be accepted unlessyou have a written, verifiable excuse that is acceptable to the instructor.

Class Calendar and Due Dates

Weekly Schedule — Subject to Change

Class meets in Olin Engineering 118 from 12:00 p.m. to 12:50 p.m.

Monday Tuesday Wednesday Thursday Friday

Aug 20th 21st 22nd 1

Introduction

23rd 24th

27th 28th 29th 2

Mission,Objectives, &Outcomes

30th 31st

Sep 3rd

Labor DayHoliday

4th 5th 3

ComputingHistory

6th 7th

First ActivityReport Due

10th 11th 12th 4

ComputingProgramming

13th 14th

17th 18th 19th 5

Intern Panel

20th 21st

RésuméDue

24th 25th 26th 6

Employer Panel

27th 28th

Oct 1st 2nd 3rd 7

ComputingDisciplines

4th 5th

8th

Fall Break

9th

Fall Break

10th 8

ComputingDisciplines

11th 12th

Second ActivityReport Due

15th 16th 17th 9

ProfessionalResponsibility

18th 19th

Page 5: Computing Disciplines & Careers Homeworkwds/classes/cdc/Homework/Homework.pdf · Class meets in Olin Engineering 118 from 12:00 p.m. to 12:50 p.m. Monday Tuesday Wednesday Thursday

computing disciplines & careers homework 5

Monday Tuesday Wednesday Thursday Friday

22nd 23rd 24th 10 25th 26th

Degree PlanDueLast WithdrawDate

29th 30th 31st 11 Nov 1st 2nd

5th 6th 7th 12 8th 9th

Third ActivityReport Due

12th

Veterans DayHoliday

13th 14th 13 15th 16th

19th 20th 21st

ThanksgivingHoliday

22nd

ThanksgivingHoliday

23rd

ThanksgivingHoliday

26th 27th 28th 14

Review

29th 30th

Term PaperDue

Dec 3rd 4th 5th 15

Exam12:00-12:50

6th

Study Day

7th

Study Day

10th

Final ExamWeek

11th

Final ExamWeek

12th

Final ExamWeek

13th

Final ExamWeek

14th

Final ExamWeek

Page 6: Computing Disciplines & Careers Homeworkwds/classes/cdc/Homework/Homework.pdf · Class meets in Olin Engineering 118 from 12:00 p.m. to 12:50 p.m. Monday Tuesday Wednesday Thursday
Page 7: Computing Disciplines & Careers Homeworkwds/classes/cdc/Homework/Homework.pdf · Class meets in Olin Engineering 118 from 12:00 p.m. to 12:50 p.m. Monday Tuesday Wednesday Thursday

Network Professionally

Participation in computing activities will expand your

professional network.

Purpose

Establishing professional relationships is a type of “networking.” Professional networking will be valuableto your career and for achieving fulfillment from your work. College is a good place to develop networkswith fellow students, faculty, employers, and others.

You are to attend at least three computing activities throughout the term and write short reports on yourexperiences.

Computing Activities

There are several computing activities that occur at Florida Tech.

• Wednesday’s “Tea Party” @ 3:00 on the third floor of the Harris Center

• Thursday’s ACM Meetings @ 6:30 in Olin Engineering 130

• Friday’s Computer Science Seminar @ noon in the Olin Engineering Auditorium

• Friday’s Programming Practicum @ 4:00 in the Olin Engineering 229

• The Harris Institute for Assured Information and Space Coast Chapter of the Information Systems Secu-rity Association (ISSA) Lecture Series, the third Thursday of every month in the Harris Center, room 327

from 6:00 p.m. to 9:00 p.m.

• The Space Coast Dot Net User Group, the third Wednesday of every month at the Amovious office, 3900

Dow Road, Suite C at 6:30 p.m.

• The Harris Distinguished Lecturer Series in Assured Information

• IEEE Meetings, days, time and place to be determined

• The Southeast Regional ACM Programming Contest

• Presentations by campus recruiters from various companies

Other unscheduled events will happen. Keep alert. Listen to announcements of events on cs-forum.

Page 8: Computing Disciplines & Careers Homeworkwds/classes/cdc/Homework/Homework.pdf · Class meets in Olin Engineering 118 from 12:00 p.m. to 12:50 p.m. Monday Tuesday Wednesday Thursday

8 computing disciplines & careers homework

Your Assignment

Implement the following algorithm.

1. Participate in at least three computing activity throughout the semester.

2. Complete these activities by the due dates list in the calendar.

3. For each activity, write a brief report on your experience.

4. Submit your activity reports in the drop boxes found under the Course Material tab on the Angelpage for this course.

Page 9: Computing Disciplines & Careers Homeworkwds/classes/cdc/Homework/Homework.pdf · Class meets in Olin Engineering 118 from 12:00 p.m. to 12:50 p.m. Monday Tuesday Wednesday Thursday

Build Your Résumé

One reason students come to college is to prepare for a

career. To gain a job leading to a career you will need a r’esumétodocument your knowledge, skills, practical experience, and a otherfactors that will entice a company to interview and hire you.

Although students in this class may have little to include in ar’esumé, this will soon change. Now is the time to start developing ar’esumé, not just-in-time when you find you need one.

Resources

Abundant resources exist to help individuals create a r’esumé. For instance, Career Management Services(CMS) hosts r’esumébuilding web site and runs r’esuméwriting workshops. CMS also provides othercareer-building resources.

I’ve found the following web sites useful. You should be able to readily find other resources to help youplan your career.

• ACM Computer Careers

• Bourn College of Engineering Career Center Milestones

Your Assignment

Implement the following algorithm.

1. Visit the Career Management Services (CMS) web page. Down- http://www.fit.edu/career/

load and read the Experience “Student Guide” and then register inthe Experience eRecruiting Network.

2. Create a r’esumé. The CMS web page has resources for this.

3. Submit your r’esumé in the drop box found under the Course

Material tab on the Angel page for this course.

4. Participate in the Career Fair. See Career Management Services’ website for information on the Career Fair.

5. Complete this assignment the due date list in the calendar.

Page 10: Computing Disciplines & Careers Homeworkwds/classes/cdc/Homework/Homework.pdf · Class meets in Olin Engineering 118 from 12:00 p.m. to 12:50 p.m. Monday Tuesday Wednesday Thursday
Page 11: Computing Disciplines & Careers Homeworkwds/classes/cdc/Homework/Homework.pdf · Class meets in Olin Engineering 118 from 12:00 p.m. to 12:50 p.m. Monday Tuesday Wednesday Thursday

Plan Your Degree

In partial fulfillment of the requirements for the Bach-elor of Science degrees in Computer Science or Software

Engineering, you must pass certain required and elective

courses. In partial fulfillment of the requirements for the Bachelorof Science degrees in Computer Science or Software Engineering, youmust pass certain required and elective courses.

Learning something about required courses will help you committo the rigors of the programs. Learning about electives will help you Would you like to learn about

bioinformatics

computational science

computer forensics

computer games and simulations

computer security

environmental protection

medical informatics

mobile computing

robotics

social networking

something else?

tailor your degree to your particular goals. Ask yourself: What wouldI like to learn about? Discuss your goals with members of the faculty;they can advise you academically to help you realize your goals.Faculty advisers can also help with some non-academic problems.Please approach them when you need help.

Purpose

The purpose of this assignment is to help you to think about aca-demic topics that are or appear to be interesting to you. Assumptionsare that:

1. Computing is somehow involved with your interests.

2. Earning a bachelor’s of science degree in computer science orsoftware engineering will help you fulfill your interests.

3. You recognize that planning your academic career is beneficial.

Another important purpose of the assignment is for you to meet thefaculty and staff who can and will help you as you progress throughcollege.

Freshman Advisers

If you are a “first time in college” student with less than 30 credits, then you have a freshman adviser whowill help you select and schedule your courses for the Spring semester of the freshman year.

Page 12: Computing Disciplines & Careers Homeworkwds/classes/cdc/Homework/Homework.pdf · Class meets in Olin Engineering 118 from 12:00 p.m. to 12:50 p.m. Monday Tuesday Wednesday Thursday

12 computing disciplines & careers homework

Student Coordinator

Ms. Rosalyn Bursey is the Computer Sciences Department’s student coordinator. She maintains a programplan for each student. The program plan lists the required and elective courses along with their prereq-uisites. Recorded on the plan are the courses taken, when they were taken, and the grades earned. Also,transfer credits and extra courses are identified on the plan. Your program plan is used at graduation todocument satisfaction of degree requirements. Blank copies of program plans are posted on the depart-ment’s web site under the Academics tab.

Academic Faculty AdvisersYou are encouraged to meet everyone inthe department; it’s small.Every member of the faculty is here to help you advance through our

programs. Some particular member of the faculty has been assignedas your faculty academic adviser. Find out who your faculty adviseris from your freshman adviser or the student coordinator, Ms. Bursey. Queues of students can form during

registration periods. Registration fornext term starts shortly after the duedate for this assignment. To avoid longqueues, to provide better advice, tominimize out-of-service periods, allmembers of the faculty are availableto advise any student. Meet withthem during their office hours or byappointment.

Your Assignment

Implement the following algorithm.

1. Ponder your academic career.

2. Get a copy of your program plan from the student coordinator.

BACHELOR OF SCIENCE DEGREE PROGRAM (2012-2013 CATALOG)

COMPUTER SCIENCE (7071)

NAME STUDENT NO.:

ADDRESS TELEPHONE NO.:

ADVISOR E-MAIL

COMMENTS

COURSE # COURSE DESCRIPTIONS CR. YEAR GRADE

FRESHMAN YEAR – FALL SEMESTER

ASC 1000 University Experience 1

COM 1101 Composition and Rhetoric (Requirements: Passing grade on placement exam or

prerequisite course). Prerequisite: COM 0100 or COM 0110.

3

CSE 1001 Fundamentals of Software Development 1 (Requirements: Passing score on Calculus

Placement Test or prerequisite course). (CL) Prerequisite: MTH 1000

[MUST PASS WITH “C” OR BETTER]

4

CSE 1101 Computing Disciplines and Careers 1 1

CSE 1400 Applied Discrete Mathematics (Requirements: Passing score on the Calculus Readiness

Test, or prerequisite course). Prerequisite: MTH 1000.

3

Social Science Elective 3

TOTAL 15

FRESHMAN YEAR – SPRING SEMESTER

COM 1102 Writing about Literature (Prerequisite: COM 1101) 3

CSE 1002 Fundamentals of Software Development 2 (CL) (Prerequisite: CSE 1001)

(MUST PASS WITH A “C” OR BETTER)

4

CSE 2120 Computer Organization (Prerequisite: CSE 1001). [MUST PASS WITH A “C” OR

BETTER)

3

MTH 1001 Calculus 1 (Requirements: High school algebra and trigonometry, and a passing score

on the placement test, or prerequisite course). Prerequisites: MTH 1000.

4

Restricted Elective (Science) 3

TOTAL 17

SOPHOMORE YEAR – FALL SEMESTER

COM 2012 Research Sources and Systems (Prerequisite: COM 1102) 1

COM 2223 Scientific and Technical Communications (Prerequisite: COM 1102) 3

CSE 2010 Algorithms and Data Structures (Prerequisite: CSE 1002, CSE 1400 or MTH 2051.

[MUST PASS WITH A “C” OR BETTER]

4

MTH 1002 Calculus 2 (Prerequisite: MTH 1001) 4

BIO 1010

CHM 1101

PHY 1001

CHOOSE ONE sequence Biology, Chemistry, or Physics

Biological Discovery 1 (Requirement: High School biology and chemistry.)

General Chemistry 1

Physics 1 (Prerequisite: MTH 1001, MTH 1002. Co-requisite: MTH 1002) and PHY

2091 (Co-requisite: PHY 1001 or PHY 1999)

[One credit maybe applied toward Restricted Science Elective]

4

TOTAL 16

SOPHOMORE YEAR – SPRING SEMESTER

CSE 2050 Programming in a Second Language (Requirement: Instructor approval or prerequisite

course). Prerequisite: CSE 1502 or CSE 2120.

3

CSE 2410 Introduction to Software Engineering (Prerequisites: CSE 2010 or ECE 2552) 3

HUM 2051 Civilization 1: Ancient Through Medieval (Prerequisite: COM 1102) 3

HUM 2510 Logic (Prerequisite: COM 1101) 3

BIO 1020

CHM 1102

PHY 2002

COMPLETE sequence Biology, Chemistry, or Physics

Biological Discovery 2 (Requirement: High School biology and chemistry)

General Chemistry 2 (Prerequisite: CHM 1101)

Physics 2 (Prerequisite: PHY 1001) and PHY 2092 (Corequisite: PHY 2002) [One

credit maybe applied toward Restricted Science Elective]

4

3. If you have a freshman adviser, meet with them to determineyour class schedule for Spring 2012. If you do not have a freshmanadviser, meet with your academic faculty adviser to determineyour class schedule for Spring 2012.

4. Record the courses you will take in Spring 2012 on your programplan.

5. Meet with your faculty adviser to discuss your long-term aca-demic goals and courses on your program plan. Ask your faculty

Ms. Bursey ([email protected]), thedepartment’s Student Coordinator, cantell you who is your adviser.

adviser to send me an email stating they have met with you.

6. For electives in your program, record on your program plan thecourses you think you would like to take.

• What computing electives will you choose to take?

• What mathematics and science electives will you choose totake?

• What humanities, liberal arts, and social science electives willyou choose to take?

• What technical or business electives will you choose to take?

• You are not committing to take these courses, but you are learn-ing about options that you will have.

Page 13: Computing Disciplines & Careers Homeworkwds/classes/cdc/Homework/Homework.pdf · Class meets in Olin Engineering 118 from 12:00 p.m. to 12:50 p.m. Monday Tuesday Wednesday Thursday

plan your degree 13

7. Submit your degree plan in the drop box found under the Course

Material tab on the Angel page for this course.

8. Complete this assignment the due date list in the calendar.

Page 14: Computing Disciplines & Careers Homeworkwds/classes/cdc/Homework/Homework.pdf · Class meets in Olin Engineering 118 from 12:00 p.m. to 12:50 p.m. Monday Tuesday Wednesday Thursday
Page 15: Computing Disciplines & Careers Homeworkwds/classes/cdc/Homework/Homework.pdf · Class meets in Olin Engineering 118 from 12:00 p.m. to 12:50 p.m. Monday Tuesday Wednesday Thursday

Read and Write about Computing

Read about computing. To get you started, I’ve collected a fewreferences that I like and listed them below.

Write a short, two or three page, essays on your readings. Youressay must

1. Demonstrate that you read about computing

2. Be fluent

3. Have minimal grammatical, spelling, or syntactic errors

4. Demonstrate an ability to effectively use a document preparationtool to format your essay.

Recall Lipson’s three principles for academic integrity Lipson (2004).

1. “When you said you did it, you actually did.”

2. “When you use someone else’s work you cite it, When you usetheir word, you quote it openly and accurately.”

3. “When you present research materials, you present them fairlyand truthfully. That’s true whether the research involves data,documents, or the writing of other scholars.”

There are many well written papers and books on computing thatstudents new to the discipline can read and understand. Some otherpapers may be difficult to read, but still worth the effort to try andread them.

Alice’s Adventures in Wonderland by Lewis Carroll, is as Alan Perlissaid is “the best book on programming for the layman is Alice inWonderland; but that’s because it’s the best book on anything for thelayman.” Perlis could have also included Through the Looking-glass(Carroll et al., 2000).

Jon Bentley’s Programming Pearls (Bentley, 1986) and (Bentley,1988) are classic collections of articles on interesting and usefulcomputing topics. These articles originally appeared in the Com-munications of the ACM and can be found in the ACM Digital

Page 16: Computing Disciplines & Careers Homeworkwds/classes/cdc/Homework/Homework.pdf · Class meets in Olin Engineering 118 from 12:00 p.m. to 12:50 p.m. Monday Tuesday Wednesday Thursday

16 computing disciplines & careers homework

Library. If you can find it, Bentley’s Writing Efficient Programs is agood read (Bentley, 1982). The books Kernighan and Plauger (1978),Kernighan and Pike (1999), Hunt and Thomas (2000), and McConnell(1993) also inspire good programming practice. All papers in Beauti-ful Code Oram and Wilson (2007) are worth a look.

David Parnas and Peter Denning are prolific writers. They madesignificant discoveries in software engineering (Parnas, 1972), oper-ating systems (Denning, 1968), and the broad fields of computing.You’ll find many articles they have written, but I’ll only mention afew others. In (Parnas, 2010), Parnas discusses the 40 year struggleto find engineering methods for creating software. In (Parnas, 1996), The origins of software engineering

are traced to the 1968 NATO report byPeter Naur and Brian Randell (Naurand Randell, 1969). A follow-up 1970

report by Buxton and Randell outlinessoftware engineering techniques. The2000 conference proceedings (Finkel-stein, 2000) on the future of softwareengineering provides a more recentoverview of software engineering.

Parnas stresses the need to engineer software by following basicrules.

1. Design before implementing.

2. Document your design.

3. Review and analyze the documented design.

4. Review implementation for consistency with the design.

In (Denning, 2004), Denning offers another way to view the disciplineof computing: He argues it rests on computation, communication,coordination, automation, and recollection.

Much heavier books are Don Knuth’s classic volumes The Art ofComputer Programming (Knuth, 1997a,b) and (Knuth, 1998). You’llonly be able to read parts of these encyclopedic works, but you willlearn much from the effort. Knuth’s response to the go to contro-versy (Knuth, 1974) introduces interesting ideas about programming.

Fred Brooks is another interesting computer scientist and author.His Mythical Man-Month (Brooks, 1995) describes the developmentof IBM’s 360 operating system, an early complex software project.In (Brooks, 1987), Brooks argues there is no “silver bullet” to killthe werewolves that software projects become. Brook’s short pa-per (Brooks, 1996) gives his view of what a computer scientist is anddoes.

A. K. Dewdney’s The (New) Turing Omnibus: 66 excursions in com-puter science (Dewdney, 1993) describes many interesting conceptsand ideas in computer science: Algorithms, Finite Automata, Systemsof Logic, Gödel’s Theorem, Chomsky’s Hierarchy, Random Numbers,Computer Vision, Non-determinism, CAT Scanning, the Fast Fouriertransform, Turing machines, Computer Viruses, and many other 54other excursions.

Gödel, Escher, Bach: An Eternal Golden Braid by Doug Hofstadter (Hof-stadter, 1999) weaves the story of recursion in music, art, and logic

Page 17: Computing Disciplines & Careers Homeworkwds/classes/cdc/Homework/Homework.pdf · Class meets in Olin Engineering 118 from 12:00 p.m. to 12:50 p.m. Monday Tuesday Wednesday Thursday

read and write about computing 17

through the creations of original thinkers in these fields. The bookis long, but reading and reporting on portions of it will expand yourthoughts.

Code: The Hidden Language of Computer Hardware and Software (Pet-zold, 2000) by Charles Petzold offers a low-level look at computerorganization. It would be a good book to read to prepare for CSE2120 Computer Organization and Machine Language.

James Glick’s new book The Information: A History, a Theory, aFlood (Glick, 2011) posits that the “bit” is the fundamental particleof the universe. He offers an interesting tour of how information hasbeen encoded and communicated throughout history.

Kode Vicious writes for the ACM. You may find his articles inter-esting. Recent ones are referenced below.

Brian Hayes writes for the American Scientist. You may find hisarticles interesting too. For instance, his article titled “How ManyWays Can You Spell V1@gra?” (Hayes, 2007) may entice you to checkhim out. The random writings of Eric S. Raymond are fun too Ray-mond (2010).

Joel Spolsky writes, Joel on Software a blog where he’s been rant-ing about software development, management, business, and theInternet since 2000. Michael Cusumano and Richard Selby discusshow Microsoft develops software in (Cusumano and Selby, 1997).

I find quantum and biological computers fascinating ideas. Withthem you can execute non-deterministic algorithms greatly increas-ing in efficiency for hard problems. For instance, in 1994, LeonardAdleman1 demonstrated how to solve the Directed Hamiltonian Path

1 Yes, he is the “A” in the famous RSApublic-key encryption algorithm.(DHP) problem2 using biological operations (Adleman, 1994). Adle-2 Give a directed graph is there apath through it that visits every nodeonce and only once? For instance,the diagram below, from one of MarkDow’s pages on combinatorics shows aHamiltonian path on the 3-dimensionalcube.

man’s algorithm is non-deterministic and solves the NP-completeDHP in polynomial time. Equally as impressive, in 1994, PeterShor (Shor, 1994) proposed a quantum algorithm compute the primefactors of a natural number in polynomial time, making RSA encryp-tion vulnerable. Both papers are deep, but you can find introductoryarticles that explain the ideas in more simple terms, for example,(Bacon and van Dam, 2010) introduces quantum computing basicsand Fortnow (2009) describes current understanding of the P vs. NPproblem.

George Dyson has written an interesting history of early comput-ing called Turing’s Cathedral: The Origins of the Digital Universe (Dyson,2012). The rolls played John Von Neumann and the Institute for Ad-vanced Studies at Princeton University in the development of com-puters provide the framework for the story.

Page 18: Computing Disciplines & Careers Homeworkwds/classes/cdc/Homework/Homework.pdf · Class meets in Olin Engineering 118 from 12:00 p.m. to 12:50 p.m. Monday Tuesday Wednesday Thursday

18 computing disciplines & careers homework

Tubes: A Journey to the Center of the Internet (Blum, 2012) is a newbook by Andrew Blum that is getting good reviews and is on myto-read list.

The history of computing is full of good stories. Out of Their Minds(Shasha and Lazere, 1995) and Portraits in Silicon (Slater, 1987) offersbiographies of many famous people from the field of computing. Inthe Communications of the ACM (CACM) and other professionalmagazines you find stories about the history of computing. I foundthe recent paper by Campbell-Kelly (2010) about the consequencesof the disappearance of books of mathematical tables interesting.Computing has had significant impacts on society. One famous storyis how a simple programming mistake lead to multiple deaths fromover radiation (Leveson and Turner, 1993). Recent CACM articlessuch as Greengard (2010), Creeger (2010), and Juels (2010) discussother impacts computing has had on society.

Although the works (Tufte, 1990, 1997, 2001, 2006) by EdwardTufte are not about computing per se, they are classic books on how topresent data. I recommend them to you.

Lastly, let me point you to two books that can help prepare youfor job interviews. They are Programming Interviews Exposed (Monganand Suojanen, 2000) and How Would You Move Mt. Fuji? (Poundstone,2003).

Additional Reading Lists

The ACM has a classic book series3 where members have named

3 See dl.acm.org/classics.cfm

their favorite computer science books. Some of these books can be alittle intimidating for beginners. Dr. Stansifer also maintains a list ofbooks that he likes, and they are mostly more assessible. 4

4 See http://cs.fit.edu/~ryan

Your Assignment

Implement the following algorithm.

1. Read a computing article or (portions of) a book. These must beprofessional5 articles and books.

5 An article published in a conference,magazine, or journal of a computingorganization such as the ACM or IEEEComputer Society.

2. Write a short essay that describe what you have learned.

3. Your essays must have a title, list you as the author, a submissiondate, an abstract, an introductory paragraph, a body, a concludingparagraph, and a bibliography.

4. Your essays must demonstrate an ability to use a document prepa-ration system. My strong bias is to learn and use LATEX. Othersystems (e.g. Word) are available for use.

Page 19: Computing Disciplines & Careers Homeworkwds/classes/cdc/Homework/Homework.pdf · Class meets in Olin Engineering 118 from 12:00 p.m. to 12:50 p.m. Monday Tuesday Wednesday Thursday

read and write about computing 19

5. Submit your term paper in the drop box found under the Course

Material tab on the Angel page for this course.

6. Complete this assignment the due date list in the calendar.

Page 20: Computing Disciplines & Careers Homeworkwds/classes/cdc/Homework/Homework.pdf · Class meets in Olin Engineering 118 from 12:00 p.m. to 12:50 p.m. Monday Tuesday Wednesday Thursday

20 computing disciplines & careers homework

Page 21: Computing Disciplines & Careers Homeworkwds/classes/cdc/Homework/Homework.pdf · Class meets in Olin Engineering 118 from 12:00 p.m. to 12:50 p.m. Monday Tuesday Wednesday Thursday

Bibliography

Adleman, L. M. (1994). Molecular computation of solutions to combinatorial problems. Science,266(5187):1021–1024.

Bacon, D. and van Dam, W. (2010). Recent progress in quantum algorithms. Commun. ACM, 53(2):84–93.

Bentley, J. L. (1982). Writing Efficient Programs. Prentice-Hall.

Bentley, J. L. (1986). Programming Pearls. Addison-Wesley.

Bentley, J. L. (1988). More Programming Pearls: Confessions of a Coder. Addison-Wesley.

Blum, A. (2012). Tubes: A Journey to the Center of the Internet. Harper Collins.

Brooks, F. P. (1995). The Mythical Man-Month: Essays on Software Engineering. Addison-Wesley Longman,anniversary edition.

Brooks, F. P. (1996). The computer scientist as toolsmith II. Communications of the ACM, 39(5):61–68.

Brooks, Jr., F. P. (1987). No silver bullet essence and accidents of software engineering. Computer, 20(4):10–19.

Campbell-Kelly, M. (2010). Be careful what you wish for. Commun. ACM, 53(4):25–26.

Carroll, L., Gardner (Editor), M., and Tenniel (Illustrator), J. (2000). The Annotated Alice: The DefinitiveEdition. W. W. Norton.

Creeger, M. (2010). CTO roundtable: malware defense. Commun. ACM, 53(4):43–49.

Cusumano, M. A. and Selby, R. W. (1997). How microsoft builds software. Commun. ACM, 40(6):53–61.

Denning, P. J. (1968). The working set model for program behavior. Commun. ACM, 11(5):323–333.

Denning, P. J. (2004). Great principles in computing curricula. In SIGCSE ’04: Proceedings of the 35thSIGCSE technical symposium on Computer science education, pages 336–341, New York, NY, USA. ACMPress.

Dewdney, A. K. (1993). The (New) Turing Omnibus: 66 excursions in computer science. Computer SciencePress, New York, New York.

Dyson, G. (2012). Turing’s Cathedral: The Origins of the Digital Universe. Random House.

Finkelstein, A., editor (2000). ICSE ’00: Proceedings of the Conference on The Future of Software Engineering,New York, NY, USA. ACM.

Fortnow, L. (2009). The status of the P versus NP problem. Commun. ACM, 52(9):78–86.

Glick, J. (2011). The Information: A History, A Theory, A Flood. Pantheon Press, New York.

Greengard, S. (2010). Spies among us? Commun. ACM, 53(4):17–19.

Page 22: Computing Disciplines & Careers Homeworkwds/classes/cdc/Homework/Homework.pdf · Class meets in Olin Engineering 118 from 12:00 p.m. to 12:50 p.m. Monday Tuesday Wednesday Thursday

22 computing disciplines & careers homework

Hayes, B. (2007). How many ways can you spell v1@gra? American Scientist, 94(5).

Hofstadter, D. R. (1999). Gödel, Escher, Bach: An Eternal Golden Braid. 20th Anniversary Edition. Basic Books,New York, New York.

Hunt, A. and Thomas, D. (2000). The Pragmatic Programmer: From Journeyman to Master. Addison-Wesley.

Juels, A. (2010). Future tense. Commun. ACM, 53(3):120–ff.

Kernighan, B. W. and Pike, R. (1999). The Practice of Programming. Addison-Wesley.

Kernighan, B. W. and Plauger, P. J. (1978). The Elements of Programming Style, volume 2nd Edition.McGraw-Hill.

Knuth, D. E. (1974). Structured programming with go to statements. Computing Surveys, 6(4):261–301.

Knuth, D. E. (1997a). The Art of Computer Programming: Fundamental Algorithms, volume 1. Addison-Wesley, third edition.

Knuth, D. E. (1997b). The Art of Computer Programming: Seminumerical Algorithms, volume 2. Addison-Wesley, third edition.

Knuth, D. E. (1998). The Art of Computer Programming: Sorting and Searching, volume 3. Addison-Wesley,third edition.

Leveson, N. G. and Turner, C. S. (1993). An investigation of the therac-25 accidents. Computer, 26(7):18–41.

Lipson, C. (2004). Doing Honest Work in College: How to Prepare Citations, Avoid Plagiarism, and Achieve RealAcademic Success. University of Chicago Press, Chicago.

McConnell, S. (1993). Code Complete: A Practical Handbook of Software Construction. Microsoft Press.

Mongan, J. and Suojanen, N. (2000). Programming Interviews Exposed: secrets to landing your next job. JohnWiley & Sons, New York, NY.

Naur, P. and Randell, B., editors (1969). Software Engineering: Report of a conference sponsored by the NATOScience Committee, Garmisch, Germany, 7-11 Oct. 1968, Brussels, Scientific Affairs Division, NATO. NATO.

Neville-Neil, G. V. (2010a). The data-structure canon. Commun. ACM, 53(4):33–34.

Neville-Neil, G. V. (2010b). Plotting away. Commun. ACM, 53(6):33–34.

Oram, A. and Wilson, G., editors (2007). Beautiful Code. O’Reilly.

Parnas, D. L. (1972). On the criteria to be used in decomposing systems into modules. Communications ofthe ACM, 15(12):1053–1058.

Parnas, D. L. (1996). Why software jewels are rare. Computer, 29(2):57–60.

Parnas, D. L. (2010). Really rethinking ’formal methods’. Computer, 43:28–34.

Petzold, C. (2000). Code: The Hidden Language of Computer Hardware and Software. Microsoft Press.

Poundstone, W. (2003). How Would You Move Mount Fuji? Little, Brown and Company, Boston, MA.

Raymond, E. S. (2010). Eric’s random writings. . Retrieved June 18, 2010.

Shasha, D. and Lazere, C. (1995). Out of Their Minds: the lives and discoveries of 15 Great Computer Scientists.Copernicus/ An Imprint of Springer-Verlag, New York, New York.

Shor, P. W. (1994). Polynominal time algorithms for discrete logarithms and factoring on a quantumcomputer. In ANTS-I: Proceedings of the First International Symposium on Algorithmic Number Theory, page289, London, UK. Springer-Verlag.

Page 23: Computing Disciplines & Careers Homeworkwds/classes/cdc/Homework/Homework.pdf · Class meets in Olin Engineering 118 from 12:00 p.m. to 12:50 p.m. Monday Tuesday Wednesday Thursday

bibliography 23

Slater, R. (1987). Portraits in Silicon. MIT Press, Cambridge, Massachusetts.

Tufte, E. R. (1990). Envisioning Information. Graphics Press, Cheshire, Connecticut.

Tufte, E. R. (1997). Visual Explanations. Graphics Press, Cheshire, Connecticut.

Tufte, E. R. (2001). The Visual Display of Quantitative Information. Graphics Press, Cheshire, Connecticut.

Tufte, E. R. (2006). Beautiful Evidence. Graphics Press, LLC, first edition.