|
Irvin J. Levy Professor of Chemistry and Computer Science Office Hours: MWF, 8:00-9:00am, 12:30-1:00pm T, 8:00-9:30am; or by appointment |
a set of rules for solving a problem in a finite number of steps, as for finding the greatest common divisor ma chine /muh-sheen/ -noun an apparatus consisting of interrelated parts with separate functions, used in the performance of some kind of work |
In its most general form, computer science is the study of algorithms and machines that perform them. Interestingly, computer science is a discipline that is both well-known and broadly misunderstood. To many, computer science refers to the acquisition of certain skills for using a computer. In other words, some think of learning to use a spreadsheet program, a word processor, or a web browser as "computer science." The term causes others to imagine people sitting in somewhat darkened rooms typing endless lines of cryptic code into a keyboard to create a remarkable new computer program. Some imagine engineers developing massive robots or amazingly small microcomputers embedded into other devices. Still others hear the term and envision anarchistic hackers roller-blading with laptop computers equipped to bring the world to its knees. In truth, all of these notions have something to do with "computer science" but none of them is sufficient to represent the richness of the topic.
In this course, you will be challenged to develop a clearer understanding of the term "computer science". You will see that computer science has much to do with practical applications such as the development of a new robotic vacuum cleaner, but it is also a philosophically interesting pursuit with mathematically elegant underpinnings. You will learn how to get work done with a computer, as well as how a computer works. You will understand how to use a computer, but also ways in that computers are sometimes manipulated to "use" us. Through reading and discussion you will begin to examine the evolution of our "digital society" and how it affects our lives and how it might affect us differently in the future.
While no formal prerequisite coursework is required before attending this course, it is important for all students to be aware that this class has components that require mathematical reasoning, logical reasoning and abstract reasoning. Consequently, students with weak ability in one or more of these areas are strongly encouraged to discuss this with the professor during the first week of classes to determine whether the course is suitable for their needs.
Required
A. Lecture and Reading
Reading from the course texts will be assigned on a regular basis. All assignments must be read prior to the class in which the material will be discussed since the lecture will assume this degree of familiarity with the topic. Class sessions will include a discussion and amplification of the material from the text and the presentation of further examples and supplementary material. You should not necessarily expect to grasp everything presented in the text when you first read it; however, you should note areas that are unclear to you and be prepared to raise questions about them in class. If you read the material only after its lecture, you will not be able to participate effectively during the lecture and you are likely to feel as though lecture is only for note-taking rather than the intended learning experience.
All students are expected to attend lecture regularly and are responsible for all material covered during class. In the event of an unavoidable absence, it is the student's responsibility to learn of any material or assignments from the missed class.
B. Homework
Numerous homework problems will be assigned to help you clarify important concepts; however, normally homework will not be collected and will not directly affect your final course grade. Homework does, of course, affect the grade in that it is unlikely that the course content can be mastered without significant practice. Self-evaluation of homework will be possible through the use of posted solutions. You are encouraged to contact the professor either during office hours, by email or during appropriate times in lecture if questions relating to homework problems arise. Students are encouraged to work in groups to solve homework problems unless otherwise directed by the professor.
C. Quizzes
Since this course is of a technical nature and since the complexity of the material builds from topic to topic, it is essential that you stay up to date with the reading and homework from the course. In order to motivate you to continually interact with the material, numerous quizzes will be given throughout the semester. These quizzes will normally cover material from the previous several classes and normally will require no more than 10 minutes for completion. All quizzes will be announced no later than the lecture prior to the quiz date. Quizzes are closed-book, closed-note unless previously announced to the contrary. Make-up quizzes will not be administered under any circumstances; however, the two lowest quiz scores will be discarded when determining the final quiz grade.
D. Opportunities
Two times during the course you will receive the opportunity to solve problems during an entire class session. The opportunities will be administered on the dates listed in the course schedule. The second opportunity will be cumulative; however, it will emphasize material from the latter portion of the course. Each opportunity will assume familiarity with material from the text, from lecture, from homework problems and from laboratory work. Opportunities will be open book (course texts only) and open notes. Use of a computer will not be allowed.
E. Off-campus trip
We will travel as a class to MIT to observe the Mobile Autonomous Systems Laboratory (MASLab) robotics competition. This event takes place on Friday, January 30 at 3:30 pm. We will leave campus at 2:15 pm. In the event that a student has another class scheduled after 2:00 pm on Friday, an alternate off-campus activity will be made available after prior approval by the professor.
Additional significant practice will come from a series of laboratory assignments. Laboratory work will typically be completed by partners. It is important that both partners in a team are fully aware of all material presented in the laboratory since all students will be responsible for any information presented in the laboratory. Often a pre-laboratory reading assignment will be given. It is essential that all pre-laboratory assignments be completed before arriving in lab. The time in lab is very limited; thus, sufficient preparation is important. Each laboratory will be evaluated on a Credit/No Credit basis. The final laboratory grade will be determined by summing the number of laboratory credits and dividing by the number of available credits. The material covered in the laboratory may be further evaluated either via Quiz or Opportunity.
In the event that a student is absent during a laboratory period, the student is responsible to complete the assignment, with a one-half credit penalty, no later than the beginning of the next laboratory period. After this final due date the assignment will not be accepted for credit; however, it may be completed without credit in order for the student to master the material.A significant long-term laboratory project will be assigned during the course. In this project, a team of students will program a simple robot to perform various tasks. At the end of the course a competition will be as the culmination of the robot programming assignment. You should plan to spend significant amounts of time working on this project outside the scheduled laboratory hours.
IMPORTANT NOTE: Students who fail to receive credit for three or more laboratories will have final course grades reduced by one letter grade for each missing laboratory after the second. This penalty is in addition to the lowered laboratory grade.
| 25% | Quizzes/Homework (drop two low scores) |
| 25% | Opportunity #1 |
| 25% | Opportunity #2 |
| 5% | Off-campus trip |
| 20% | Laboratory |
Make-up quizzes are not administered under any circumstances.
|
Gordon College is committed to assisting students with documented disabilities (see Academic Catalog Appendix C, for documentation guidelines). A student with a disability who may need academic accommodations should follow this procedure:
1. Meet with a staff person from the Academic Support Center (Jenks 412 X4746) to: a. make sure documentation of your disability is on file in the ASC,2. Deliver a Faculty Notification Form to each course professor within the first full week of the semester; at that time make an appointment to discuss your needs with each professor. Failure to register in time with your professor and the ASC may compromise our ability to provide the accommodations. Questions or disputes about accommodations should be immediately referred to the Academic Support Center. (See also Grievance Procedures in Student Handbook.) |
NOTE: This list will expand during the semester. Check back frequently.
-------------------------------------------------------------------------------
Note on abbreviations in schedule assignments:
"Text" refers to Invitation to Computer Science
"CIS" refers to Computers in Society
"Supplemental" refers to a resource from the list above
-------------------------------------------------------------------------------
WEEK #1
Jan 14 - What is Computer Science?
Homework for next class:
Reading (see above):
For a While, The Luddites Had a Smashing Success
Jan 16 - What is a computer?
Homework for next class:
Read text, Chapter 1.1 - 1.3
Homework problems: p.34, #1.1, 1.13 and either 1.3 or 1.7
CIS, Essay 1, Five Things We Need To Know About Technological Change
-------------------------------------------------------------------------------
WEEK #2
Jan 19 - MARTIN LUTHER KING DAY - NO CLASSES
Jan 21 - Algorithm Discovery and Design - Attributes of an Algorithm
Homework for next class:
Text, Chapter 1.4, 2.1 - 2.2
CIS, Essay 2, On The Nature of Computing
Explore homework problem 1.8
Jan 23 - Algorithms in Depth; m-digit addition
QUIZ #1 on reading and homework
Homework for next class:
CIS, Essay 3, A Place for Hype
Construct an algorithm to compute the m-th Fibonacci number
-------------------------------------------------------------------------------
WEEK #3
Jan 26 - Describing Algorithms via Pseudocode
Fibonacci numbers
Handout: Technology Inventory
Jan 28 - SNOW DAY
Jan 30 - Describing non-arithmetic algorithms
TSP and Sort
"QUIZ #2" - Technology Inventory collected
Homework for next class:
Develop an algorithm for bubble sort as demonstrated in class today
Bubble sort explorations:
Sort the following lists showing new list after each pass
Count number of comparisons made for the complete sort of each list
Plot list size vs. # of comparisons
Lists:
4 7 12 14 2
4 7 12 14 2 5 8 19 11 1
4 7 12 14 2 5 8 19 11 1 3 16 42 32 99
AFTERNOON JOURNEY TO MIT FOR MASLAB ROBOTICS COMPETITION
Leave from Chapel parking lot at 2:15pm
-------------------------------------------------------------------------------
WEEK #4
Feb 2 - Searching and Sorting; The Efficiency of Algorithms
Constant, Logarithmic, Linear, Polynomial, and Exponential
Max/Min
Binary Search
Homework for next class:
Search the web for best algorthim explanation of bubble sort
Text, skim Chapter 3
CIS, Essay 7 - The Beauty of Simplicity
Feb 4 - Discussion of formal code for bubblesort
Introduction to formal algorithm description - Karel the Robot
QUIZ #3 on reading and homework
Homework for next class:
CIS, Essay 8 - Software Wars
Feb 6 - Karel the Robot programming
Problems discussed:
Search and Retrieve
Harvester
Homework for next class:
Karel the Robot handout
-------------------------------------------------------------------------------
WEEK #5
Feb 9 - Stepwise Refinement of Complex Problems
Homework for next class:
Text, Chapter 4, pages 130-151
Feb 11 - The Building Blocks, Binary Numbers, Boolean Logic and Gates
Binary representation of integers, signed integers and real numbers
Homework for next class:
Text, Chapter 4, continued
Feb 13 - Numeric codes, continued.
Homework for next class:
CIS, Essay 9 - National ID
-------------------------------------------------------------------------------
WEEK #6
Feb 16 - Binary representation of characters, images and sound
Compression Algorithms
Lossless Variable Length Encoding:
The Huffman Code
Homework on Binary assigned. Due on Friday. Counts as a quiz.
Reading for next class:
CIS, Essay 12 - How Deep Can You Probe? -- not available at this time
Feb 18 - Boolean logic and switches
AND/OR/NOT and all that stuff
Symbolic logic
Logic expressions in truth tables
Feb 20 - Boolean Logic Expressions
Logic Expressions ---> Truth Tables
Equality of logic expressions
Simplfying expressions
Truth Tables ---> Logic expressions
Parity
Majority
Not-equal
HOMEWORK ON BINARY COLLECTED ("Quiz #4")
-------------------------------------------------------------------------------
WEEK #7
Feb 23 - Logic, Switches, Gates, then Circuits
"Building" logic from switches
Circuits to Expressions
Simplifying circuits
Parity
Half Adder
Full Adder
Opportunity #1 Essay Questions distributed
Homework for next class:
CIS, Essay 16, Is Google Making Us Stupid?
Feb 25 - Circuits that remember, Circuits for choosing
Flip-flops
Multiplexers
Decoders
Putting it all together...
Feb 27 - OPPORTUNITY #1
Open notes (and book, if you must)
Bring completed essay
-------------------------------------------------------------------------------
WEEK #8
Mar 2 - Introduction to Assembly Language
Machine codes, Multiplexers
Mar 4 - Introduction to High-level Language Programming
Reading:
Text, Chapter 8
CIS, Essay 13, Privacy, Legislation, and Surveillance Software
-- not available at this time
Mar 6 - QUAD FINALS, NO CLASSES
-------------------------------------------------------------------------------
Mar 9 - SPRING
Mar 11 - BREAK
Mar 13 - ENJOY!!!
-------------------------------------------------------------------------------
WEEK #9
Mar 16 - Introduction to Lego Mindstorms Programming
Reading:
CIS, Essay 19, Bloggers Against Torture
Mar 18 - Metalanguages - Using Language to Describe a Language
Reading:
CIS, Essay 20, Piracy, Computer Crime, and IS Misuse at the University
Mar 20 - Introduction to Java
-------------------------------------------------------------------------------
WEEK #10
Mar 23 - LECTURE DOES NOT MEET TODAY
Choose one of the following essays to read:
A. Why People Think Computers Can't, Marvin Minsky, AI Magazine, Fall 1982
B. Robots, After AllHans Moravec, Communications of the ACM, October 2003
Mar 25 - LECTURE DOES NOT MEET TODAY
Choose one of the following audio/visual presentations:
A. Interview with Dr. Anne Foerst on Science and Being: Speaking of Faith American Public Radio, September 23, 2004
Main page, then click the "Listen" link
B. Convocation lecture by Dr, Rosalind Picard, "Toward Machines That Can Deny Their Maker", March 26, 2004
Click for the video - On campus only
Mar 27 - Artificial Intelligence discussion
Reading:
Text, Chapter 14
-------------------------------------------------------------------------------
WEEK #11
Mar 30 - Java Programming In A Nutshell
Reading:
CIS, Essay 23, The Coming Robot Army
Apr 1 - Reading:
CIS, Essay 27, Why Spyware Poses Multiple Threats to Security
Apr 4 - Reading:
CIS, Essay 29, False Reporting on the Internet and the Spread of Rumors
-------------------------------------------------------------------------------
WEEK #12
Apr 6 - Java and Programming Language Translation
Apr 8 - Reading:
CIS, Essay 34, China's Computer Wasteland
Apr 10 - EASTER BREAK
-------------------------------------------------------------------------------
WEEK #13
Apr 13 - EASTER BREAK
Apr 15 - Reading:
CIS, Essay 36, In Korea, A Boot Camp for Web Obsession
Apr 17 - Reading:
CIS, Essay 40, Google and the Wisdom of Clouds
-------------------------------------------------------------------------------
WEEK #14
Apr 20 - Social Impact of Computing
Reading:
Text, Chapter 15
Supplementary reading (see above):
Human and Machine Dignity
Apr 22 - Unauthorized Access (video)
Reading:
CIS, Essay 28, The Virus Underground
Apr 24 - Reading:
CIS, Essay 38, A Nascent Robotics Culture
-------------------------------------------------------------------------------
WEEK #15
Apr 27 - MEET WITH ROBOT PROGRAMMING TEAM TO PREPARE FOR LAB
Apr 29 - Models of Computation
Reading: Chapter 11
May 1 - continued
-------------------------------------------------------------------------------
WEEK #16
May 4 - continued
May 6 - Discussion of topics for Opportunity #2
-------------------------------------------------------------------------------
FINAL EXAMINATION PERIOD
Friday, May 8, 8:00 - 10:00 am, OPPORTUNITY #2
=============================================================
Jan 20 : History of Computing
The Machine That Changed The World
-------------------------------------------------------------------------------
Jan 27 : NO LAB TODAY
TECHNOLOGY INVENTORY DAY
FOLLOW INSTRUCTIONS PROVIDED IN CLASS
-------------------------------------------------------------------------------
Feb 3 : NO LAB TODAY - Class trip to MIT robotics competition
-------------------------------------------------------------------------------
Feb 10 : Experimental measurement of time order of algorithms
Sorting, Factoring (with related crpytography example)
Sorting lab tools
Factoring lab tools
-------------------------------------------------------------------------------
Feb 17 : CANCELED DUE TO ABSENCE
Experiments in sorting continue
Develop a question amenable to confirmation/denial
Perform tests, analyze results, report findings
-------------------------------------------------------------------------------
Feb 24 : Logic in the Sandbox: Introduction to Circuit Sandbox digital simulator
Lab Report from previous week is due (Canceled)
-------------------------------------------------------------------------------
Mar 3 : Design of Circuits: From Function to Logic
Given desired behavior, design and test circuits with Circuit Sandbox
-------------------------------------------------------------------------------
Mar 17 : Introduction to LMR Programming
Random Walk to goal; measurement of time performance
-------------------------------------------------------------------------------
Mar 24 : 2001: A Space Odyssey
Optional supplements:
HAL's Legacy online
2001, A Space Odyssey, Internet Resource Archive
Review from DecentFilms.com
2001: A Space God-esy, Mark Midbon
See professor for:
"Creation Machines, Stanley Kubrick's View of Computers in 2001"
-------------------------------------------------------------------------------
Mar 31 : Control Structures and Sensors in LMR programming
"Walk The Line", "Keep on the Sunny Side", "Hello Walls"
LMR project assigned
-------------------------------------------------------------------------------
Apr 7 : LMR project continues
-------------------------------------------------------------------------------
Apr 14 : LMR project continues
-------------------------------------------------------------------------------
Apr 21 : LMR project continues
-------------------------------------------------------------------------------
Apr 28 : LMR project exhibition & competition
-------------------------------------------------------------------------------
May 5 : Disruption of space/time continuum
Tuesday becomes Thursday at Gordon College
NO LAB TODAY