CMSC 100
Introduction to Computers and Programming
Fall 2012
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.
Our "Google fail" is hiteriskology.
Instructor
Prof. Marie desJardins
ITE 337
(410) 455-3967 / fax (410) 455-3969
mariedj @ cs.umbc.edu
Office Hours: Tuesdays 2:30-3:30, Wednesdays 2:00-3:00
When: Tuesday/Thursday 1:00-2:15
Where: ENG 022
TAs:
Clay Alberty, clay2@umbc.edu
Office hours: Mon 2:30-4:30pm, ITE 349
Kellie LaFlamme, kl4@umbc.edu
Office hours: Tues/Thurs 11:30-12:30pm, ITE 349
Stephanie Schneider, sschneider713@gmail.com
Office hours: Wed 4-5pm, ITE 349
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 Scratch programming language.
Students who feel reasonably confident with Scratch programming
and algorithm design at the end of the course should be well
prepared to continue into CMSC 201.
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.
UMBC GEP Areas
This course has been approved 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: G. Michael Schneider, Judith L. Gersting,
Invitation to Computer Science, 6/e,
Cengage Learning, 2012. ISBN: 978-1133190820.
Link to campusbooks4less search site for this book. You may
find this site useful but I do not specifically endorse or
recommend any particular textbook source.
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 Scratch 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 disciplines;
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%),
homework assignments (35%), 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 may be given at the beginning of some 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.
Homework assignments (20%).
There will be six regular homework assignments,
consisting of mathematical exercises, short-answer questions, and/or
short essays.
Programming assignments (15%).
There will be four programming assignments, ranging from the
very simple "PA0" to familiarize yourself with Scratch to
the more involved and open-ended Scratch programming project.
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 expected to sign a copy of the academic honesty/grading policy,
indicating that they have read and understood it.
Course communication
The course will use a Piazza course site for questions, discussion,
and communication. Some assignments may require posting and/or
responding to discussions on the Piazza site.