CIS 110 Syllabus
This "Java Lite" course is an introduction to the core concepts of programming and computing using the Java programming language. It teaches how real-world problems can be solved computationally using a modern "object oriented" programming language, with an emphasis on data modeling and algorithmic thinking.
Concepts and techniques covered include objects, state, methods, data types, expressions, top-down design, bottom-up programming, testing, debugging, interactive programs, data abstraction, iteration, recursion, basic data structures, and inheritance.
No previous programming experience is required.
Attendance of the weekly recitations/labs is required.
Textbook
Java
Backpack Reference Guide (Java 5 edition) by DePasquale,
Addison-Wesley
This is a good, light, concise, and cheap reference book. We recommend that you bring it with you to the labs. You may use this book (but no other resources) during exams.
Several free online textbooks are listed on the Resources page of the course web site.
Grading
The course grade will determined as follows:| Homework | 30% |
| Participation/Lab Grade | 15% |
| Exams | 45% |
| Project | 10% |
Questions and Comments
Your feedback is valuable and we want to do our best to answer your questions!Please email Jean or a TA directly only if the avenues listed below don't suffice. For questions about:
- Course material (concepts, homework, labs, logistics): Post a message on the bulletin board
- Grading of a homework or exam: See the Regrade Policy below
- Becoming a CSE major/minor, or submatriculating in to a masters program: Email jackie@seas.upenn.edu
- AP credit, waiver exam, prerequisites for upper level courses: Email jackie@seas.upenn.edu
Participation/Lab Grade
Attendance of labs (recitations) is required. Missing up to two labs is forgiven. When you arrive, make sure to sign the attendance sheet. Some labs will have assignments that need to be submitted, for example "competency" exercises in the form of java programs, due a few days after the lab meets.If there is no lab assignment
lab grade = 100% attendance/participation
Otherwise
lab grade = 50% attendance/participation, 50% assignment grade
- focusing on coursework
- not distracting others by im'ing, net surfing (other than course-related), etc.
- taking turns when working with a partner
- Note: Helping each other during the lab is encouraged
- 100/100: shows up and works on coursework in a sociable way; 1st or 2nd missed lab
- 80 (60/40/20): late (really late)
- 80 (60/40/20): disruptive; won't take turns in partner work (repeatedly)
- 0/100: no show for 3+ time
Submitting Homework
Homework is submitted online via a link on the Homework page. You may submit homework problems multiple times. For example, you may realize after submitting work that it contained an error. You can resubmit it and the most recently submitted work will be graded.Late Homework Policy
Homework submitted after it is due but within 24 hours will be accepted and all problems will be graded with a 20% penalty.Regrade Policy
Unless otherwise announced, you will have one week after a grade is emailed to you to request a regrade. The graders will send you an email about the decision.- Homework: Post an online Regrade Request (see top of Content page)
- Exam:
- Read the posted grading guidelines
- Go to 308 Levine to review your exam (they can not be taken away)
- If you still have a question, fill out a paper regrade form (found in 308 Levine)
Honesty Policy for Homework
Note: An academic honesty violation may result in a failing grade and/or be handled by the Office of Student Conduct.
Given that students often learn best from each other, we encourage students to collaborate as long as the following guidelines are honored:
- You must type in and edit your own code.
- Copying someone else's file is not allowed.
- Allowing someone else to copy a file of yours, either explicitly or implicitly by leaving your code unprotected, is not allowed.
- Editing each other's files is not allowed
- About helping each other:
- A student who needs help with debugging a program may show another student his/her code.
- A student who is helping another student may not show his/her code working or near-working code.
- Allowable Discussions
- "High level" discussions are fine.
For example, discussions about the problem statement. - "Low level" discussions are fine.
For example, discussions about Java syntax, understanding compiler error messages, understanding the mechanics of the Java language. - "Mid level" discussions require discretion. In some CSE courses, discussions at this level are not allowed. In this class, unless explicitly stated otherwise, you may collaborate with classmates at this level, provided that you cite at the top of the submitted homework the names of the classmates that you worked with and those who helped you. For example:
/** * Chris Brown * Homework 2 * 5/6/2007 * I worked with Pat Smith and Jessie James * I received help from Jo Johnson */There may be some "no collaboration" homeworks, or ones in which collaboration with only with a few specific people is allowed.
- "High level" discussions are fine.
- You can ask and answer low and high level questions as described above.
- Use your best judgement to protect both yourself and your friends. In Penn Engineering, typically if a professor suspects unwarranted collaboration, all participating parties are penalized (both helpers and helpees).
- Use your best judgement about asking or answering questions of other students. For example, if you are supposed to implement Algorithm X that is described in the book, and you don't understand Algorithm X, then you can ask another student to explain it to you. However, if you are supposed to come up with your own algorithm to solve a problem, then you can not ask another student to tell you their algorithm.