University of Utah School of Computing

advertisement
University of Utah
School of Computing
CS 1410
Syllabus
Course Title
Introduction to Computer Science I
Website
http://www.eng.utah.edu/˜cs1410
Lectures
Tuesday, 10:45 AM - 12:05 PM, WEB 105
January 12, 2010
Thursday, 10:45 AM - 12:05 PM, WEB 105
Labs
Section 6:
Friday, 8:35 AM - 9:25 AM, MEB 3225
(Attendance required)
Section 2:
Section 3:
Friday, 9:40 AM - 10:30 AM, MEB 3225
Friday, 10:45 AM - 11:35 AM, MEB 3225
Section 4:
Section 5:
Friday, 11:50 AM - 12:40 PM, MEB 3225
Friday, 12:55 PM - 1:45 PM, MEB 3225
Instructor
Peter Jensen
E-Mail:
Office Hours:
teach-cs1410@list.eng.utah.edu
Wednesdays 10:00 AM - 11:45 AM, MEB 3148
(See website for changes.)
Teaching Assistants
To be determined
Textbook
Java 6 Illuminated
by Julie Anderson and Herve’ Franceschi
ISBN: 0-7637-4963-X
Response device
ResponseCard XR
from Turning Technologies
Model: RCXR-01 or equivalent
Channel: 19 (set during class)
Midterm exam
Thursday, February 25, 10:45 AM - 12:05 PM in WEB 105 (during class)
Final exam
Thursday, May 6, 10:30 AM - 12:30 PM in WEB 105
Grading
Programming assignments - 35%
In-class participation - 5%
Written assignments / Labs / Quizzes - 25%
Midterm - 15%
Final exam - 20%
Course Overview
Here is the catalog description for CS 1410:
The first course required for students intending to major in computer science and computer
engineering. Introduction to the engineering and mathematical skills required to effectively
program computers, and to the range of issues confronted by computer scientists. Roles of
procedural and data abstraction in decomposing programs into manageable pieces. Introduction to object-oriented programming. Extensive programming exercises that involve the
application of elementary software engineering techniques.
The corequisite for this course is CS 1060 which may be waived for advanced students.
The focus of this course will be on teaching you how to solve problems using computation. More specifically, at the end of this course you should be able to start with a problem statement and then design,
program, and test an object-oriented computer program that solves the problem. Through this process
you will gain the proper knowledge, intuition, and habits that are required for success in computer science.
Students taking this course should have completed (or currently be taking) a calculus course. Students
should also be familiar with Unix or be taking CS 1010 this semester. I also recommend that students
who do not know how to type take a keyboarding class.
Pragmatics
Lectures
We will meet for lecture on Tuesdays and Thursdays for 80 minutes in WEB 105. In lecture I will make
use of both the chalkboard and of a projected laptop computer. Most of the concepts will be presented
on the chalkboard, but I will use the laptop to create programming examples. After lecture I will post
programming examples on the class website, but chalkboard notes will not be posted. (Take good notes.)
Response Device
This semester we will be using an in-class electronic response system. Students will need to buy an
electronic response keypad to participate in various classroom activities. This is part of a broader effort
that the School of Computing is making to increase student involvement in large classes.
Participation will be recorded, and at the end of the semester participation points will be weighted so
that they make up 5% of your total grade.
The response cards should be purchased from the bookstore textbook desk. The name is ”ResponseCard
XR” and the model number is RCXR-01. Note that the bookstore told me that they would buy these
back for most of their value at the end of the semester, although you probably want to hold onto these
as several CS classes (and many other classes across campus) are transitioning to use them.
You should activate your response card at home. Remove the battery protection tab and try pressing a
button. The screen wakes up when you press a button, and sleeps soon afterwards. You will need to set
your user data using the 5th menu option. (Press ’menu’ and use the arrow keys.) Make sure your device
has your first and last name and your student ID number recorded in it. (This will guarantee that you
get credit for your responses and it will help us find the owners of misplaced cards.)
This is a new educational technology, and we will be adopting new methods for using it as the semester
progresses. The goal is improved education, and your feedback at the end of the semester will be very
important.
Book
The textbook for this course is Java 6 Illuminated by Anderson and Franceschi. This is an excellent
textbook that introduces students to programming and problem solving using Java. Most of the written
2
homework and many programming assignments will come directly from the textbook. There will be
weekly reading assignments that you should read concurrently with the lectures.
Coursework
Each week you will be assigned one programming assignment and one written assignment. In addition,
you must attend the required labs.
All assignments can be accessed through the links on the course schedule, located at:
http://www.eng.utah.edu/~cs1410/schedule.html
Please make sure to review the course schedule regularly. It will be updated with assignments and
solutions as the semester progresses.
Programming assignments are usually due on Wednesdays, but may be turned in late for only one point
of penalty for one extra day. No submissions will be accepted after Thursday of each week. Assignments
must be submitted via electronic handin. Electronic handin instructions are posted on the class website. It
is the student’s responsibility to ensure the successful and timely handin of each programming assignment.
You will also meet with a TA in small laboratory sections for one hour on Fridays in MEB 3225. Prior to
arriving in lab you should print out and complete the written homework for that week. Your homework
printout will also serve as your lab sheet. This lab is equipped with a computer for each student. In each
section, your TA will guide you through a set of interactive programming exercises, check-off your lab
work, and collect the lab sheets. The laboratory sections are absolutely essential to your success in the
course, and all students are expected to attend.
The course staff (instructor and teaching assistants) will hold regular consulting hours each week during
which we will be available to help you with questions or problems. The consulting schedule may vary
and the current schedule will be available on the class website.
Computer resources
All of the programming that you do in this course will be in Java. Although you are free to use any
Java compiler that is compatible with Sun’s Java 2 JDK Version 6, we will make extensive use of a Java
programming environment called Eclipse. Eclipse will be available in the College of Engineering’s CADE
Lab in WEB 224/226 and in the School of Computing’s Software Teaching Lab in MEB 3225. Directions
on downloading and using Eclipse are posted on the class website. You may install Java and Eclipse on
your home computer if you wish.
Students will need to get accounts for the CADE lab (WEB 226). For those students who do not already
have an account, you will need to get an account before the first lab session. If you have any problems
accessing your account, or if you register late and need an account, please see the CADE help staff in
WEB 226.
Exams and grading
There will be one midterm and one two-hour final exam. The midterm will be in class on Thursday,
February 25 and the final exam will be on Thursday, May 6 at 10:30 AM. Exams will cover material given
in lectures and assignments. Makeup examinations will only be given under exceptional circumstances,
and may contain different questions than the regular exam. Please let me know of scheduling conflicts
before the exams. Makeup exams will be proctored by the University of Utah Testing Center, and they
charge a small fee.
The final grade will be calculated from exams, programming assignments, written homework, and laboratory exercises. A’s will be given to students within 90% of the best student, B’s within 80%, C’s within
70% etc. The breakdown is as follows: the midterm is 15%, the final exam is 20%, the written homework,
lab exercises, and quizzes are 25%, participation is 5%, and the programming assignments are 35% of
your grade. (Total points for each group of scores will be scaled according to these percentages.)
3
Students who fail all exams may fail the class, regardless of their homework and assignment scores.
Sometimes a mistake is made in tabulating a grade. Should you discover what you think is an error in
grading, please request a regrade. Regrade forms are available on the course website. Fill out the regrade
form and resubmit your assignment if you believe a mistake was made during grading.
How To Approach This Class
For most of you this will be your first class in computer science. Here is some advice on how to approach
this class.
• Work near other students. Students who work at home alone are at a huge disadvantage on the
assignments. Working in the lab allows you to ask other students for help understanding the
material. Be careful, though, to respect the rules regarding plagiarism.
• Take notes and concentrate in lecture. I recommend taking notes in class, particularly the information that I put on the chalkboard. Many students find that taking notes not only helps keep them
focused, but it also helps them learn the material. On the other hand, programming examples that
I do on the laptop will be made available on the class website (or from the book), so don’t waste
your time trying to write these down.
• Ask questions. It is important that at the end of a lecture you understand the material presented. If
you find yourself not understanding a concept, then ask a question. There are no stupid questions,
although if time is tight I may have to answer your question after class. You are allowed to ask as
many questions as time allows, but please only answer my challenge questions once per class period.
This is to give others in class a chance to participate.
• Use the teaching lab. Make use of the lab assignment as fully as you can while you are in the lab.
The labs provide an ideal learning environment where ideas can be easily tested and where your
questions can be quickly answered. Note that while the TA will always help you, other students
may be able to answer your questions as well. Also, make sure to do the written homework before
coming to lab, many lab examples will build upon the written homework.
• Pay attention to assignments. The programming assignments will be your most important learning
experience in the course. Some students expect that if they have done the reading, concentrated in
lecture, and participated in the labs, then the assignments will be straightforward. Not so; they will
rarely be straightforward! The assignments are designed specifically to challenge you by requiring
that you apply the concepts you have learned to new situations. Here is a suggestion on how you
might approach each assignment:
– As soon as you receive an assignment, read it and understand what the problems are and what
is being asked, even if you are not ready to commit any time for actually solving them. It is
much easier to think about the problems if you have actually read them, and you may find
yourself subconsciously thinking of a solution long before the assignment is due.
– Ask questions when you get stuck. The TAs and I are available via email and during the office
hours.
– Start early! Waiting until three days before the due date is a bad plan. The TA consulting
hours will be very busy during the last few days, and no TAs will be available on weekends.
Beginning students are often surprised by the amount of human effort that has to go into designing,
writing, and testing a program. Complaints from students about the amount of time required by introductory computer programming courses are universal. You should expect to spend three hours outside
of class for every hour that you spend in class. In other words, you should expect to spend 12 hours per
week reading, studying, and developing programs. Many of you will spend more than that. Please keep
this in mind when setting up your schedule for the semester!
4
Getting Help and Information
The class website is:
http://www.eng.utah.edu/~cs1410
It will contain a variety of information resources, including course staff consulting hours and e-mail
addresses; links to course handouts and problem set solutions; links to examples from lecture, and links
pertaining to the textbook, Java, and programming environments.
The course staff email address is:
teach-cs1410@list.eng.utah.edu
This is the correct place to send any questions you may have. Any email you send to this list will go
to all of the teaching staff (the instructor and the TAs). Please only send messages to me or your TA
individually if privacy is required.
Announcements specific to a programming assignment will be added to the top of the problem description.
For this reason, I recommend not printing out the programming assignments, otherwise you will never
see the clarifications. Please view the programming assignment descriptions directly from the web.
Please read your email regularly. Important announcements will be emailed to the class mailing list. If
for some reason you do not receive the class emails, please make sure our emails are not being filtered by
your Internet service provider. Also, make sure your official University of Utah email address is correct.
We encourage you to seek us out whenever you need help, advice, or encouragement. We will always
be available during our regular office hours, and you can make appointments for other times. Simple
questions can often be answered by phone or email.
Cooperation vs. Cheating
Working with others on assignments is a good way to learn the material and I encourage it. However,
there are limits to the degree of cooperation that I will permit.
When working on assignments, you must work only with others whose understanding of the material is
approximately equal to yours. In this situation, working together to find a good approach for solving a
problem is cooperation; listening while someone dictates a solution is cheating. You must limit collaboration to a high-level discussion of solution strategies, and stop short of actually writing down a group
answer. Anything that you hand in, whether it is a written problem or a computer program, must be
written from your own thoughts and in your own words. If you base your solution on any other written
solution, you are cheating.
When participating in class using response devices, you must enter your own responses. Do not let
someone participate for you if you skip class - this is also cheating.
When taking an exam, you must work completely independently of everyone else. Any collaboration
here, of course, is cheating.
We do not distinguish between cheaters who copy others’ work and cheaters who allow their work to be
copied.
If you cheat in any amount, you will be caught, and you will be given an E in the course and referred to
the University Student Behavior Committee. If you have any questions about what constitutes cheating,
please ask. Remember, if you base your solution on any other written or group solution, you are cheating.
Each year, approximately five students who cheat get an E in my classes.
5
First Homework and Lab Instructions
CS 1410 - Week #1
This first homework and lab are each worth ten points. Follow the instructions below. Complete steps
1..4 (including the homework) prior to your first lab session.
1. Get a CADE account login ID and password. (These accounts are different from your other University accounts.)
• If you already have a CADE account, use your existing login ID and password. If you have
forgotten your password, go to the CADE help desk in WEB 226 to have your password reset.
• If you do not have a CADE account, go to the CADE help desk in WEB 226 to get an account.
• Keep all of your passwords written down for the first few weeks. If you change your password,
keep both your original and changed passwords. Password problems are the chief cause of
trouble in lab sessions.
2. Log in to one of the CADE machines and start a web browser (such as FireFox). Load the class
website:
http://www.eng.utah.edu/~cs1410
3. Complete the written homework (attached to these instructions) and then log out. Make sure to
take the written homework to your first lab session.
4. Test your login on both Windows machines and Linux machines. The Windows machines are in
WEB 210, the Linux machines are in 226. Make sure to remember both passwords, and keep your
original ones around even if you change them. Go back to the help desk if you have any troubles.
5. Go to your lab session on Friday, January 15 in MEB 3225. Log in to any machine except machine
#16. (Machine #16 is reserved for the TA.) As you log in, make sure the “Log in to” box is set to
“USERS”.
If you have any problems logging in, please ask your TA for help.
6. Open a web browser, and again load the class website.
7. Load the course schedule and find this week’s lab assignment.
8. Follow the instructions given in the on-line lab assignment.
9. If you did not already fill out the survey, fill it out and give it to the TA.
10. Ask the TA to check your work. This lab is worth ten points, so don’t leave until the TA has
checked your work. The TA will sign your written homework to give you credit for the lab.
If you have any problems with the lab, please ask the TA for help.
CS 1410 Survey
Name (not required):
Are you familiar with using a word processor?
Are you familiar with surfing the web? If so, what browser do you use?
Do you have (and use) an email account?
Have you used UNIX or Linux before?
Do you have any programming experience? If so, what languages do you know? (No experience is needed
to take this course.)
Why are you taking this course?
What do you hope to learn during this course?
If you have any other comments, please list them here.
Download