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

  1. 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.