CMPS 11 - Winter 2017 - Introduction to Programming in Java

Instructor Information

Charlie McDowell
Office: E2 349B
Office Hours: Tu/Th 2-3, W 4-5pm
E-mail: mcdowell@ucsc.edu

Online Support Systems

We will be using four online support systems.

The Canvas course managment system is where you will complete homework in the form of online "quizzes", submit lab assignments, submit your programming logs for the programming assignments, and find all of your scores collected in one place.

CrowdGrader is where you will submit the source code for your programming assignments and where you will go to review the submissions of your classmates.

Piazza is where you will go to submit and answer questions related to the class online. The system is highly tailored to getting you help fast and efficiently from classmates, the TA, and myself. Rather than emailing questions to the teaching staff, I encourage you to post your questions on Piazza. If you have any problems or feedback for the developers, email team@piazza.com.

We will be using CodeLab for some short homework exercises.

I will also be posting "movies" with audio of the primary computer display from class. These will appear in class recordings

Lab Information

Lab attendance counts for 5 percent of the grade. It is strongly recommended that you plan to attend lab regularly. This is a time to complete the short lab exercises due most weeks, to work on your programming assignments with your partner (see below), get help from the teaching assistant and/or tutors, and get help from other members of the class. Do NOT expect to generally be able to complete the programming assignments during just your assigned lab section. You should plan to either attend multiple sections or arrange to meet with your partner outside of scheduled lab time. You cannot learn to program without doing it, and lab time is an excellent time to practice with someone around to help you.

The lab times and locations are listed below. The names you see are the first names of your TA/tutors. You may send private questions to the TA/tutors by making private posts in piazza and select "instructors" as the recipient. The numbers in () are the latest enrollment numbers for that section.

A: Mo 1:00PM - 2:30PM (40) Vedang, Katerina, Charlie
B: Mo 2:30PM - 4:00PM (40) James, Katerina, Jeffrey
C: Tu 8:00AM - 9:30AM (20) Ruben, Katerina
D: Tu 5:00PM - 6:30PM (40) Vedang, Katerina, Jeffrey
E: Tu 6:30PM - 8:00PM (23) Vedang, Jeffrey
F: We 8:00AM - 9:30AM (0) (cancelled)
G: We 9:30AM - 11:00AM (18) James
H: Th 9:30AM - 11:00AM (17) James
I: Fr 12:00AM - 1:30PM (9) Ruben
J: Fr 1:30PM - 3:00PM (15) Ruben

 

You are guaranteed a seat on your assigned lab day, but are welcome to attend any lab section on a first come, first serve basis for additional help. There will be no makeups for missed labs, however, everyone gets one free day provided you sign in to some lab during at least one of the 3 weeks when lab attendance is not counted. There are 7 weeks during which lab attendance is counted. Attendance will not be taken week 1, too much shuffling. It will not be taken week 2, Monday 1/16 is a holiday and thus the Monday labs cannot meet. It will not be taken the week starting 2/20 which is another Monday holiday. If you attend your assigned lab 6 of those 7 weeks and sign in during one of the no-attendance weeks, you will receive 100% of the lab attendance credit. Although attendance will not be taken, labs will meet the first week and there is work for you to complete during lab.

Text:

Required:
Java by Dissection 2nd Edition. Pohl and McDowell The text is available online at http://www.lulu.com/spotlight/javabydissection The first three chapters are available for free downloading from that same site. A complete electronic copy is also available for only $5.

iClicker

CodeLab

 

Evaluation:

Your grade will be the best of the following two (you don't have to choose).

  • Lab attendance (5%) (see the Lab Attendance Policy)
  • Class Participation with iclicker (5%)
  • Programming assignments (15%).
  • Homework (review questions) and Lab assignments (20%).
  • Bi-Weekly quizzes (best four out of five) (30%).
  • Final (25%).
  • OR
  • Lab attendance (5%) (see the Lab Attendance Policy)
  • Class Participation with iclicker (5%)
  • Programming assignments (15%).
  • Homework (review questions) and Lab assignments (20%).
  • Bi-Weekly quizzes (best four out of five) (15%).
  • Final (40%).

minimum of 50% on each component of the grade is necessary but not sufficient to pass this class. This means, if you receive less than 50% on any one of these you will not pass, however, just because you score at least 50% on each does not imply that you will necessarily pass. You cannot pass this class if you do not do the programming assignments, or do not do the review questions, or score less than 50% on the final or quizzes.

Opting out of the final exam

The final exam is optional. If your average score for all 5 quizzes is below 80% you will lose that option. If you decide to not take the final, the "final exam" portion of your grade will be your 5 quiz average. Note that the quiz grade is normally computed by dropping the lowest quiz score (best four out of five) but that for opting out of the final all five quiz scores will be used (not dropping of the lowest). To elect this option simply send an email to the instructor at least 24 hours before the final exam. You are also advised to get email confirmation from the instructor that indeed your 5 quiz average is above 80%. To clarify a common question, your quiz score will always be the best four out of five, regardless of whether or not your five quiz total is used as your final exam score.

If you take the final exam, it will be scored and counted. You cannot make this decision after seeing or taking the final exam.

Working Together:

The programming projects are to be done in two person teams following the pair programming guidelines.  Note that pair programming is not simply a two person team where one person does some of the work, the other does some of the work and then it gets combined. It is two people working together at the same computer on the same code.

You will be assigned a new partner from your same lab section for each assignment. New lab partner assignments will be posted the same day that assignments are due. The normal policy is for all students to be assigned new partners after each project, however, if you feel strongly that you want to continue with your current partner or request a specific partner, you may make your request at www.soe.ucsc.edu/~charlie/programmingPartnersBoth partners must make the request, and it will require a review and approval by the instructor. 

You may freely give and receive help with the computer facilities, editors, debugging techniques, the meaning and proper use of Java constructs, built-in functions, etc.. You should not discuss your design or implementation of the programming assignments with students other than your partner until after they are turned in. In particular you should not view another person/pair's program, or allow someone (other than your partner) to view any part of your program, prior to the due date for that assignment. Obviously, copying any part of another person/pair's program, or allowing your program to be copied is not permitted. A program, Moss, will be in use to detect copying. If you have any questions on this important point, please see me.

If you should happen to use some actual code you got from someone other than your partner (such as the TA or some tutor or a previous partner or your room mate or on online resource) you MUST credit that person with a comment preceding the code in question (see "Giving Credit Where Credit is Due"). This could also come up if you were discussing a program with another student from the class and ended up writing some code on scrap paper or a white board. The safe and proper thing to do in this situation would be to insert a comment in your program where that code snippet is used. At worst you might lose a few percentage points if it was a really key part of the assignment. Failure to draw attention to the code snippet with a comment could result in a charge of academic dishonesty. Give credit where credit is due.

It is highly recommended that you read

All I Really Need to Know about Pair Programming I Learned In Kindergarten

Academic Dishonesty:

Any confirmed academic dishonesty including but not limited to copying programs or cheating on exams, will constitute a failure of the computer ethics portion of this class and may result in a no-pass or failing grade. You are encouraged to read the campus policies regarding academic integrity.

Programming Projects:

Everyone should submit their own programming log by pasting the log into the text area provided in Canvas for the assignment. The log should be created by copying and modifying as appropriate, one of the template logs from log templates.

CrowdGrader will not accept any late assignments. Late programs will be accepted up to the start of class following the due date via Canvas (attach the same file you would have submitted to CrowdGrader). Such programs will be penalized 10% regardless of whether it is 1 minute late or turned in at the very last minute. For on time assignments submitted to CrowdGrader, you do NOT need to attach your source files in ecommons. You can submit repeatedly in CrowdGrader so don't wait to the last minute. Your latest submission is the one that will be graded. In addition, you and your partner should both submit the files in CrowdGrader. Whichever is submitted last will be the one that is graded.

The programs you submit this quarter should be original programs created just for this class. It is NOT acceptable to submit programs that you (or someone else) has written previously. As indicated above, if you incorporate any portions of programs written by someone else, or by you for a prior course or assignment, then that should be clearly noted in the program via comments. (See "Giving Credit Where Credit is Due".)

Quizzes

There will be a quiz approximately every other week. See the class Schedule for details.

If you qualify for classroom accommodations because of a disability, please get an Accommodation Authorization from the Disability Resource Center (DRC) and submit it to your instructor (Charlie McDowell) in person outside of class (e.g., office hours) within the first two weeks of the quarter. Contact DRC at 459-2089 (voice), 459-4806 (TTY), or http://drc.ucsc.edu for more information on the requirements and/or process.