CS 161 - Introduction to Programming I
Computer Science 161 - Spring 2008 - Dr. Hutchens
Tuesdays (Roddy 147) and Thursdays (Roddy 136) 1:00 to 2:50,
Labs - most Tuesdays (Caputo 130 - Linux Lab)
Instructor
• Dr. David Hutchens
- hutchens@cs.millersville.edu - http://cs.millersville.edu/~hutchens
• Office: Roddy 132A
•
Office Hours: Monday 10-12, Tuesday 9-10, 3-4, Thursdays 9-10, and by appointment;
•
Email: hutchens@cs.millersville.edu
• Phone: 872-3838 or 872-5740
(home; before 8 PM only)
• Class Web Page:
http://cs.millersville.edu/~hutchens/cs161/
Prerequisite
Placement into Math 160 or higher. Desire and need for course.
Required Textbook
Building Java Programs: A Back to Basics Approach,
1st Edition. Stuart Reges and Marty Stepp, Addison Wesley, 2008.
ISBN 0-321-38283-8.
Goals
Our main goals this term are to learn how to develop algorithms to
solve several types of problems and how to write them in Java. We will
emphasize the iterative enhancement development technique and the use
of functions that do one thing well. You will write many programs for
practice. These assignments are a very important part of the course.
The concepts build on each other and reinforce concepts from lecture.
You won't learn everything about Java and computing in a semester, but
you will build a firm foundation for your later courses. Learning to
think about problems and express yourself precisely are additional
goals.
Grading
Test 1 = 20%
Test 2 = 25%
Final exam = 30%
Assignments (lab activities and additional programs) = 25%
I use a ten-point grading scale (93 = A; 90 = A-; 87 = B+; 83 = B; ...).
You must attempt all examinations and assignments to pass the course.
Academic Honesty
Copying or any collaboration with anyone else on tests is not permitted and may result in failure in the course.
You will be allowed to use pair programming for some assignments. You must collaborate closely with your partner. However, any other copying or collaboration with other people is forbidden. Refer to the university policy on academic honesty for details and penalties.
You may discuss approaches to solving the problem as well as general aspects of the technique we are studying. You may also seek aid in resolving compiler messages. However, if you can't explain why you did something, you probably didn't do it yourself. Finding or purchasing a solution on the internet or elsewhere and turning that in as your own work is also plagiarism. When in doubt, ask me.
Tests
Tests will be cumulative and will emphasize material we have covered
in lecture and practiced in assignments.
There will be a closed book written portion as well as an online,
open book portion.
Both portions are to be completed without help from people other than me.
If you miss a test, you will receive a grade of zero for that test. Exceptions may be made at my discretion. In fairness to all, documentation will be required. Contact me immediately, preferably before the test, if you have a problem.
Labs and Assignments
This class meets in the Linux lab most Tuesdays.
Read through the lab handout before you come to lab.
This will make the lab period much less stressful.
Many assignments will require further work outside the lab period.
You should expect to spend considerable time on the
programming assignments (labs and additional programs) outside of the
scheduled lab period.
All programs must pass through the Java compiler on the MU CS department's Linux computers without compiler warnings or errors. I also consider solution completeness, use of features, and program style. Refer to the expectations handout.
There are no late programs. Programs must be delivered by the time and date specified for the assignment. Submit what you have for partial credit. If you develop your programs incrementally, you will have something to turn in.
Special Needs
Anyone with special needs should contact me as soon as possible.