CMSC 100
Introduction to Computers and Programming
Fall 2008
OUR GOOGLESTUMP: spitbubbleboo
(Posted 9/2/08, indexed on Google 9/18/08.)
Ever wonder how Google is able to find that one
piece of information you needed on the huge web?
How amazon.com is so often able to recommend
just the book you wanted to read next? Or how
your GPS can find the way to your spring break
hotel in Ocean City?
Did you know that computer science researchers are
currently working on neural prosthetic devices that
will translate brain signals into actions? Or
that computer science algorithms are at the core
of ongoing genetic research to search for
the genes that may control cancer?
The incredible advances in computer hardware and
software that have been made in the last few years
have completely changed the way we live in the world.
It's easy to think of your laptop, cell phone, and iPod
as just nifty gadgets -- but they are actually the
product of innovative research in computer science,
computer engineering, and electrical engineering.
This course will peel back the layers of those
nifty gadgets that you use every day, and help you
to understand how these technologies are
able to do the amazing things that they do -- and
what challenges face us in developing
the next generation of nifty gadgets.
Instructor
Prof. Marie desJardins
ITE 337
(410) 455-3967 / fax (410) 455-3969
mariedj @ cs.umbc.edu
When: Tuesday/Thursday 1:00-2:15
Where: AC IV 151
CMSC 100H Discussion: Thursday 2:30-3:20, AC IV 150
Course Description
An introduction to the scientific, engineering, and mathematical
principles that underlie the construction and use of computers.
Topics include current and possible future applications of computers,
the design of gates and circuits, binary logic, operating
systems, programming and
algorithms, databases, networks, the theory of computation, and the effects of
computers on society. Students will learn some of the basics of
computer programming using the Alice programming language.
CMSC 100H students will also participate in a weekly discussion section
with the instructor, focusing on ethical and social issues, the
research challenges in the field of computing, and more advanced
programming constructs in Alice.
Catalog Description
A one-semester introduction to computers and their uses. This course
is intended for non-science majors. Topics include computer programs,
computer systems, personal computers and software packages,
simulation, databases, artificial intelligence, computers in education
and industry, and the effects of computers on society. Note:
This course is not open to students who have passed CMSC 103. This
course should not be taken by students planning to take CMSC 103 or
CMSC 201.
UMBC GEP Areas
This course is pending approval for UMBC's GEP Sciences
distribution requirement, and to satisfy the following functional
competencies: Technological Competency, Scientific and Quantitative
Reasoning, Oral and Written Communication, and Critical Analysis and
Reasoning.
Textbooks
- Required: J Glenn Brookshear, Introduction to Computer
Science, 10/e, Addison Wesley, 2008
(ISBN 978-0321524034).
- Required: W. Daniel Hillis, The Pattern on
the Stone: The Simple Ideas that Make Computers Work,
Basic Books, 1998 (ISBN 978-0-465-02596-1).
- Required:
Wanda Dann, Steve Cooper, and Randy Pausch, Learning to
Program with Alice, Prentice Hall, 2006
(ISBN 0-1318-7289-3). **OR** Learning to Program with
Alice, Brief Edition, Prentice Hall, 2007
(ISBN 0-1323-9775-7). (CMSC 100H students must buy the
original (2006) book. CMSC 100 students may buy either the
original book or the Brief (2007) book.)
- Required for CMSC 100H only:
David G. Stork, Hal's Legacy: 2001's Computer as Dream and
Reality, MIT Press, 1996 (ISBN 978-0262193788).
(Available at the bookstore, and as an e-book at
http://mitpress.mit.edu/e-books/Hal/)
Academic Objectives
The primary objective of the course is for students to gain an
understanding of the scientific, engineering, and mathematical
principles that underlie the construction and function of modern
digital computers. Specifically, students will be able to explain how
computers are designed at the gate and circuit level; will understand
binary mathematics and digital logic; will be able to apply the basic
principles of programming to construct a simple Alice program; will
understand how computers can be networked together to interoperate and
share information; will understand how computers are used to solve
problems in many fields and discplines;
and will be able to discuss the social and ethical
implications of modern computers and their uses.
A secondary course objective is that students should improve their
ability to communicate
effectively in group discussions, class presentations, and written
assignments.
Schedule
The course schedule can be found here.
Coursework and Grading
Course grades will be based on class participation and quizzes (15%),
written homework assignments (25%), programming assignments
(10%), a midterm exam (15%), a final exam (20%), and
a research paper (15%).
Class participation and quizzes (15% total).
Students are expected to attend lecture regularly and to participate
in discussions. There will also be short presentations (in
individuals or in small groups, depending on the size of the class) on
the students' research projects. Short quizzes on the assigned
readings will be given at the beginning of many classes, and
will be factored into the class participation grade. Note
that the assigned reading is to be completed before
you come to class each day! The quizzes have two purposes:
one, to make sure that students are staying on top of the reading;
and two, to help me identify problem areas that may need
additional time in class.
Written homework (25%).
Written homework will be assigned most weeks. These assignments will
consist of mathematical exercises, short-answer questions, and/or
short essays.
Programming assignments (10%).
Several programming assignments will be given, using the Alice
programming language.
Midterm and final exam (15% and 20%, respectively).
There will be two exams, one in-class midterm, and a final exam at the
time and place set forth by the university exam schedule. The exams
will include multiple-choice, short answer, problem-solving, and
short programming questions. The midterm will cover all material from
the lecture and from the assigned reading. The final exam will
emphasize the second part of the course, but will be cumulative (i.e.,
it will include material from the first part of the course as well).
Research paper (15%).
Each student will be required to select an application domain that
reflects one of their academic or personal interests (e.g., biology,
geology, chess, football, or music). Over the course of the semester,
they will research the application of computers in this application
domain, and will write a research paper summarizing their findings.
Each student will also be required to read and provide comments on two
other students' research papers. Deliverables: topic proposal (5%),
initial bibliography (5%), outline (5%), draft (10%), review (5%),
and final report (70%).
Late Policy
Students are expected to know the course requirements and deadlines,
and to plan their time accordingly. Course assignments are
expected to be turned in on time. The late policy is strict,
for several reasons. First, if you turn in one assignment late,
it means that you'll be getting a late start on the next
assignment. Second, grading is a time-consuming job, and it is
unfair to the course staff to have to grade assignments piecemeal,
as they are submitted. Third, I will frequently go over homework
problems in class, particularly when students seem to be having
difficulty with some of the concepts, and I can't do this if
some students haven't turned their homework in. Fourth, time management is
an important skill that is part of college success!
See the course grading policy for the late policy.
Academic Honesty
By enrolling in this course, each student assumes the responsibilities
of an active participant in UMBC's scholarly community, in which everyone's
academic work and behavior are held to the highest standards of honesty.
Cheating, fabrication, plagiarism, and helping others to commit these acts
are all forms of academic dishonesty, and they are wrong. Academic misconduct
could result in disciplinary action that may include, but is not limited
to, suspension or dismissal. To read the full Student Academic Conduct
Policy, consult the UMBC Student Handbook, the Faculty Handbook, or the UMBC
Policies section of the UMBC Directory. [Statement adopted by UMBC's Undergraduate
Council and Provost's Office.]
All students must read, understand, and follow the CMSC 100 course policy on academic honesty and grading. Each
student will be asked to sign a copy of the academic honesty/grading policy,
indicating that they have read and understood it.
Cheating in any form will not be tolerated. In particular, all assignments
are to be your own work. You may discuss the assignments with
anyone. However,
any help you receive must be documented explicitly.
A useful way to think about the difference between "discussing the
assignments" and "cheating" is that after you have discussed an
assignment, you should be alone, writing your own words, when you
complete the assignment.
Written answers on all assignments (including homework, exams, and
the research paper) must be your own work.
Plagiarism (copying) of any source,
including another student's work, is not acceptable and will result in at
a minimum a zero grade for the entire assignment.
If you wish to
quote a source, you must do so explicitly, using quotation marks and proper
citation at the point of the quote. A useful guideline
is that if more than two or three words in a row are the same in your report
as in the original source, you have plagiarized.
http://www.bedfordstmartins.com/online/cite6.html
gives an excellent overview of how to correctly cite a source. http://www.indiana.edu/~wts/pamphlets/plagiarism.shtml
has guidelines on acceptable paraphrasing. (See also the other documents
at http://www.indiana.edu/~wts/pamphlets.shtml
for useful suggestions on writing and citing sources.)
The same requirement applies to programming assignments. Your
programs are expected to be your own, original work, and not borrowed,
copied, templated, or modified from code that you have obtained
elsewhere. Under no circumstances should you show your program code
to another student.
Blackboard
We will use the Blackboard course site. There will also be a course
wiki or blog to which students will be expected to contribute.