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 algorithms, 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 (optional)
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:FALL 2009 |
|
| Homework | 40% |
| Tests | 40% |
| Lab Participation/Attendance | 10% |
| Research Project (Subfield of CS) | 10% |
Note: The two lowest test scores will be dropped at the end of the semester.
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 CIS 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
Lab Grade
Attendance of labs (recitations) is required. Missing up to two labs is forgiven. Some labs will have assignments that need to be submitted, for example "competency" exercises in the form of java programs, typically due the Sunday after 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
One of our goals is to have enough lab material to keep everyone busy the whole time without overwhelming students with too many requirements. So many labs will have some problems for which we ask students to submit solutions, as well as additional problems. If you finish the required ones, stay and work on the additional ones. If you finish everything, let your TA know.
Makeup Lab Policy
~~~~~~~~~~~~~~~~~
If you can not make your lab, you will be counted as absent. However you are
welcome to attend any other lab unannounced so that you can make up the work.
The only exception is if there is a documented medical/family emergency.
Please do not email the professor or TA about makeup labs. We ask students
not to cajole/pressure TAs in to counting them present in their "home lab" when
they were not present. This would be an academic honesty violation.
To be fair, this policy applies to everyone.
Submitting Homework and Lab Assignments
Submission is via a link on the Content page. You may submit work 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. Make sure to read the Submisson and Policy information (there's a link at the top of the Content page). Most notably, there is a "NO COMPILE, NO CREDIT" policy.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 Period: One Week after Receiving Grade Email
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:
- Usually exams are brought to lab so you can view them. They should be returned to the TA.
- Read the posted grading guidelines
- If you think you deserve a different grade, fill out a paper regrade form (ask Laura 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/2009 * 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.