General Overview
This course offers an introduction to the art of computer programming and assumes that you have had no prior experience in programming. This course focuses on thinking algorithmically and problem solving while learning how to program a computer in a high-level language. General principles regarding programming, algorithm design, procedural abstraction and problem-solving will be covered. The backdrop for learning computer programming is the Java programming language by Sun Microsystem. Java is an object-oriented language that has gained popularity in recent years as a highly portable, well-constructed programming language. The core of Java is rather small, but the libraries that extend it will seeem boundless. We will be studying the core pieces and many parts of the libraries. The best way to learn to program is to practice. We will be doing a lot of practice!Prerequisites
- There are no prerequisites to this class.
Overall Objectives
- Develop clear and correct algorithms to solve problems on computers.
- Read and interpret precise program specifications and develop Java programs from those specifications.
- Apply software engineering principles to programming.
- Test programs and efficiently locate operating flaws (bugs) in those programs.
- Understand some of the ethical issues related to computer programming.
- Programming practice, practice, practice.
Description of course practices
I believe that the role of the instructor of a course is to guide
students to develop their interest in and understanding of the course
material. Within that philosophy, you will find that I don't
lecture a lot, nor do I provide students with "the answer". In
many cases with programming, the instructors and TAs will guide you to
find the answers instead of simply providing you the answer to a
problem you may be having. This course will have three distinct
parts that will interact to help you understand the course material.
The "preparation" will include reading, video tutorials, and quizzes.
They provide the theoretical framework and help you to learn the
mechanics of programming.
The "lecture" days provide the opportunity to apply what you have
learned in the preparation phase. "Lecture" days may include
review of the prior lab and unplugged labs that allow you to explore
and apply the new material with a group of colleagues. During
lecture days, you will practice communication skills in the context of
programming and will practice working in groups. Students will
be responsible for ensuring that all members of the group are prepared
for the next day's lab which will use the material from the lecture
days.
The "lab" days will permit students to practice
what they have learned in lecture or read in the assignments.
Electronic labs will consist of either experimentation, program
development or both. If a student finishes the assigned lab exercise
early, time to work on programming assignments is permitted. Students
may help one another in lab, but must turn in their own completed labs
unless otherwise directed. In general, labs will have an assigned task,
so should not be viewed as“study hall”. Labs may take longer than the
lab period provided and need to be finished as homework.
In addition to lab work, students will have assigned programming
projects which are longer term assignments combining many of the
individual skills practiced in lab. Programming projects must be
completed on one's own with help from the TAs and the instructor for
the class only.
We will use Blackboard and the web as a means of communicating.
Announcements for class will be made on the Blackboard announcements
page or the course web page if Blackboard is unavailable. Any other
announcement that you receive through other means (such as e-mail) is
suspect unless confirmed by Blackboard or the course web page. If I
send an e-mail to the class as a whole, I will also put the text into a
Blackboard or web announcement.
Coding Standards:
- All code written and turned in for a grade must adhere to a set of coding standards. We will cover such standards in class. This includes lab assignments as well as programming projects. These standards will follow normal Java coding standards as well as some specialized requirements for this class.
Textbook and Required Material
- REQUIRED: Gaddis, Tony (2008):
- Starting Out With
Java: From control structures to objects. 4th ed. Addison-Wesley. ISBN
0-13-608020-0. Provides concrete examples of programming concepts and
implementation techniques using the Java language as a base.
NOTE: You may use the 3rd edition text instead of the 4th if you can find it (ISBN 0-321-47927-0).
Sources: JMU Bookstore, online at Amazon or B&N. Feel free to get used copies. NOTE: The Bookstore is offering a rental program. You will use this book for two semesters and may continue to use it as a reference in other classes. Therefore, it will be likely that you should buy the book and not rent as it will be most cost effective for you to do so.
-
-
- Java web site: http://java.sun.com/javase/6/docs/api/
- JAC Card:
- There may be times in lab that you need to print a worksheet, a completed assignment or other work. You must have your JAC card with you and some money on it for printing. Make sure that you have a couple of dollars on the card each day. JAC cards can be loaded in cash at the DART machine located in the HHS basement and other places around campus. Printing can also be done in the Copy Center located on the first floor of the HHS building.
- Backup Media:
- It will be important that you have a backup device available to use in the lab. While you will get some network space, sometimes the network goes down and you need some way to continue working. Lab machines do not provide a permanent save. When the machine is logged out, your work is lost.
Grading
Item category | % | Expected date due |
Exam 1 | 15 | Week 5 |
Exam 2 | 20 | Week 10 |
Final Exam | 25 | December15 , 2010 (Wednesday) 6-8 pm |
Programming Assignments | 20 | various |
Labs and participation | 20 | almost every day |
Exams and programming assignments are graded on a 100 point scale. Letter grades correspond to 10 point ranges...90 - 100 = "A", 80 - 89.999 = "B", etc. "F" is used for work below 60%. For labs and homework, grading will be A(100), B(85), C(70), F(50), or 0.
Final grades will be based on a scale similar to the exams and programming assignments. Plus and minus grades will be used to differentiate between work within one grade category.
Class Policies and Student Success
See the link to the left for general instructor policies. Specific policies and items which will insure your success in this class are:
- Come to class, come to class, come to class - Students who attend class regularly will keep up with the workload better, will gain insights from talking with classmates or the instructor, and will do better in this class as a result.
- Workload -This is a four(4) credit hour class. There is considerable outside work expected. More work will be done at the end of the semester than at the beginning. Be sure to get started on programming assignments early as these may be more difficult than they first appear.
- Late assignments - All lab assignments and homework are due at the beginning of class on the day that they are due. No late assignments will be accepted for credit, although I will review late assignments at your request to help you learn. For programming projects, late assignments will have a per day penalty associated with them.
- Exams - We have two midterms and a final exam. All sections of CS139 take the exams on the same day. The final exam will be held at a common time, scheduled for Wednesday December 15 at 6pm. If you have an academic conflict with this exam time, please let me know NOW! We will resolve these conflicts with a make-up time that suits schedules of those affected.
- Honor Code -Every semester I have incidents of students who fall behind in their work and cheat on programming assignments in some fashion. I report ALL incidents of academic dishonesty to the Honor Council. If the violation is severe, I will refer it to the Honor Council for formal resolution. Less severe violations may be handled informally. If you know of cheating in this class, it is your responsibility to let the instructor know as soon as possible. If you are involved in a situation where you are not sure if what you did was right, please see me.
- Extra Credit - I generally do not have extra credit opportunities. This class involves many different types of graded work. Keep up with the work and you will not need extra credit. I do expect to drop several of the homework/lab grades (about 10%).
- Student Success - You will be successful in this class if you:
- Attend class and lab each day.
- Ask for help when you need it. We have TA assistance in the evening and weekends, and I have plenty of office hours. I will be happy to make a special appointment if you cannot meet during normal office hours.
- Get started early on assignments.
- Think about what you are doing...don't just do.
- Experiment with the language and assignments and talk to your colleagues during lab time.
- Don't put yourself into a position of providing unauthorized help to another student.
- If you need additional resources to help you with your learning, let me know. Additional reference books may be placed in the library upon request or I may loan books to individuals.
Students with Disabilities:If you are a student with a documented disability, who will be requesting accommodations in my class, please make sure you are registered with the Office of Disability Services, Wilson Hall, Room 107 (568-6705) and provide me with a copy of your Access Plan letter outlining your accommodations. I will be glad to meet with you privately during my office hours to discuss your special needs. The sooner you can do this, the better I can assist you in meeting your learning goals in this course.
Student Responsibility: Student are responsible for adding and dropping courses via e-campus. The last day to add a course for the Fall 2010 semester is Thursday, Sept 16, 2010 (signatures required after Tuesday, Sept 7, 2010). The last day to drop a course for the Fall 2010 semester with a "W" grade is Thursday, Oct 28, 2010. I do not give "WP" or "WF" grades to students requesting a drop for poor performance after the deadline.
"Excused" absences: Students who are unable to attend class due to JMU sponsored activities (such as sports, band, academic competition, academic field trips, etc) or personal religious observance may request deadline extensions BEFORE the expected absence. I will do my best to accommodate your special circumstances.
For clarification of these and other instructor policies please refer to the policies link.