Course staff Zoom URLs may be found on Canvas.
Introduction to problem solving and programming in Java, software engineering, procedural and data abstraction, and object-oriented programming, including class hierarchies, inheritance and interfaces. Data types covered include primitive data types, strings, classes, arrays, vectors, and streams. Programming techniques include at least one technique for searching and sorting an array and an introduction to file processing.
Put simply, the major goals of the course are to: 1) Reinforce what you've learned in your first-semester programming courses, but understand these topics at a deeper level. 2) Begin to understand object-oriented programming, and 3) Learn new programming tools and techniques.
In particular, you'll learn to:
C- or better in CIS 1051 or 1057 and
C- or better in MATH 1022, or MATH 1038 to 4999 or the equivalent through a placement test.
Reges and Stepp, Building Java Programs: A Back to Basics Approach, 5th Edition. Pearson (2020)
It is available at the university book store and at large online booksellers.
You'll be developing software this semester using the Java Programming Language. While it's helpful to have your own computer, there are several on-campus computer labs with all of the software necessary for the course.
Midterm 1 | Tuesday, October 1, in class | 20% |
Midterm 2 | Thursday, November 7 Tuesday, November 12, in class | 20% |
Final Exam | Thursday, December 12 8 AM to 10 AM | 30% |
Everything else (e.g., labs, in-class, in-lab exercises) | 30% |
So you can figure out your semester average by plugging your scores into the formula:
(labs)(0.3) + (mid 1)(0.2) + (mid 2)(0.2) + (final)(0.3)
Unless specified otherwise, exams are closed book. The final exam is cumulative. The exams are mandatory. No makeup exams will be given. Students with an unexcused absence for an exam will be given an F. (Please note that an absence due to travel is not considered to be an excused absence.)
Attendance is required. Regular attendance provides the opportunity for direct interaction with your instructor and your peers, and the practice that is crucial for developing proficiency.
You will be given several short assignments. These should be submitted in a timely fashion. Unless otherwise specified, homeworks may not be done in groups.
Homeworks submitted on or before midnight on the due date may be considered for full credit. Late homeworks will be penalized 20% each day. Beyond five days, late homeworks will be recorded as zeros.
Blanket extensions to the above policy may be granted at the instructor's discretion in unusual circumstances such as unclear directions, equipment problems with the computer lab as a whole, inclement weather, or cancellation of TA or instructor office hours. However, individual exceptions will only be granted in the rarest of circumstances. Appeals to accept late homework should be directed by email to the instructor, and should typically be accompanied by appropriate documentation (e.g., doctor's note). There are enough homeworks throughout the semester that disastrous performance on one or two will not prevent you from achieving a good grade in the course. However, habitually missing the assignments will guarantee a poor grade or failure.
Students are allotted five late days for the entire semester. These late days can be used to extend assignment deadlines without penalty. A late day extends the deadline by 24 hours. Some details:
This semester I will hold office hours on days class is in session Tuesdays and Thursdays 11:15 to 12:45. This means that at this time you do not need an appointment to visit: just stop by. Office hours are a time when you can come to get help with class material, assignments, or to have a chat about college or careers. There is no pressure to come prepared with what you think are "important-enough" questions.
If you want to meet and are not able to come during these hours, please let me know and we can arrange an alternate time.
This semester, office hours are also available over Zoom. In order to give privacy to other students, a waiting room is set up for the session. If you aren't immediately admitted, it means that I'm with another student and I'll let you in as soon as I can.
The last day to drop the course is Monday, September 9. The last day to withdraw is Monday, December 9. These are strict deadlines. Incompletes will only be given in the rarest of circumstances. Please note that students who have previously withdrawn from this course, or who have already withdrawn from 5 courses since September 2003 may not withdraw.
Freedom to teach and freedom to learn are inseparable facets of academic freedom. The university has adopted a Policy on Student and Faculty Academic Rights and Responsibilities (Policy 03.70.02).
Please review Temple's page on academic honesty and other student responsibilities in the undergraduate bulletin.
It's amazing what generative AI tools can do (it's also amazing what they cannot yet do), and they are certainly worthy of exploration when you can afford the free time, but in this course you're trying to develop a skill, and while it's tempting to take shortcuts, it's essential that you spend time practicing problem solving and writing code. We get better through regular practice.
It's expected that you'll get stuck from time to time. This is an expected part of developing any skill. Your instructors and the peer tutors are here to help you. Do not use generative AI tools as a shortcut to completing your assignments in the course.
Limited resources are available for students who do not have the technology they need for their classes. Students with educational technology needs, including no computer or camera or insufficient Wifi access, should submit a Student Technology Assistance Application located in TUPortal and linked from the Dean of Students Support and Resources webpage. The university will endeavor to meet needs, such as with a long-term loan of a laptop or Mifi device, a refurbished computer, or subsidized internet access. The Affordable Connectivity Program is available to purchase discounted internet services and devices for qualified individuals.
Any student who has a need for accommodation based on the impact of a documented disability, including special accommodations for access to technology resources and electronic instructional materials required for the course, should contact me privately to discuss the specific situation by the end of the second week of classes or as soon as is practical. If you have not done so already, please contact Disability Resources and Services (DRS) at 215-204-1280 in 100 Ritter Annex to learn more about the resources available to you. We will work with DRS to coordinate reasonable accommodations for all students with documented disabilities.
To achieve course learning goals, students must attend and participate in classes, according to the course requirements. However, if you have tested positive for or are experiencing symptoms of a contagious illness, you should not come to campus or attend in-person classes or activities. It is the student’s responsibility to contact me to create a plan for participation and engagement in the course as soon as you are able to do so, and to make a plan to complete all assignments in a timely fashion.
Below is a list of topics that we'll cover this semester and the week we anticipate covering each topic. Please follow the course website for current dates and readings.
week | topic | reading |
---|---|---|
8/26/24 | Intro, data types, arithmetic, | ch 1-2 |
functions, loops | ||
9/2/24 | Parameters, returns, some recursion | ch 3 |
9/9/24 | Conditional execution, indefinite loops | ch 4-5 |
9/16/24 | Files, Arrays | ch 6 |
9/23/24 | More Arrays | ch 7 |
9/30/24 | Midterm 1 | |
10/7/24 | Classes | ch 8 |
10/14/24 - 10/21/24 | Inheritance, interfaces | ch 9 |
11/4/24 | Midterm 2 (tentative) | |
11/11/24 | Some more recursion, searching, sorting | ch 12-13 |
11/25/24 | Collections | ch 14 |
12/2/24 | Implementing collections | ch 15 |