Last Updated: 2017-09-15 Fri 16:56

CSCI 1103 : Intro to Java

University of Minnesota

4 Credits, Fall 2017

1 Course Description

CSci 1103 is an introductory programming course for students who with little or no programming experience. Problem solving and program design will be an important focus of the course. In addition to programming, the course will introduce basic information about how computers are organized in order to execute programs, and the system software needed to translate and run programs. This course is accepted as a substitute for CSci 1133 as the beginning of a B.S. degree in computer science or computer engineering.

2 Basic Information

2.1 Prerequisites : None

2.2 Instructor

Name Chris Kauffman
Sections 001
Office Keller 6-198
Phone 612-626-7510

2.3 Teaching Assistants

TA Role Mail Lab Assignment(s)
Christopher Jonathan GTA -
Lily French UTA 2,3
Tyler Schiffler UTA 4,5
Keith Schmidt UTA 2,3,4
Devon Tuma UTA 4,5
Nicole Walker UTA 2,3

2.4 Lectures and Discussion

Meeting Day / Time Location Staff
Lecture 001 M,W,F 11:15 AM - 12:05 PM Anderson Hall 370 Kauffman
Laboratory 002 M 12:20 PM - 02:15 PM Keller Hall 1-262 Lily, Keith, Nicole
Laboratory 003 M 02:30 PM - 04:25 PM Keller Hall 1-262 Lily, Keith, Nicole
Laboratory 004 M 04:40 PM - 06:35 PM Keller Hall 1-262 Keith, Tyler, Devon
Laboratory 005 M 06:50 PM - 08:40 PM Keller Hall 1-262 Tyler, Devon

2.5 Course Materials


Introduction to Programming Using Java, Seventh Edition by David J. Eck
Available free online at

Additional course materials and links will be posted and announced during the course.


It is assumed you will have access to a computer with the ability to edit, compile, and run Java programs. Some university labs provide this ability; the first week of the course will cover how to set up your personal environment as well. If you have difficulty accessing a suitable environment, contact the course staff.

You will need to create a CSE Labs account for use on assignments and during Discussion. Accounts can be created here:

2.6 Communication

  • Piazza is the central site for our announcements and discussion board. The announcements and discussion board are part of the required reading for the course.
    • Sign up for our piazza site here:
    • All instructors and TAs can view all material on Piazza
    • Do not e-mail course staff about programming problems; use the discussion board.
    • Use public posts on Piazza to discuss programming project requirements, labs, and other material related to the course.
    • When prompted by a TA, use private posts on Piazza to share portions of your code pertaining to your questions. Don't share your project code in public posts.
    • Refer to the Piazza main page for etiquette on what should be posted publicly versus privately.
    • Email course staff only for logistical issues such as meeting outside of office hours, missing lab/lecture, grading disputes, medical situations, etc.
  • Canvas is used for code submission and to post grades. The course Cavnas is available here:
  • Office Hours will be posted on the course Canvas and Piazza sites.

3 Coursework

3.1 Lectures

During lectures we will discuss operating system concepts and instructors will provide demos of programming relevant to other course work. In addition to attending the regular meeting times, you are strongly encouraged to visit the professor and teaching assistant(s) during office hours to further your understanding of the material: we are here to help you learn.

3.2 Textbook Readings

Readings from the textbook relevant to each lecture are listed in the schedule. You will increase your understanding of lectures by reading associated textbook sections ahead of time, though this is not assumed. We may provide additional reading material to supplement the textbook which will be posted on the course web page.

3.3 Laboratory Meetings

Lab sections meet once per week and attendance is required. In each meeting, the discussion leader will guide students through exercises to reinforce course concepts. These exercises are required and worth a small portion of the overall grade for the course. Students are encouraged to freely collaborate on discussion section exercises which are usually due a few days after the lab meets.

Student should work with a partner on labs and make only one submission for the lab exercises. Both partners will get the same grade.

3.4 Programming Projects

Students will receive a number of programming projects during the semester. Each project will involve writing programs and answering questions about them to illustrate an understanding of course material. Specific projects may allow collaboration between pairs of students or require individual work. Pay careful attention to the guidelines for each programming project. Projects are usually large and require a significant amount of work to complete.

3.5 Exams

There will be two midterm exams during the semester. Exams take place during the regularly scheduled lecture period. There will also be a comprehensive final exam at the end of the semester. Refer to the schedule for dates of the exams.

The Final Exam is Wednesday 12/20 from 1:30-3:30pm in the normal classroom.

4 Grading Policies

4.1 Graded Components

Final grades will be determined by scores obtained on the components below according to their associated weight.

Component Weight Policy
Lab Work Work (12) 25% Drop two lowest scores
Programming Projects (5-6) 25% No drops
Midterm Exam 1 15%  
Midterm Exam 2 15%  
Final Exam 20%  

If circumstances require it, the grading scale may be adjusted, generally in the students' favor.

4.2 Final Grade Determination

Final grades will be assigned without rounding according to the following criteria.

Percent Grade Percent Grade Percent Grade Percent Grade
>= 93 A 87-89 B+ 78-79 C+ 65-69 D+
90-92 A- 82-86 B 72-77 C 60-64 D
    80-81 B- 70-71 C- <60 F

4.3 Lab Exercises Grading

No late submissions for Lab Exercises will be accepted. Missing the deadline results in 0 credit. The two lowest scores on Lab Exercises will be dropped in final grade calculations

Attendance at the first lab meeting is mandatory. Attendance at the remaining labs is encouraged but optional.

In order to receive full credit for completing Lab Exercises, students must fulfill two requirements.

  • Check-off 40%: Demonstrate to a TA that required code works. This must be done in person during lab or during TA office hours.
  • Submit 60%: Submit required files according to the lab instruction. This can be done at any time and from anywhere with a network connection. It does not require that students see a TA in person.

Students may elect to work with one partner on the labs or alone. If working with a partner, both partners must submit code and be physically present to have labs checked off by TAs, either in labs or outside of labs.

Students may collaborate with other students in our section of CSCI 1103 to complete exercises and are encouraged to do so. Submitting identical code for exercises is acceptable so long as you adhere to the PRIME DIRECTIVE.

4.4 Project Grading

Rules for collaboration on programming projects are indicated in the project description and usually involve NO collaboration with other students. Utilize the discussion board and office hours of course staff if you have questions about the projects.

Project grading will usually be divided into two portions weighted 50% for each portion.

  1. Automatic Testing (50%): Public tests will be used to assess the correctness of programs. Running these tests while constructing your program will indicate exactly what your score on this portion will be.
  2. Manual Inspection (50%): Each project will include a checklist of features your programs should exhibit. These usually comprise things that cannot be easily checked via unit tests such as good variable name selection, proper decomposition of a problem into multiple functions or cooperating objects, overall design elegance, and proper asymptotic complexity. These features will be checked by graders and assigned credit based on level of compliance.

Late Project Submission Policy

Late submission of projects is governed by a "ceiling penalty" which caps the max score that can be obtained. Penalties are alleviated by using Day-Late Tokens.

  • Projects each have a deadline. No late work is accepted more than 48 hours after the deadline, and penalties for late work apply (see below). Work turned in more than 48 hours will receive 0 credit.
  • Assignments submitted within 24 hours of the deadline receive a ceiling penalty of 25%: the maximum score possible is 75%.
  • Assignments submitted after 24 hours from the deadline but within 48 hours of the deadline receive a ceiling penalty of 50%.
  • Each student starts the semester with three Day-Late Tokens.
  • Whenever a student turns in a project late, tokens are automatically applied to the assignment. No special indication need be given but tokens cannot be saved.
  • One token reduces the ceiling penalty by 25%.
  • Tokens are always deducted for late submissions.
  • For projects in which partners are allowed, each partner loses tokens on late submission and suffer penalties individually.
  • Late tokens are worth a 0.25% bonus to the overall course grade at the end of the semester. Usually it is better to use a token to nullify penalties on an assignment than to hold them for credit.
  • Examples:
    • Morty has 3 remaining tokens and submits 23 hours after the deadline. He would have scored 87%. He loses one token and receives an 87%.
    • Jerry has 1 remaining token and submits 8 hours late. He would have scored 69%. He loses one token and receives 69% despite.
    • Summer has 0 tokens left and submits 43 hours late. She would have received a 96% but instead receives a 50% (2 days late).
    • Beth has 1 token remaining and submits 40 hours late (2 days). She would have received a 94%. She loses one token and gets a 75% on the assignment (2 days late, apply 1 token, max 75%).
    • Rick has 1 token remaining and his partner Birdperson has 2 tokens. They submit 47 hours late (2 days) and would have scored 99%. Rick loses 1 token and receives a 75%. Birdperson loses 2 to tokens and receives a 99%.

4.5 Exam Policies and Grading

  • Your U-CARD is required for tests and final exams.
  • Missing an exam results in a zero score and make-up exams will be considered only in situations involving death, near death, and documented dangerous diseases. Proof of such circumstances will be required for a make-up to be considered.
  • Failing the final exam will result in an F in the entire course. Failing is defined as receiving less than 60% of the available points on the exam.
  • Open Resource Exams: Unless otherwise specified, exams will be open resource: notes, textbook, editor, compiler, and any code the student finds useful is allowed to be used. No communication is allowed during the exam (no email/texting/chat), no Internet searches are allowed, and no unauthorized web sites may be visited. If in doubt, ask about specifics before or during the exam.

4.6 Grading Disputes

Disputes should be raised respectfully either in person or via e-mail. If it is not possible to reach a resolution, the professor may be contacted by the grader to resolve the dispute. Programming grading feedback should always include the grader who should be mailed first.

All disputes should be raised with the lead Graduate Teaching Assistant who will resolve the dispute or forward it to the professor.

If contact has not been initiated 1 week after a grade is posted, the chance to contest the grade has closed.

4.7 Bonus Credit

Bonus credit will be awarded based on participation in class discussions in lecture. Students may elect to sit in the first few rows of the room ("hot seats") and answer questions. Reasonable effort on answering questions in class will garner class participation credit. Participation points may also earned for involvement in the class discussion board such as giving suggestions to students with questions (but not revealing answers wholesale). The highest point winner at the end of the semester will receive a 3% bonus to their overall score in the course. All other students will receive a bonus proportional to the highest point winner. For example, someone tied with the highest point scorer will also receive a 3% bonus while someone with half the participation points will receive a 1.5% bonus.

A small amount of bonus credit also available for unused Day Late Tokens at the end of each semester.

5 Academic Integrity

PRIME DIRECTIVE: Be able to explain your own work including homework code and exam solutions. The work you submit should be the product of your own effort and reflect your personal understanding.

Nearly all cheating in programming can be averted by adhering to the PRIME DIRECTIVE. Students may be asked at any time to explain code or exam solutions they submit. Inability to do so will be construed as evidence of misconduct. More specific guidelines are given below.

5.1 Thou Shalt Not

Unless otherwise specified, all assessments in this course are individual efforts involving no unfair collaboration. For the purposes of this course, the following actions constitute scholastic misconduct (cheating) and will be reported.

  • Directly copying someone else's solution to an assessment problem, including student solutions from a previous semester
  • Directly copying an answer from some outside source such as the Internet or friend for a homework problem
  • Making use of an Instructor Solution manual to complete problems
  • Paying someone for a homework solution or submitting someone else's work as your own
  • Posting solutions to any web site including public posts to our course web site
  • Collaborating or copying someone else's answer during an exam
  • Taking another student's code with or without their consent.
  • Aiding or abetting any of the above
  • Witnessing any of the above and failing to report it to an instructor immediately

Refer to the following links for additional information.

5.2 Penalties

Any instance of misconduct that is detected will be referred to the honor board and will likely result in failing the course. Be advised that the teaching team will be employing electronic means to detect plagiarism. This is extremely easy with computer code so keep your nose clean.

5.3 Fair Collaboration

The purpose of this course is to learn about programming and learning from one another is a great help. To that end, the following actions will NOT be considered cheating in this course.

  • Collaboration on Lab Exercises is allowed and encouraged. These are a great opportunity to help one another on work that counts towards your final grade. Just make sure that you understand any solutions you submit as per the PRIME DIRECTIVE.
  • Discussing projects at a high level with other course students is fair so long as no code is shared. Take great care at the point of showing your screen or letting others look.
  • Discussing material from the textbook and general programming topics is totally fine.
  • Asking public questions on the course discussion board so long as limited code is posted.
  • If you are unsure whether a given collaboration is fair or not, stop the activity and clear it with your instructor.

At all times keep the PRIME DIRECTIVE in mind when studying with another student. The above collaborations should be limited to getting someone over a hurdle, not carrying them across the finish line.

6 General Policies

General university policies which apply to our course are listed here:

Summaries of those policies are below.

Students are expected to maintain a high level of civility for all participants in and out of class meetings. This includes respecting participants of all genders, ethnicities, and social backgrounds. Harassment of any type will not be tolerated and failure to behave in a respectful manner will be reported to the University.

Observance of religious events will be accommodated for students of any faith. All possible accommodations will be made for students with disabilities. Please contact the Disability Resource Center and the instructor for further information.

Author: Chris Kauffman (
Date: 2017-09-15 Fri 16:56