CIS 1068
Design and Abstraction
Course Description

Course Staff

Lab Instructors

Course staff Zoom URLs may be found on Canvas.

Kurt Yang

Yang Zhao

Zijie Tang

Farnoush Nilizadeh

When and Where

Lecture

Labs

section 1

section 2

section 3

section 4

section 5

from the course bulletin

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.

goals

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:

prerequisites

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.

text

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.

supplies

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.

grades

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)

exams

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

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.

assignments

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.

late days

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:

what are office hours?

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.

zoom office hours

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.

leaving the course

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.

academic freedom

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).

academic honesty

Please review Temple's page on academic honesty and other student responsibilities in the undergraduate bulletin.

use of AI

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.

Technology Resources

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.

special needs

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.

Attendance and Your Health

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.

topics

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