Introduction to Computer Science
Fall 2007
| Professor: | Thomas C. Bressoud | Phone: | 587-5630 |
| Office: | Olin 207 | E-mail: | bressoud@denison.edu |
| Office Hours: | See Bressoud Fall Schedule | Mailbox: | Olin 201 |
| Meeting Times: | MTWF, 11:30am-12:20pm, Olin 217 | ||
| Final Exam: | D: Tuesday Dec 11, 9-11am |
Announcements
- See the results of the Etch-A-Sketch Homework turned in by the students in this class!
Description
CS-171 is a one-semester introduction to computer science, with an emphasis on designing algorithms and implementing those algorithms using a computer programming language.
The Denison computer science curriculum begins with a fundamental assumption that, to be a successful computer scientist, you must begin with a foundation that includes good programming skills. Thus, one of the first goals of this course is for you to learn a new programming language. Java has been selected as the introductory computer language of choice for the reasons of cross-platform ubiquity, relative simplicity, and strong object orientation as the principal programming model. So you will learn the syntax and semantics of Java. This is much like learning to speak a foreign language with very restrictive syntax and vocabulary. The key to learning the language is by practicing as much as possible.
The other reason to focus on a programming language in the introductory computer science curriculum is to use it as a means to develop problem solving skills. At its core, computer science is about the algorithms used to solve problems. And learning to translate a real-world problem into a precise, specific, realizable set of steps (or algorithm) is exactly the type of skill that extensive practice with a programming language will allow us to develop.
The course design will use the application area of Media Computation and communication through media as the primary vehicle for motivating students and introducing topics central to Computer Science. CS-171 will introduce programming and computing ideas through students programming image filters in the manipulation of digital images, splicing and reversing sounds, creating visualizations of sounds, and implementing digital special effects.
This thematic version of the course should appeal to a broader range of students, including both majors and non-majors, providing additional relevance and creativity with this new design center. Further, the use of digital media and media computation will provide concrete experiences for the the students that will allow them to develop and learn abstractions based on those experiences.
Beyond programming and algorithms, computer science entails aspects of computer organization and architecture and representation of information, a foundation in discrete mathematics, including graph theory, how languages are desgined, networking and distributed systems, and computability. Although we cannot give depth to all of these aspects of computer science, this course will introduce you to a few of these topics through the semester.
Textbook
The following textbook is required for the course. While the text is not yet published, bound copies are available through the Denison bookstore.
Joan Krone and Thomas C. Bressoud and R. Matthew Kretchmar. Essentials of the Java Programming Language. Denison University. Not yet published. In addition to the textbook, we will be utilizing a web site that provides practice exercises that have been organized in a manner consistent with our textbook. You will use a web browser to register for our section of the course. Registration costs $25 and is accomplished through the TuringsCraft link given below. The access code for registering for our class section is: DENISO-8419-2605
TuringsCraft CodeLab registration TuringsCraft CodeLab login
Grade Determination
| Midterm Tests (4-5): |
30%
|
| Homework Assignments (~8): |
35%
|
| Practice Exercises and Labs: |
10%
|
| Final Exam: |
20%
|
| Class Participation: |
5%
|
Course Web Page
A web page will be maintained for this course. The web page will include the schedule for the course, all reading assignments, programming assignments, example programs, and other useful information, including announcements to the class. I expect you to check the web page regularly.
Course Work
- Midterm Tests:
-
In order to provide frequent feedback on how well you are progressing and mastering the material in this course, we will hold tests every two to three weeks, starting Friday, September 7th. These are explicitly intended to not be high-pressure exams, but to serve to keep everyone on track with frequent assessment opportunities.
- Homework Assignments:
Every week and a half or so, there will be a homework assignment due. Many of these will be programming assignments but about 3 will be projects incorporating some of the broader topics of computer science. It is very important that you allocate sufficient time for working on these assignments. They cannot and should not be attempted the "night before it is due", as this will surely lead to frustration and incomplete submission. It is through these assignments that you will gain the practice and deeper understanding of the Java programming language and the broader topics of computer science.
You may discuss programming assignments with other students in the class in terms of how to approach the problem, but the program must be your own. You may not get help on programs from students outside the class. You may, however, seek out the help of the Computer Science fellows, who will hold regular hours at Olin Hall. In addition, you are always welcome to come see me for help.
- Practice Exercises :
-
In learning to program, you are learning a new language. An extremely important aspect of learning a language is sufficient practice of the lexicon, syntax, and semantics of the language. It is through the mastery of these elements that the ability to write larger programs is born. Thus, an important component of the couse is the set of practice exercises that you will be assigned through the TuringsCraft CodeLab system. These will be due every week, with due dates/times and recording of submission managed by the TuringsCraft system.
On Tuesdays of each weeek, we will engage in practical labs designed to support the current material. Some of these labs may include work on the Turingscraft exercises. Others may be independent labs with questions to be answered and submitted before the next class period.
Final Exam:
-
There will be a final exam for the course. The final will be cumulative and cover material from the entire semester. All exams will be closed book, closed notes.
Policies and Student Responsibilities
Participation and Attendance
In general, we would like everyone to do their part to make this an enjoyable interactive experience. Hence in addition to attending class, we would like you to actively participate by asking questions, joining in our discussions, etc. Note that there is a significant portion of your grade attributed to class participation. Any day that you do not attend class, you (by definition) do not participate, and so be very careful about missing class, as it will affect your grade.Your attendance is expected at each class meeting. Through the class participation portion of the grade, I will reduce your grade for absences. Up to 3 excused absences will be tolerated without affecting your grade. Such absences should be communicated to me in advance.
Readings and In-class Material
You are responsible for the content of reading assignments, lectures and handouts, as well as announcements and schedule changes made in class, whether or not you are present. If you must miss a class, you are responsible to get what you missed.
It is very important that you keep up with the assigned reading. Read your book on a daily basis. Be especially sure to read the material in the appropriate chapter before coming to class so you will be ready to ask questions. All reading assignments are listed on the class web page. The material in the course is, by necessity, cumulative. Be warned that if you fall behind, you will not be able to catch up easily.
Exam Policy
Exams will be given in class on the day scheduled and may not be made up. On rare occasions, and with a Univeristy sanctioned excuse, I may allow an exam to be taken in advance. See me as early as possible to discuss this.
Homework Policy
There will be a number of written and programming assignments given during the semester which will be due in class on the date specified. No late homework assignments will be accepted, unless arrangements have been made with me well in advance. Since it will most likely not be obvious how long an assignment might take, you are well advised to start early. Like other classes at Denison, it is expected that you devote at least 3 hours to these assignments for each hour of class time. Homework assignments must be typed.
You may discuss homework problems with other students in the class, but written (and typed) work must be your own. In other words, you may talk about homework problems with your peers, but when it comes time to write your solutions, you are on your own. You may have general conversations about problem strategies, but you must leave these conversations without having written anything down. Keep in mind that it is quite easy for me to tell when two students have been working too closely. In such cases, I am obliged to report the instance to the Associate Provost.
You may not get help from students outside the class. If you have questions, come see me and I will be happy to help. You are also quite welcome to send me e-mail or call if you would like to discuss an assignment.
Disability Accomodation
Any student who thinks he or she may need an accommodation based on the impact of a disability should contact me privately as soon as possible to discuss your specific needs. I rely on the Office of Academic Support in Doane 104 to verify the need for reasonable accommodation based on documentation on file in their office.
Academic Integrity
The students and faculty of Denison University and the Department of Matematics and Computer Science are committed to academic integrity and will not tolerate any violation of this principle. Academic honesty, the cornerstone of teaching and learning, lays the foundation for lifelong integrity.
Academic dishonesty is, in most cases, intellectual theft. It includes, but is not limited to, providing or receiving assistance in a manner not authorized by the instructor in the creation of work to be submitted for evaluation. This standard applies to all work ranging from daily homework assignments to major exams. Students must clearly cite any sources consulted—not only for quoted phrases but also for ideas and information that are not common knowledge. Neither ignorance nor carelessness is an acceptable defense in cases of plagiarism. It is the student’s responsibility to follow the appropriate format for citations.
As is indicated in Denison’s Student Handbook, available through mydenison.edu, instructors must refer every act of academic dishonesty to the Associate Provost, and violations may result in failure in the course, suspension, or expulsion. (For further information, see http://www.denison.edu/student-affairs/handbook/article7.html.)
Topics
- Java Applications and the Development Process
- Console Input/Output
- Variables and Basic Types
- Expressions and Assignment
- Using Objects; method invocation
- Conditionals
- Repetition
- Strings
- Arrays
- Method Definition
- Classes
