CSCI 1001 -- Changes

Wed Feb 25 15:49:08 2009

Effective Term: New:  1109 - Fall 2010
Old:  1089 - Fall 2008
Sponsor Name:
New:  Phillip Barry
Old:  Joseph Konstan
Sponsor E-mail Address:
Other requirement
this course fulfills:
New:  TS - TS Technology and Society
Old:  C/PE - C/PE Citizenship and Public Ethics Theme
Criteria for
Core Courses:
Describe how the course meets the specific bullet points for the proposed core requirement. Give concrete and detailed examples for the course syllabus, detailed outline, laboratory material, student projects, or other instructional materials or method.

Core courses must meet the following requirements:

  • They explicitly help students understand what liberal education is, how the content and the substance of this course enhance a liberal education, and what this means for them as students and as citizens
  • They employ teaching and learning strategies that engage students with doing the work of the field, not just reading about it.
  • They include small group experiences (such as discussion sections or labs) and use writing as appropriate to the discipline to help students learn and reflect on their learning.
  • They do not (except in rare and clearly justified cases) have prerequisites beyond the University´┐Żs entrance requirements.
  • They are offered on a regular schedule.
  • They are taught by regular faculty or under exceptional circumstances by instructors on continuing appointments. Departments proposing instructors other than regular faculty must provide documentation of how such instructors will be trained and supervised to ensure consistency and continuity in courses.

A major theme in CSci 1001 is the mathematical underpinning of much of computer science. Here are the CLE core requirement and mathematics criteria, along with an explanation of how the course addresses each.

*They explicitly help students understand what liberal education is, how the content and the substance of this course enhance a liberal education, and what this means for them as students and as citizens

CSci 1001 is an overview of computer science. Because of the important role of mathematics in computer science,  CSci 1001 emphasizes mathematics and computational thinking as a powerful “way of knowing.” This helps students understand not only the fundamentals of computing, but also provides students with a background that helps them understand societal aspects of computing. For example, in order to understand what types of problems computers can solve, it is useful to know something about  measuring how large computational processes scale  as a function of their input size.

*They employ teaching and learning strategies that engage students with doing the work of the field, not just reading about it.
CSci 1001 is a “doing” rather than a “reading” course. Students must use what they learn from the textbook and class in order to solve computational problems in the course’s assignments, labs, and exams.

*They include small group experiences (such as discussion sections or labs) and use writing as appropriate to the discipline to help students learn and reflect on their learning.

CSci 1001 has a weekly hour and a half lab. Students usually work in pairs in the lab. Moreover, during the “lecture” portion of the class, students occasionally work on “practice problems” in small groups. Finally, the homework assignments, while primarily consisting of computational problems, occasionally include short reflection problems. For example, one assignment problem used in the past asks students to write briefly about what types of processes can be precisely specified, and what types cannot.    

*They do not (except in rare and clearly justified cases) have prerequisites beyond the University's entrance requirements

CSci 1001 does not have any prerequisites beyond the University’s entrance requirements.

*They are taught on a regular basis.

CSci 1001 is offered every Spring.

*They are taught by regular faculty, or under exceptional circumstances by instructors on continuing appointments. Departments proposing instructors other than regular faculty must provide documentation of how such instructors will be trained and supervised to ensure consistency and continuity in courses.

CSci 1001 will be taught by either regular faculty, or by highly qualified long-term instructors. The department will not assign this course to any instructors who do not know the course material well, or who are unable to teach it appropriately.

*The course exhibits the dual nature of mathematics both as a body of knowledge and as a powerful tool for applications.

Mathematics underlies many of the key concepts in computer science. Students must learn the mathematical basics, and then learn how these are applied in computer science.

For example, computers represent data, ultimately, as strings of 0's and 1's; therefore knowledge of binary representation is fundamental in understanding digital representation of data.  Specifically, in order to understand how computers work, students must grasp such mathematical basics as the difference between a number and its representation, how to represent numbers in the binary number system, and how to do basic operations, such as addition, using binary numbers. However, students must then also learn how computers use binary numbers to store and process higher-level data such as text, sound, or video files.

*Students manipulate mathematical or logical symbols.

This class will require students to manipulate mathematical and logical symbols in a number of ways, including the following:

•        converting data from one representation to  another, and doing basic operations, such as arithmetic operations, using the resulting representations.
•        using logical notation and logical operations. For example, students need to be able to perform “bitwise” logical operations on data in binary representation.
•        performing computations such as spreadsheet calculations involving non-trivial mathematical formulas.
•        precisely specifying, analyzing, and performing computational processes.

*The prerequisite math requirements and mathematics used must be at least at levels that meet the standards for regular entry to the University.

This course does not have any prerequisites beyond the mathematics needed to satisfy the University's entrance requirements.  However, students do need to meet those requirements in order to attain a certain level of mathematical sophistication. The mathematical topics in CSci 1001 are ones that often appear in a typical, introductory, University-level discrete mathematics course.  These include topics --- such as mathematical logic, digital representation of data, and use of computational formulas in spreadsheets --- that require computational, symbolic, and logical skills. So students do need the level of mathematical sophistication that they should get from fulfilling the University's mathematics entry requirements.

The focus of this course is on Computer Science, including such topics as computational abstraction, computational algorithms, logical expressions, cryptography, rates of growth, statistical security, graphics, and machine
learning.  What distinguishes this course from typical Computer Science courses is the focus on the thought and ideas themselves, as opposed to a focus on programming and system-building using those ideas.  Accordingly,
this course addresses a wide range of topics through mathematical ways of knowing.  To give a few examples:

(a)  The unit on algorithms focuses heavily on complex reasoning chains(sequences of specified conditions and behaviors).  The related unit on logical reasoning includes such issues as logical fallacies and coherent arguments.  The two units culminate in a discussion of computer problems and their sources--specifically mathematical and logical errors in classical computing systems.

(b)  Laboratory exercises on information coding address the issues of mathematical representation and manipulation.  The subsequent assignment on the same topic will evaluate student ability to perform numeric manipulation in different representations.  A similar pattern of exercises and assignment will cover cryptography--a topic built around the mathematics of prime numbers.

(c)  Class sessions and activities on the topic of computational complexity will address the challenging concept of asymptotic performance--evaluating the shape of performance functions as they grow.  Later, sessions and
activities on computer graphics address geometric modeling and sessions on machine learning explore statistical modeling.
Criteria for
Theme Courses:
Describe how the course meets the specific bullet points for the proposed theme requirement. Give concrete and detailed examples for the course syllabus, detailed outline, laboratory material, student projects, or other instructional materials or methods.

Theme courses have the common goal of cultivating in students a number of habits of mind:
  • thinking ethically about important challenges facing our society and world;
  • reflecting on the shared sense of responsibility required to build and maintain community;
  • connecting knowledge and practice;
  • fostering a stronger sense of our roles as historical agents.

New:  A major theme in CSci 1001 is computing and society.  Specifically, the course explores both the science and engineering underlying computers, and issues involving computers and society.

The science and engineering behind computers play a major role in the course. A majority of the assignments, labs, and exam questions focus on the conceptual underpinnings of computing, particularly on the mathematical ones mentioned in the core requirement section above.

At the same time, a good portion of the class is also devoted to computers and society. This  is interwoven in the course in a couple ways. First, many topics are studied both from the viewpoint of the underlying science and technology, and from a societal  perspective. For example, an exploration of digital representation of data requires looking not only at the underlying mathematics, data storage and data transmission techniques, but also at how the ability to store, process, and transmit large amount of digital data is changing many aspects of society.

Second, a good part of the class concerns current day issues involving society and computers.  These include topics such as computer security, intellectual property,  the many diverse factors affecting the developments of new technologies, and Internet governance.

These issues of computers and society are the topic of a number of in-class discussions and exercises, which are the basis for a part of the students’ grades. A few questions about these issues also appear on the assignments, labs, and exams. Finally, the class also has students do a book review. The book must be chosen from a given list that includes books on such topics as computer security, Internet governance, human-computer interaction,  and ethical issues in the development of computer systems.

Here, more specifically, is how CSci 1001 addresses each of the specific criteria for the Technology and Society Theme.

*The course examines one or more technologies that have had some measurable impact on contemporary society.

The course examines computers and related technologies. These have, of course, had a widespread impact on contemporary society. The course blends learning about the foundations of computing --- how computers work, how computational processes can be represented, etc. --- with learning about how computers are used, and how they affect today’s world.

*The course builds student understanding of the science and engineering behind the technology addressed.

In providing an overview of computing, the course examines the key ideas and issues underlying computers and their use. These include ideas such as the representation of diverse types of data in binary representation, the precise specification of computational processes, the basic parts of a computer and how they work together, and the important ideas undergirding the Internet.

*Students discuss the role that society has played in fostering the development of technology as well as the response to the adoption and use of technology.

CSci 1001 addresses this item in two ways. First, computers and their specific capabilities and uses have developed in response to very real concerns such as the need to store large amounts of data, do large numbers of calculations quickly, and transfer data from one location to another. Second, the course also explores a number of specific current day issues involving society and computers. These include aspects of computer security and privacy, uses of computers in particular areas (entertainment, robotics, etc.), intellectual property, and Internet governance. Each of these topics is used to illustrate how society plays a role in fostering technology (for example, how the Internet began as a government research project, and how that shaped the Internet’s architecture), as well as how society adopts and uses computer technology (for example, how cell phones are taking on more and more functions of personal computers).

*Students consider the impact of technology from multiple perspectives that include developers, users/consumers, as well as others in society affected by the technology.

As just mentioned, a portion of the class is devoted to exploration of specific societal issues involving computing. These inherently examine computer issues from a number of different perspectives. As one example, one in-class exercise asks students to think about why the iPod has been so successful, and points out that the iPod’s success is due not to a single factor, but to a combination of technological, business, design, social, and other issues. As a second example, computer security is examined from multiple viewpoints including from the perspectives of  individual users, developers, businesses, and government, as well as from legal and ethical perspectives.

*Students develop skills in evaluating conflicting views on existing or emerging technology.

The course helps students evaluate conflicting views in  a number of ways.
•        it presents different ethical systems such as utilitarianism and Kantian deontology. These are not presented in great depth, but are used to provide a rough framework for ethical analysis, and to point out that different people focus on different aspects of a situation. For example, some people stress consequences, others duties and responsibilities.
•        It presents logical argumentation and logical fallacies. For example, arguments for or against sharing copyrighted music files often rely on ad hominem arguments or incomplete consequentialist analysis.
•        It presents students with a background in the technology involved; often this helps clarify part of the conflict.
•        It provides students with some background on what is or is not legal. For example, what rights does copyright law give the copyright holder?
•        It shows students that while there are some areas where there are clear-cut answers, in many emergent issues there are competing considerations, and so careful, reasoned, and ongoing analysis is important.

*Students engage in a process of critical evaluation that provides a framework with which to evaluate new technology in the future.

This is addressed in the answer to the previous criterion. Specifically, the ethical, technological, etc. foundations listed in the previous answer provide a framework for students to evaluate new technology.

Old:  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.  Accordingly, a full third of this course is devoted to issues of ethics, citizenship, and public issues.  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.    more in email...
Please provide a provisional syllabus for new courses and courses in which changes in content and/or description and/or credits are proposed that include the following information: course goals and description; format/structure of the course (proposed number of instructor contact hours per week, student workload effort per week, etc.); topics to be covered; scope and nature of assigned readings (texts, authors, frequency, amount per week); required course assignments; nature of any student projects; and how students will be evaluated.

The University policy on credits is found under Section 4A of "Standards for Semester Conversion" at . Provisional course syllabus information will be retained in this system until new syllabus information is entered with the next major course modification, This provisional course syllabus information may not correspond to the course as offered in a particular semester.

New:  Here is a syllabus for the class. This syllabus is based on the syllabus for the current offering of the class in Spring 2009. However, the current course fulfills the math core requirement and the citizenship and public ethics theme requirement. The syllabus has therefore been modified by replacing the citizenship and public ethics section with a technology and society section.

CSci 1001 Syllabus
Spring 2009
Meeting time and place: The lecture portion of the class will meet 1:25 to 2:15 pm in EE/CSci 3-115. One lecture class each week will usually be a full-class discussion.
The labs will be as follows:
•        Section 2 (course # 69552) 8:00 - 9:30am F, EE/CSci 2-120;
•        Section 3 (course # 69554) 10:10 - 11:40am F, EE/CSci 2-120.

Instructors The most efficient way to reach the class staff by email is to use the CSci1001 mailing alias: Mail sent to this address will go to both instructors and both TAs, and will be read promptly. Individual hours and contact information:
•        Phillip Barry; office: office hours 10:15 - 11:00 M, 2:45 - 3:30 W, 12:15 - 1:00 F in room 214 in the 1701 University Ave. Building; phone: (612) 624-8311, e-mail:
•        Hal Peterson; office hours: 1:00—2:00 Tu, 10:00—11:00 Th in room EE/CSci 6-196. phone: (612) 626-7810, e-mail:
•        Brendan Sweeney; office hours Fri. 9:30 - 10:10 and 11:45 - 12:15 in EE/CSci 2-120. E-mail:
•        Neil Joyer; office hours: M 9-10 in room EE/CSci 4-250. E-mail:

Textbooks and readings: The textbook for this course is Fluency with Information Technology, third edition, by Lawrence Snyder. Readings from this text will be posted to the schedule on the class web page, usually a week ahead of time. Please complete these readings before any discussion of the material in class. In addition to the textbook we will also be posting or linking additional information to the class web page. Finally, one assignment for this class is a book review. A list of possible books for this will be posted to the class web page later this semester.

General course description: CSci 1001 provides an introduction to the great ideas of Computer Science; it is designed to help you understand the foundations, uses, and limits of today's computing and information technology, and to help you be informed contributors to the public dialog on policy issues related to computing and technology. This is not an introductory programming or "computing skills" class. Rather it is an overview of many areas of computer science including how computer scientists solve problems; the fundamental concepts underlying different computer applications or technologies such as spreadsheets or the Internet; and the key ideas in different subareas of computer science such as computer graphics or artificial intelligence.

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. Other CSci introductory courses include:
•        CSci 1103 and 1113 for students interested in the practical skills of computer programming,
•        CSci 1121 for students interested in a course focused solely on the Internet and World Wide Web,
•        CSci 1901 for students interested in a major or minor in Computer Science,
•        CSci 3921W for students interesting in an in-depth and somewhat technical study of the social, legal, and ethical aspects of computing.

Addressing the goals of liberal education: This course fulfills two Liberal Education Requirements: the Mathematical Thinking core requirement, and the Technology and Society theme. To help you better understand (and benefit from) the goals of the requirement, a brief summary of those requirements and how CSci 1001 addresses them is included here. The summary is derived from the University's on-line description of the CLE requirements.

General requirements for courses in the diversified core: Core courses should expose students to disciplinary content, "ways of knowing," and, as appropriate, writing. CSci 1001 focuses not only on the basics of computer science, but also on foundational ideas, skills and techniques used by computer scientists. These include precise descriptions of computer processes, abstraction, mathematical representation of data, structured problem solving approaches, and computer program representation. The class then builds to specialized concepts such as security, cryptography, computational complexity, human-computer interaction, networking, graphics, databases, and artificial intelligence.

Specific requirements mathematical thinking courses: Courses fulfilling this requirement lead students to the ability to evaluate arguments, to detect fallacious reasoning, to evaluate complex reasoning chains, and to use different techniques and tools from mathematics. Ways in which CSci 1001 involves mathematical thinking include the following:
•        Using different number systems to represent and manipulate data within the computer.
•        Using logical expressions to explore how computers work.
•        Using algorithms to precisely describe computational processes.
•        Using counting techniques and arithmetic processes in cryptology and security.
•        Exploring the asymptotic rates of growth of computer tasks.
•        Using mathematical models of objects and movement in computer graphics and animation.

Specific requirements for technology and society courses: According to the CLE guidelines, “Technology and Society courses consider the impact of technology on society as well as how society has shaped, used, and responded to new technology. ... Theme courses should introduce students to a broad range of perspectives on the adoption and use of certain technologies.” One purpose of CSci 1001 is to educate students who are unlikely to specialize in computing, so that they can knowledgeably participate in public discussion and decision-making on computing-related issues. Most weeks will have a full-class discussion session on current topic involving computing and society, supported by the technical aspects of the class and by readings on the topic. The discussion topics and readings will change from year to year as new issues become important. The discussion topics and readings will change from year to year as new issues become important. Some lab, assignment, and exam questions will also focus on these issues. Finally, a book review assignment asks you to review a book that involves social aspects of computing in some prominent way.

Student Learning Outcomes: CSci 1001 addresses the following University of Minnesota SLOs (Student Learning Outcomes):

*Can identify, define, and solve problems.

CSci 1001 focuses strongly on solving problems using computers and computational methods. This is the theme of most of the course's written assignments, labs, and exams.

*Can locate and critically evaluate information.

Although locating and evaluating information is not a major topic in this course, it is present in a couple places. First, the course requires students to make extensive use of the Internet. Second, a few classes and some assignment work is devoted to the topics of information reliability and logic.

*Can communicate effectively.

CSci 1001 has students do in-class discussion, small group work in labs, and a collaborative writing assignment.

*Understand the role of creativity, innovation, discovery, and expression across disciplines.

Computers and related technologies are evolving both in terms of their own development, but also in terms of their impact on society. One of the themes in CSci 1001 is the ideas, innovations, and means of expressions that have been key to the development of computing technologies --- what discoveries and innovations have been most influential, what forms of expression computing-related hardware and software take, etc. This is assessed through in-class discussion participation and exercises, and through the book review assignment.

*Have acquired skills for effective citizenship and life-long learning.

CSci 1001 explores current computer-related issues in society. The course teaches students important skills --- such as using ethical theories, employing logical argumentation, identifying the many different stakeholders in computer technology, and using foundational computing ideas --- to evaluate such issues both currently and in the future. This is assessed through in-class discussion participation and exercises, and through some written assignment and exam problems.

Prerequisites: CSci 1001 fulfills the CLE mathematics core requirement, so it has solid mathematical content. However, it is designed to be a introductory course for non-technical students (though scientists and engineers are certainly welcome).  Therefore, it has no prerequisites and should be appropriate for anyone with a High School education --- the mathematical sophistication gained through meeting the University's entrance requirements should give students a sufficient background.

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 grade. To earn a higher grade requires working harder, smarter, or both.

Course Structure: The course has seven major components:
•        Class lectures (usually twice each week) will focus on topics from Computer Science, covering both technical aspects and their relevance to today's issues.
•        Class discussions (usually one day per week) will provide an opportunity for interactive discussion and debate of current Computer Science-related social, economic, and technical issues facing society. Participation in class discussions is required. Specifically, you are expected to have read assigned readings and to contribute to the weekly discussions. Well-considered questions can be as important as comments or statements. While it is not necessary to contribute each and every week, you are expected to participate regularly.
•        Laboratory sections (once per week) will provide a opportunity for hands-on exploration of some course content. Sessions are held in a classroom laboratory where exercises can be completed by pairs of students working on computers. Participation is required and graded.
•        Reading assignments, both from a textbook and from on-line sources, are designed to prepare you for course assignments, exams, and discussions. Reading assignments are to be completed before the class session for which they are due.
•        Written assignments are designed to help you explore Computer Science concepts in depth. Unless otherwise stated, these assignments must be completed individually, and will be due about every other week.
•        The book review assignment requires you to read and report on one of a set of books relevant to the course. The book review will be explained further in a posted assignment description.
•        Exams: There will be two midterms exams (on Mar. 2 and Apr. 20) and a final 4:00 - 6:00pm Saturday, May 16. The exams are open book, open note; however, the expectation is that you will need to refer to the book or your notes only quickly, if at all. No other aids, such as electronic devices, are permitted during the exams. Please note the dates of the exams carefully, as make-ups will be given only under extreme circumstances.

Course Goals:
•        Show the important concepts and ways of thinking of computer science: What types of work do computer scientists do? How do they solve problems? What are the most important concepts and tools in computer science?
•        Fulfill the CLE mathematical core requirement by exploring some of the many ways mathematics is useful in computer science.
•        Fulfill the CLE technology and society theme by exploring how computing both affects, and is affected by, society.
•        Learn and practice some computer-related 'skills' such as how to construct a web page, or how to use a spreadsheet.

Late Assignments: Late assignments are penalized 10% if turned in after the start of the lecture or laboratory session where they are due, but before the end of that day. They are penalized 30% if they are 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.
Grading: Your overall course grade will be based on assignments (20%), lab participation and performance (15%), participation in class discussions (10%), the book review (10%), midterm exams (10% and 15%), and the final exam (20%). The course is graded on an absolute scale, with the following grade ranges:
     93.0% -- 100.0%   A
     90.0% --  93.0%   A-
     87.0% --  90.0%   B+
     83.0% --  87.0%   B
     80.0% --  83.0%   B-
     75.0% --  80.0%   C+
     70.0% --  75.0%   C
     65.0% --  70.0%   C-
     60.0% --  65.0%   D+
     50.0% --  60.0%   D
      0%   --  50.0%   F

Working in pairs, studying in groups, getting help: In most lab sessions you will be expected to work in pairs. We 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.In addition to working in pairs on the lab work, you will also work in pairs on the book report. The details of this will be explained later, but you are encouraged to get to know others in the class so you know which people you'd prefer to work with.

The written assignments are individual assignments. On these, you may do preliminary studying in groups, but your work on the assignment must be yours 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. Giving answers to another student or 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 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 the TA. We're willing to spend time 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 (see for a complete list of laboratories and facilities). 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 personal computer, Windows, Mac, or other, with a Web browser, word processor, and spreadsheet should be sufficient for the class assignments.

In this class, our use of technology will sometimes make students' names and U of M Internet IDs visible within the course website, but only to other students in the same class. Since we are using a secure password-protected sites, this should not increase the risk of identity theft or spamming for anyone in the class. If you have concerns about the visibility of your Internet ID or any other privacy concerns relating to the technology used in the course, please contact the professor for further information.

Incompletes: will be given only in very rare instances when an unforeseeable event causes a student who has completed all or almost all of the coursework to date to be unable to complete a small portion of the work (typically the final assignment or exam). Incompletes will not be awarded for foreseeable events including a heavy course load or a poorer-than-expected performance. Verifiable documentations must be provided for the incomplete to be granted, and arrangements for the incomplete should be made as soon as such an unforeseeable event is apparent. Any incomplete grade will require a written agreement on the work to be completed.

Withdraws: You are free to withdraw from the class up to the end of the eighth week of classes. Withdrawing thereafter is up to the college, and is not automatic. If you are not doing as well as you had hoped in the course, and are considering withdrawing, please do so by the end of the eighth week.

Class decorum: This an interactive class with students from a wide variety of backgrounds. In order to have useful discussions, we all need to 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, we hope there will be divergent opinions that will provide insight into the different aspects of the topics we explore. However, ideas should be presented respectively --- if you disagree with someone state your disagreement in a constructive way.


1        Topic:What is the Purpose of this Class?Introduction to Algorithms         Lab:Getting Started       
2        Topic:Algorithms; Computing and Ethics     Lab:Algorithms       
3        Topic:Data Representation        Lab:Data Representation        Due:HW 1
4        Topic:Information Reliability; Computers and Logic        Lab:On-line Writing       
5        Topic:Logic; Computer Security        Lab:Logic        Due:HW 2
6        Topic:Computer Security        Lab:Review for Midterm       
7        Topic:Midterm; Computers and Biology        Lab:Security        Due:HW 3
8        Topic:Counting, Scale and Complexity        Lab:Counting, Scale and Complexity       
9        Topic:Intellectual Property        Lab:Complexity        Due:First Version of Book Review
10        Topic:Introduction to HTML        Lab:HTML         Due:HW 4
11      Topic:Spreadsheets; Computational Processes and Computer Programming        Lab:Review for Midterm 2       
12        Topic:Introduction to Selected Subareas of Computer Science: Databases, Graphics, Robotics;
Midterm 2        Lab:Spreadsheets and Databases        Due:HW 5
13        Topic:More About Computer Programming         Lab:Programming        Due:Final Version of Book Report
14        Topic:The Internet; Development of New  Technologies; Regulation        Lab:Programming       
15        Topic:The Future of Computing; Other Topics as Time Permits        Lab:Review for Final        Due:HW 6
16        Topic:Final Exam               

Old:  <no text provided>