Computer Science 1001:  An Overview of Computer Science

Spring 2005

Course Syllabus

Basic Information

Class Meetings

MWF from 1:25 to 2:15 pm in EE/CSci 3-210.  Note:  Monday classes are full-class discussions.

Plus, one laboratory session each week in EE/CSci 2-120 (pre-scheduled). 

Instructor

Joseph A. Konstan                           konstan@cs.umn.edu

EE/CSci 5-207                                  (612) 625-1831

Office hours:    TBA

Please come see me whenever you have concerns about understanding course material, or if you'd like to talk more generally about Computer Science as a whole.

Head Teaching Assistant

Max Harper                                        harper@cs.umn.edu

EE/CSci                                             (612) 62

Office hours:    TBA

Please see the head TA for any administrative requests (laboratory section changes, extension requests, re-grading requests, etc.). 

Teaching Assistants

To be named, contact info and lab hours.

Course Description

A broad introduction to the great ideas of Computer Science designed to help you understand the foundations and limits of today's computing and information technology, to help you reason about possible future applications and technological advances, and to help you be informed contributors to the public dialog on policy issues related to technology.  This is not an introductory programming or "computing skills" class, rather it is an overview of many areas of computer science including:  algorithms for automating the solutions to problems; abstraction in design and problem solving; the fundamental concepts of computer databases, networks, and expert systems; foundations of human-computer interaction; and the core concepts behind the Internet, web, desktop software, and personal computers. 

 

The course is structured around six major activities:

 

·        Class lectures (Wednesdays and Fridays) will focus on topics from Computer Science, covering both technical aspects and their relevance to today's issues.

·        Class discussions (Mondays, usually) will provide an opportunity for interactive discussion and debate of current Computer Science-related social, economic, and technical issues facing society. 

·        Laboratory sections (once per week) will provide a more in-depth opportunity to explore specific course content.  Sessions are held in a classroom laboratory where exercises can be completed by pairs of students working on computers.

·        Reading assignments, both from a textbook and from on-line sources, are designed to prepare you for course material and inform discussions.  Reading assignments are to be completed before the class session for which they are due.

·        Problem sets and other written assignments are designed to help you more thoroughly explore Computer Science concepts and their implications.  These assignments must be completed individually and they are due at the start of the laboratory session for the week on which they are due.

·        The book review assignment, due in your laboratory session the week after Spring break, is an assignment to read and report (briefly) on one of a set of books relevant to the course.

 

This course is one of several introductory courses in the Computer Science program.  It is specifically designed for students seeking an overview of the field with a focus on its relevance in ordinary civic life.  If you are more interested in the practical skills of computer programming, you may wish to enroll in CSci 1103, 1107, or 1113.  If you are looking for an introduction to Internet technology, you may find CSci 1121 of interest.  If you are looking to start a degree program (or minor) in Computer Science, you should enroll in CSci 1901. 

Addressing the Goals of Liberal Education

This course was designed to address the goals of the U of M Twin Cities Campus Liberal Education Requirements.  These requirements, which apply to all baccalaureate degree students, address a number of fundamental modes of learning and educational themes.  The specific requirements addressed in this course are Mathematical Thinking and Citizenship and Public Ethics.   To help you better understand (and benefit from) the goals of the requirement, a brief summary of those requirements and the course features designed to address them is included here.  The summary is derived from CLE requirements (http://www1.umn.edu/usenate/cle/liberaleducation.html).

 

General Requirements for Courses in the Diversified Core.  All courses in the core are expected to introduce students to provide disciplinary content, to introduce students to "ways of knowing" within the discipline, and to incorporate writing as appropriate to the discipline.  CSci 1001 introduces specific skills and techniques from computer science (starting with fundamentals such as algorithms, abstraction, mathematical representation, and program representation, and then building to specialized concepts such as security, cryptography, computational complexity, human-computer interaction, networking, graphics, databases, and artificial intelligence).  The course uses many techniques (outlined above) to introduce ways of knowing in computer science, including readings, lectures, discussions, hands-on laboratory sessions, and problem assignments.  And the course uses writing in its assignments, as part of on-line discussion, and in a course book report.

 

Specific Requirements for Courses in Mathematical Thinking.  Any course fulfilling this requirement should lead students to acquire mathematical modes of thinking:  the ability to evaluate arguments, to detect fallacious reasoning and evaluate complex reasoning chains, and the appreciation of the breadth of applications of mathematics and its foundations.  CSci 1001 is particularly geared towards this requirement in that it focuses on core ideas from computer science as opposed to simply programming and system building.  Some of the core areas covered include computational abstraction, computational algorithms, logical expressions, cryptography, rates of growth, statistical security, graphics, and machine learning.

 

Specific Requirements for Courses with a Designated Theme of Citizenship and Public Ethics.  Responsible citizenship includes among other things the capacity to discuss, deliberate, and participate in public affairs.  To fulfill this requirement, a course should include issues and themes of public affairs, citizenship, and public ethics, both in the abstract and applied to concrete instances, and should include discussions and writing components to help students develop their own civic judgments, skills, and capabilities for ethical deliberation.  Indeed, the purpose of this course is to educate students who are unlikely to specialize in computing to the extent that they can knowledgably participate in public discussion and decision-making on issues related to computing and information technology.  Each week has a full-class discussion session on a topic of public interest, supported by the technical learnings in the class and by readings on the topic.  It is intended for the discussion topics themselves to change from year to year (perhaps 30-40% turnover each year) as new issues become particularly important in civil society.  And it is intended for the readings to change nearly every year, so that the most recent lay articles on the topic can be used (from sources such as newspapers, news and analysis magazines, and in some cases professional magazines). 

 

In Spring 2005, one of the key issues that will be used is electronic voting.  In week 2 of the course, the issue will be set up with general readings on the topic that familiarize students with the issues in a broad sense (e.g., the arguments for and against paper records; historical reasons for banning "take-away" receipts; examples of systems in use) and a recap of the experience from the 2004 presidential election.  Several weeks later, the topic will resurface in light of the challenges students have learned about large-scale computing, distributed computing, and networking and communications.  A few weeks afterwards, we will focus on the security issues of e-voting -- how does our knowledge of cryptography and security inform our position on electronic voting and potential Internet voting.  The voting issues will also return as we discuss the ethics of software construction including responsibility for failures.

Course URL

All handouts and on-line materials will appear on the course web page at http://www.itlabs.umn.edu/classes/Spring-2005/csci1001.  Please check it regularly.  

Textbooks and Readings

This course uses three sets of readings.  The course textbook, which will be used for most of the technical content of the course, is:

 

·        Computer Science:  An Overview (8th Edition) by J. Glenn Brookshear.

 

Assigned readings on a variety of topics appear in this syllabus and will be linked to from the class website.

 

Finally, you are responsible for reading and submitting a 1000-word review of one book from the following list.  I will discuss each book in more detail during class to help you make your selection.  You will note that the newest of these books is a decade old—this choice is intentional.  I want to balance the extremely current on-line sources with more time-tested materials. 

 

·        The Soul of a New Machine by Tracy Kidder.  This Pulitzer Prize-winning book chronicles the development of a Data General minicomputer and the work lives of the developers during the furious development process. 

·        The Design of Everyday Things by Donald Norman.  This book is an excellent introduction to the human side of user interfaces.  By focusing on everyday objects such as doors, kitchen appliances, and telephones, Norman is able to effectively and painlessly teach the psychology of human action.

·        Where Wizards Stay up Late:  The Origins of the Internet by Katie Hafner and Matthew Lyon.  A well-researched and well-written history of the Internet, from its earliest days.

·        The Masters of Deception:  The Gang that Ruled Cyberspace by Michelle Slatalla and Joshua Quittner.  A story of electronic gang warfare and computer (and telephone network) crime that looks at two rival bands of teenage hackers and their exploits.

·        Computer-Related Risks by Peter Neumann.  This now-classic volume describes large numbers of computer-related failures in everything from aviation to medicine to finance.  In discussing the technical causes of these problems, Neumann also explores what steps we could take to improve the reliability and safety of the systems.

·        The Visual Display of Quantitative Information by Edward Tufte.  This book is the classic volume on graphic display of information, using extensive examples to show how to explore, lie, persuade, and confuse with drawings and images. 

Prerequisites and Necessary Background

This course has no prerequisites and should be appropriate for anyone with a High School education.  This is designed to be a course for non-technical students (though scientists and engineers are certainly welcome). 

Workload

In accordance with University policies, students should expect to spend a total of about 12 hours a week to complete the basic requirements of the course (that time includes four hours of time in class, reading time, assignments, and study time).  Of course, each of you is different.  Some people read and study faster; others take longer.  Please remember that the University policy was based around the idea that meeting the basic requirements represents a C-level grade.  To earn a higher grade requires working harder, working smarter, or both.

Working in Pairs, Studying in Groups, Getting Help

In most of the laboratory sessions you will be expected to work in pairs.  I encourage you to select a new partner for each session.  Working in pairs may be a new experience for some of you.  The goal of such work is not simply to "get it done quickly" but rather to make sure that, by working together, both of you master the material.  If you feel that you are in a pair where you know more than your partner, take advantage of the opportunity to learn by teaching.  If you feel that your partner seems to know everything, then learn from his or her expertise.  And if you are well-matched then challenge yourselves to work together to learn new material. 

 

You are encouraged to study in groups, but your assignments must be your work alone.  The practical way to ensure that you are not "going over the line" is to spend as much time as you like together discussing readings, course concepts, etc.  However, when it becomes time to start working on answers to the assignment questions, please work independently.  Copying another student's work is academic dishonesty, and it will be dealt with severely.  I should also point out that getting answers from someone else (even a non-student) is also dishonest.  Getting answers from the Internet is OK only if you honestly attribute the source of the information and if the information you obtain is supportive of, but not replacing, your own effort.  Using course readings to support your answer is always acceptable.

 

If you feel you need help on any assignment, come see me or any of the teaching assistants.  Remember, it is our job to help you learn this material.  We'll spend as much time as needed to work with students who are making a good-faith effort to learn.

Course Computing

By registering for this course you will receive an account on the IT Laboratories computers.  This account will give you access to the computers in the class laboratories, as well as in a number of laboratories throughout the Institute of Technology.  You are welcome to use these for any exploration you do as part of this course.  However, you are not required to use them outside of class sessions.  Any Windows or Macintosh computer with a Web browser, word processor, and spreadsheet will be sufficient for the class assignments. 

Assignments, Examinations, and Grading Policy

Assignments, and Examinations

The course has seven assignments that are due at laboratory sessions.  These assignments will be graded on the basis of correctness (on a 10-point scale) and returned. 

 

Laboratory participation is also required and graded.  Attendance and effort will be graded on a 5 point scale for each laboratory session. 

 

Your 1000-word book review (longer reviews will be penalized) will be graded on the following criteria:  (1) how well the review communicates what you learned from the book and what you hope others would learn from it; (2) correct use of grammar, diction, and punctuation; (3) evidence that you read the book and thought about its contents.  The review should not be a summary of the book, rather it answers the question "what would I tell someone else about this book?"  I would encourage you to look at book reviews in such venues as The New York Times and The New York Review of Books as well as magazines such as The Atlantic for examples. 

 

Late assignments are penalized 15% if turned in after the start of the laboratory session where they are due, but before the end of that day.  They are penalized 30% if turned in between the end of the day on which they are due and the start of the laboratory session the following week.  Assignment will not be accepted after one week late. 

 

There will be two midterm examinations (March 2 and April 8) and a final exam.  These exams will have a mix of short-answer questions, medium-answer questions, and essay questions.  A sample exam will be provided (with sample answers).  The exams are closed-book, closed-notes.  No aids are permitted during the exam. 

Make-up Examinations

In accordance with University policies, we will provide alternate midterm exams in advance for students with legitimate University-related conflicts (e.g., sporting events, representing the University in other venues).  If you have a personal conflict, please let the head TA know as early as possible, and we will do our best to accommodate you with an exam in advance. 

 

Make-up exams after-the-fact will only be provided when an unforeseeable, documented emergency occurs.  (Documentation may include a doctor's letter or other evidence of such an emergency.)

Grading Policy

Grades are computed as follows:  Assignments (20%), Laboratory Participation and Performance (20%), Book Review (10%), Midterm Exams (25%), Final Exam (25%).  The course is not graded on a curve.  The nominal scale awards an A or A- for 90% and better, B+, B, or B- for 80% and better, etc.  That scale may be adjusted to lower numerical cut-offs if warranted, but will not be raised.

Incompletes

Incompletes are only awarded in very rare circumstances when an unforeseeable event causes a student who has completed all coursework to date to be unable to complete a small portion of the work remaining in the course.  A heavy courseload is not unforeseeable.  Typically, incompletes are given only because of personal health issues, family emergency, or other severe but sudden occurrences.  Any incomplete grade will require a written agreement on the work to be completed.

Scholastic Conduct

Academic integrity is essential to a positive teaching and learning environment. All students enrolled in University courses are expected to complete coursework responsibilities with fairness and honesty. Failure to do so by seeking unfair advantage over others or misrepresenting someone else’s work as your own, can result in disciplinary action. The University Student Conduct Code defines scholastic dishonesty as follows:

 

Scholastic Dishonesty: submission of false records of academic achievement; cheating on assignments or examinations; plagiarizing; altering, forging, or misusing a University academic record; taking, acquiring, or using test materials without faculty permission; acting alone or in cooperation with another to falsify records or to obtain dishonestly grades, honors, awards, or professional endorsement.

 

Within this course, a student responsible for scholastic dishonesty can be assigned a penalty up to and including an "F" or "N" for the course.  Cases will also be reported to the Office for Student Academic Integrity which may pursue more severe sanctions, including suspension and expulsion.  If you have any questions regarding the expectations for a specific assignment or exam, ask.

 

Any work you complete for this course may be submitted to another course with the approval of the other instructor.  Please understand that it still will be judged for this course exclusively on CSci 1001 criteria. 

Class Decorum

This is a large class, and an interactive one.  Accordingly, I must insist that all students observe basic classroom decorum.  This includes silencing all electronic devices, refraining from talking (except as part of class participation), and listening respectfully to your peers.  During class discussions, I hope there will be widely divergent opinions.  There will not be right answers.  While I welcome counter-arguments and rebuttals, please limit these discussions to the issues at hand and refrain from attacks on the motives or character of the individuals stating their opinions. 

Special Circumstances

Students with special needs or circumstances should contact me as soon as possible to make any necessary arrangements.  As with incompletes, extensions are only granted for unforeseeable events, but arrangements may be made to obtain assignment handouts in advance if needed. Other accommodations, including sign language interpreters, large-print exams and private exam rooms can be arranged in cooperation with disability services.


 Course Schedule (subject to change)

Week

Date

Class Topic, Readings, Assignments Due

1

January 19

Course Introduction; How Computing Has Changed

1

January 21

Introduction to Algorithms

Brookshear, Chapter 0, parts of Chapter 5 (pgs TBD)

2

January 24
discussion

The E-voting debate:  setting up the issue

Readings to be selected after 2004 elections

2

Lab session

Algorithms exercises

Algorithms assignment #1

2

January 26

Abstraction and more Algorithms

2

January 28

Coding Information:  getting down to bits and bytes

Brookshear, Chapter 1

3

January 31
discussion

The Internet and the Web:  why did they succeed?  How are they changing the world?

3

Lab session

Information coding exercises:  bits and bytes

3

February 2

Computers doing Math

Brookshear, Chapter 2

3

February 4

Computers doing Logic

4

February 7
discussion

Math and Logic Errors:  computer problems and their source

Readings: scan or search through the RISKS Digest  http://catless.ncl.ac.uk/Risks  to find at least three examples of math or logic errors in computer systems.

4

Lab session

Logic exercises

Coding, Math, and Logic Assignment

4

February 9

The Von Neumann Machine

4

February 11

Cryptography:  An Overview

Readings:  http://www.pgpi.org/doc/pgpintro/

5

February 14
discussion

Cryptography and National Security

5

Lab session

Cryptography exercises

Selection of book for review due.

5

February 16

Complexity and Scale – How does my problem grow?

5

February 18

Moore's Law, Hardware, Storage, Networking, and Scale

6

February 21
discussion

E-voting revisited:  Dealing with the size and scale of national elections

6

Lab session

Fun with Dates and Times:  UTC and Time Online

Complexity and Cryptography Assignment

6

February 23

Programming and Computer Languages

Brookshear, Chapter 6

6

February 25

Programming Paradigms

7

February 28
extra lecture

Spreadsheets and Constraint Programming

7

Lab session

Simple Programming Exercises – Making Change

7

March 2 poss away

MIDTERM EXAM #1  covers material through Feb. 23

7

March 4 poss away
discussion

How much "programming" do ordinary people need to know?

8

March 7

Separating Content from Mark-up:  HTML & Word Processing

8

Lab session

Exploring HTML

Spreadsheet Programming Assignment Due

8

March 9

Databases and the Relational Model

Brookshear, Chapter 9

8

March 11

Databases, Joins, and Pulling it all Together

SPRING BREAK

9

March 21
discussion

Privacy, consumer data mining, European and US attitudes

9

Lab session

Database Exercises

Book review due!

9

March 23

Networking and Communications:  Introduction

Brookshear, Chapter 4

9

March 25

Protocols and Interfaces:  The Elements of Modular Design

10

March 28
discussion

Music, Movies, and Digital Intellectual Property

10

Lab session

Layered Protocol Exercises

Database Assignment Due

10

March 30

Passwords and Beyond:  Computer Security and Authentication

10

April 1

Visualization and the Exploration of Information

11

April 4 away
discussion

E-voting revisited:  security issues, paper trails, and measures of success

11

Lab session

Exploring Elementary Graphics and Visualization

11

April 6 away

Computer Graphics:  Models and Rendering

11

April 8 away

MIDTERM EXAM #2

12

April 11
discussion

Reserve date for topical discussion.

12

Lab session

Exploring tools for media editing

Algorithms Assignment #2

12

April 13

Human Computer Interaction – Usability and User Interface Design

12

April 15

HCI and Beyond – Persuasion and Personalization

13

April 18
discussion

Design for Users?  Let Users Adapt?  Design to Change Users?

13

Lab session

Usability Evaluation Exercises

13

April 20

Information Retrieval:  Search and Indexing

13

April 22

Software Engineering:  Process, Requirements, Testing

Brookshear, Chapter 7

14

April 25
discussion

Reserve date for topical discussion.

14

Lab session

Search engine explorations.

Usability and IR Assignment

14

April 27

Artificial Intelligence:  The Turing Test, Natural Language, and Early Successes

Brookshear, Chapter 10

14

April 29

Artificial Intelligence:  Search, Heuristics, and Machine Learning

15

May 2
discussion

Who is responsible for the actions of software?  Of software agents?  Who should be?

15

Lab session

Explore AI prototypes and search techniques

15

May 4

Mobile and Ubiquitous Computing

15

May 6

Class Wrap-Up; What wasn't covered …; Where to go next

FINAL EXAM:  DATE TO BE ANNOUNCED