Primary Instructor: Travis Martin (co-instructor: David Johnson)
Office: MEB 3122
Textbook: We will use a free online textbook
Tuesday labs: 9:40AM-10:30AM, 10:45AM-11:35AM, or 12:55PM-01:45PM, (all via Zoom)
Friday recitations: 9:40AM-10:30AM (MEK 3550), 10:45AM-11:35AM (MEK 3550), or 12:55PM-01:45PM (Zoom)
Other materials: A functional computer is essential for this class. Interactive recitation sessions may require a mobile device (phone or laptop) with internet access.
Communication: Canvas Announcements for important announcements, and Piazza for all other help & discussion
Exam dates: Midterm: Online, during any 50 minute chunk between 9:40AM and 1:45 PM (the recitation times) on Feb 26th. Final exam: Online, Tuesday May 4th at 3:30.
Final course grade: 62% weekly assignments, 9% Midterm Exam, 13% final exam, 8% labs, 8% participation
Getting help: Please consult Piazza Guidelines and/or Office Hours under the Course Resources module
Feedback: I welcome any and all feedback about how this course is going. Please email me, or use this anonymous form.
Accommodations: Please contact me if you are experiencing any exceptional circumstances and feel that you need extra accommodations.
Welcome & Overview
Welcome to Introduction to Object-Oriented Programming, the School of Computing, and the University of Utah. In this course, you will learn how to write computer programs using Java. This will involve mastering program specification, design, implementation, and testing. By the end of this course, you will be able to start with a problem statement and then design, implement, document, and test an object-oriented program that solves the problem. Along the way you will learn how to think like a computer scientist, and you will learn a number of key ideas from computer science.
The course staff (faculty and the teaching assistants) are all eager to help you succeed. However, success in programming comes from time, determination, and care. Expect to be challenged and work hard!
Description: CS 1410: Introduction to Object-Oriented Programing is the second course required for students intending to major in computer science or computer engineering, but for many people their first CS course. The course introduces the engineering and mathematical skills required to effectively program computers, as well as the range of issues confronted by computer scientists. A major theme of the course is the role of procedural and data abstraction in decomposing programs into manageable pieces. The course also introduces the concepts central to object-oriented programming (OOP). Students will complete extensive programming exercises that involve the application of elementary software engineering techniques.
CS 1410-001 vs 1410-010: CS 1410 is broken into two main lecture sections this semester. You will be automatically assigned to one of these sections based on the laboratory you signed up for. CS 1410-001 is intended for students with prior programming experience, such as a high school course or CS 1030. CS 1410-010 is intended for students without significant experience. The material covered in each course is the same. This course is 1410-010 -- if you feel you would be a better fit for -001, please switch, or contact me if you are unable to.
This course has been reorganized to balance personal safety under COVID-19 pandemic restrictions and opportunities to engage with the material, course staff, and your peers. The components of the course are as follows:
Lectures: Core class material will be covered in recorded video lectures. These videos will be posted on a weekly basis, typically on Monday and Wednesday.
Recitations: The class is broken into recitation sections of roughly 50 students each, meeting at different times on Friday.
The material in recitations will be different from lecture videos or labs: recitations provide opportunities to work through more complex material, to work through problems interactively or as a group, and to review past assignment submissions.
Some recitations are in-person and some are through Zoom, based on the recitation/lab section you registered for determines this. If your recitation/lab only shows Zoom for a location, it is remote, otherwise the listed classroom is the in-person location. Based on this, the breakdown of recitations is:
|011||Friday 9:40am||MEK 3550|
|012||Friday 10:45am||MEK 3550|
Attendance at recitations is strongly encouraged, and may be tracked by in-class participation exercises. If you cannot attend your assigned recitation time, you may attend another time, but please inform me if (a) you plan to attend an in-person recitation that you don't normally attend (because it's harder to accommodate extra in-person students, due to COVID) or (b) you need to regularly attend a different recitation session than your normally assigned one.
Lab sessions: Lab sections provide an opportunity for students to be guided through examples applying concepts of CS 1410. The recitation section you are enrolled in is matched with a lab section at the same time, but on Tuesday. Labs will be conducted remotely through Zoom meetings. Lab attendance is required.
Remote weeks: The University has designated that the weeks of March 1 - March 14 will be all done remotely. This means that the in-person recitations will meet over Zoom those weeks, but the course will still have scheduled activities (note that these weeks line up with some non-instructional days, described below)
Non instructional days: We will not be having any class activities on February 15, March 5, 8, 9, and April 5. This is due to Presidents day, university-designated non instructional days, and a coordinated attempt by the School of Computing to have a lighter week near what used to be Spring Break.
Website: The class website is the Canvas course available through CIS. It will be updated throughout the semester with the class schedule, lecture notes and videos, laboratory exercises, assignment specifications, and more.
Laptop Policy: The School of Computing Laptop Policy expects students taking CS 1410 to have a laptop. This policy was originally put in place to support labs and general work on assignments. With the blend of in-person and remote work for this course, access to a computing device remains critical. Please contact the course instructor if you are having trouble meeting this requirement.
Lecture notes: The instructor will often make use of slides and other documents during lecture. These documents will be posted on the class website along with the video lecture; however, such posted documents may not represent completely the material covered in class. Students are strongly encouraged to stay current with posted materials.
Recordings: Selected lab sections and recitations will be recorded when possible and be made available for review. These are not intended to be a replacement for attendance, as they may not capture all of the interactive parts of class.
Java and Eclipse All programming in CS 1410 is in Java, using the Eclipse programming environment. Eclipse is available for your use on the College of Engineering’s Windows computers (WEB 210) and Linux computers (WEB 224) and through the CADE remote desktop. Both Java and Eclipse are platform-independent. Instructions for installing both on your personal computer are available on the class website under the Course Resources module.
Student Evaluation & Grades
Programming assignments: The instructions for each assignment and its due date will be posted on the class website. It is the student’s responsibility to ensure the successful and timely submission of each programming assignment — start early and follow the instructions carefully. Corrupted or missing files will not be grounds for extensions. Double-check your submissions, and save a digital copy of all of your work. Many assignments will be submitted through the Gradescope system, which provides some basic checking and testing. Students should review the results of this testing and use it to make sure the assignment is submitted properly.
Participation: There are multiple activities that will ask you reflect on your understanding of material and think critically about your work. While these will typically be assessed as participation rather than a detailed score, these activities are critical to your development as a computer scientist and will require time each week to complete.
Late Assignments Assignments turned in after the due date and time receive an immediate deduction of 10% of the total score. After 24 hours, the score becomes 0% and a likely candidate for the one dropped assignment grade discussed below. In general, you should use the dropped score as the way this course handles the problems we all face during the semester rather than asking for instructor consent for late work. Longer term issues should be discussed with the instructor - we are not trying to fail students!
Lab exercises Every Tuesday, students complete a lab exercise reviewing the material covered recently in lecture or preparing for an upcoming assignment. A quiz will accompany the lab exercise and is due at the end of the designated lab period. No lab exercise / worksheet may be made up for credit, except in the case of a documented emergency. Two lab scores will be automatically dropped to allow for issues you may have in attending the labs. To handle small issues, you can attend a different lab section than the one you are registered for, but this should not be a long-term practice.
Tests and final exam Testing will consist of two mid-terms given during the recitations on .... The final exam is cumulative and will take place .... The exam will be online. No test may be taken at a different time for any reason other than a documented medical emergency or official University of Utah excused activities.
Final course grade The weighting for the final grade is:
Weekly Assignments 62%
Midterm Exam 9%
Final Exam 13%
Your weighted, cumulative course percentage score is turned into letter grades using the following scheme:
[100-94] A, (94-90] A-, (90-87] B+, (87-84] B, (84-80] B-, (80-77] C+, (77-74] C, (74-70] C-, (70-67] D+, (67-64] D, (64-60] D-, (60-0] E
where [ ] means including that number and ( ) means up to but not including.
Regrades Students who wish to appeal a score on an assignment, a lab, a quiz, or a test must do so within one week of receiving the score. See information under Course Resources for the regrade process.
Dropped scores Students may end up missing a deadline, a lecture, or a lab session for a reason that is not granted an exception. Therefore, to allow for such an occurrence, various activities allow dropped scores:
- The lowest score earned on an assignment is dropped (the final project, A11, cannot be dropped).
- The lowest two scores on lab exercises are dropped.
- Some number of participation scores will be dropped, in combination with score adjustments for participation credit. I need to see how many of these get assigned, but the drops will be in the general spirit of the other components.
- No test or final exam scores are dropped.
Instructor office hours See the link at the top of the course website under Course Resources.
Teaching assistants and consulting hours See the link at the top of the course website under Course Resources for the consulting schedule of the course TAs. During consultation, use the TA Queue (also on the class website) to alert the TA on duty that you have a question. TA hours will be held over Zoom meetings. Please see the link for more information.
Communication For questions outside of class and consulting hours, please use Piazza. Please see Piazza Guidelines under the Course Resources module. We can often provide quick and detailed responses through Piazza and it is an excellent mechanism for getting feedback.
To send urgent messages to everyone in the class, such as corrections to assignments or changes in due dates, the course staff will make use of Canvas Announcements. Students are expected to check their email and the class website regularly.
Advice for Success in CS 1410
For most of you, this will be your first or second class in computer science. Here is some advice on how to approach this class such that you will have the best chance for success.
- Concentrate in lecture and recitations. The concepts that are presented in lecture and recitations are what are important; you will be able to find the details in the assigned reading. If you write down everything that is said and then try to figure it out later, you are wasting your time coming to lecture. Instead, think about what is being said. Try to answer all the questions that are asked, even if only in your head. Think about why material is being presented - if you do not see the connection to past materials or assignments, ask for help.
- Participate in the lab sections. You will be working at a computer in a (virtual) room with at least one teaching assistant and a small number of other students. Take advantage of the computer by trying things out. That way, you will discover the things that you do not understand in a setting where there are plenty of other people (TAs, as well as students) to help you.
- Respect the assignments. Some students expect that if they have done the reading, concentrated in lecture, and participated in the labs, then the assignments will be straightforward. What these students do not understand is that the assignments are designed to challenge you by requiring that you apply the concepts you have learned to new situations. The assignments will be your most important learning experience in the course; they will rarely be straightforward. You should start each assignment as soon as the specifications are posted. This way, you will have time to take a break when you get stuck.
Beginners are often surprised by the amount of human effort that must go into designing, writing, and testing a program. Complaints from students about the amount of time required by introductory computer programming courses are universal. You should expect to spend three hours outside of class for every hour that you spend in class. In other words, you should expect to spend twelve hours per week reading, studying, and designing and writing programs. Some of you will spend less, but many of you will spend even more time. Please keep this in mind when setting up your schedule for the semester!
This course is an introduction to the engineering and mathematical skills required to effectively program computers. Upon completion of CS 1420, students will be able to:
- use variables, assignment, selection, repetition, and arrays to form solutions to simple problems
- exploit procedural abstraction (non-recursive and recursive methods) and data abstraction (classes and objects) to decompose a program into manageable pieces
- leverage inheritance and polymorphism as cornerstones of the object-oriented programming design process
- understand the organization of common application types such as command-line programs and graphical user interfaces
- leverage the features of an Integrated Development Environment to design, implement, test, debug, and document a complete computer program, given only a problem statement
- emphasize code clarity and documentation as integral parts of the development process
- recognize what it means to be a computing professional and apply ethical codes of conduct to various scenarios
School of Computing Policies
Please read through the SoC undergraduate handbook:
College of Engineering Policies
Please read through the CoE policies on appeals, adds/drops, etc:
Behavior in the classroom All students are expected to maintain professional behavior, according to www.regulations.utah.edu/academics/guides/students/studentRights.html (the University of Utah Student Code). Students should read the Code carefully and know that they are responsible for the content.
Students are expected to engage with the instructor and classmates during class meetings. Students are permitted to use a laptop or mobile device to take notes. Use of a laptop or mobile device for any other purpose is not permitted, and students who do so will be asked to leave the classroom. While you may consider it a right to casually browse the web, engage in social media, or play games during lecture, such activity is very distracting to others (especially in a crowded classroom) and is not permitted.
Masks: Based on CDC guidelines, the University requires everyone to wear face coverings in shared public spaces on campus, including our classroom. As a reminder, when I wear a face covering, I am protecting you. When you wear a face covering, you are protecting me and all of your classmates. If you forget your face covering, I will ask you to leave class to retrieve it. If you repeatedly fail to wear a face covering in class, I will refer you to the Dean of Students for a possible violation of the Student Code. Note that some students may qualify for accommodations through the Americans with Disabilities Act (ADA). If you think you meet these criteria and desire an exception to the face covering policy, contact the Center for Disability and Access (CDA). Accommodations should be obtained prior to the first day of class so that I am notified by CDA of any students who are not required to wear a face covering.
Extended Illness or Quarantine: If you have a period of extended illness, you should work with the course instructor to keep you on a path for success for the semester. Please discuss your situation as soon as possible with the course instructor. You should take advantage of the remote sections of recitations where possible.
Working together Students are encouraged to discuss assignments and laboratory exercises with fellow classmates, but each student is responsible for formulating and writing their own answer. Cheating is: sharing written or electronic work either by copying, retyping, looking at, or supplying a copy. Cheating is not: discussing concepts, answering questions about concepts or clarifying ambiguities, or helping someone understand how to use the class tools and software. Looking at a fellow student's code or having another student look at your code is always considered academic misconduct.
Students may occasionally be required to work on assignments or lab exercises in pairs. Guidelines and rules for working together will be posted with such assignments. There are two exemptions to the working together policy - students may always work on the online ebook exercises together and you may always discuss in-class interactive audience response questions with classmates.
Cheating is taken very seriously and students must be careful not to collaborate on assignments.
Submissions are routinely checked by the course staff for signs of unauthorized collaboration.
There must be no collaboration during tests or the final exam. Please see the University of Utah Student Code for a detailed description of the university policy on cheating.
Any student found cheating will fail the entire course.
Student Success The University of Utah has a number of offices to help you be successful. Please look over this collection of resources: https://studentsuccess.utah.edu/resources/student-support/
Students with disabilities The University of Utah seeks to provide equal access to its programs, services and activities for people with disabilities. If you will need accommodations in the class, reasonable prior notice needs to be given to the Center for Disability and Access (http://disability.utah.edu). CDA will work with you and the instructor to make arrangements for accommodations. Accommodations cannot be given without paperwork from this office.
Addressing Sexual Misconduct. Title IX makes it clear that violence and harassment based on sex and gender (which includes sexual orientation and gender identity/expression) is a civil rights offense subject to the same kinds of accountability and the same kinds of support applied to offenses against other protected categories such as race, national origin, color, religion, age, status as a person with a disability, veteran’s status or genetic information. If you or someone you know has been harassed or assaulted, you are encouraged to report it to the Title IX Coordinator in the Office of Equal Opportunity and Affirmative Action, 135 Park Building, 801-581-8365, or the Office of the Dean of Students, 270 Union Building, 801-581-7066. For support and confidential consultation, contact the Center for Student Wellness, 426 SSB, 801-581-7776. To report to the police, contact the Department of Public Safety, 801-585-2677(COPS).
Student Names & Personal Pronouns Class rosters are provided to the instructor with the student’s legal name as well as “Preferred first name” (if previously entered by you in the Student Profile section of your CIS account). Please advise me of any name or pronoun changes (and update CIS) so I can help create a learning environment in which you, your name, and your pronoun will be respected. If you need assistance getting your preferred name on your UIDcard, please visit the LGBT Resource Center Room 409 in the Olpin Union Building, or email email@example.com to schedule a time to drop by. The LGBT Resource Center hours are M-F 8am-5pm, and 8am-6pm on Tuesdays.
Student Wellness Personal concerns such as stress, anxiety, relationship difficulties, depression, cross-cultural differences, etc., can interfere with a student’s ability to succeed and thrive at the University of Utah. For helpful resources contact the Center for Student Wellness at www.wellness.utah.edu or 801-581-7776.
Veterans Center If you are a student veteran, the U of Utah has a Veterans Support Center located in Room 161 in the Olpin Union Building. Hours: M-F 8-5pm. Please visit their website for more information about what support they offer, a list of ongoing events and links to outside resources: http://veteranscenter.utah.edu/. Please also let me know if you need any additional support in this class for any reason.
Learners of English as an Additional/Second Language If you are an English language learner, please be aware of several resources on campus that will support you with your language and writing development. These resources include: the Writing Center (http://writingcenter.utah.edu/); the Writing Program (http://writing-program.utah.edu/); the English Language Institute (http://continue.utah.edu/eli/). Please let me know if there is any additional support you would like to discuss for this class.
Note: This syllabus is meant to serve as an outline and guide for our course. Please note that I may modify it with reasonable notice to you. I may also modify the Course Schedule to accommodate the needs of our class. Any changes will be announced in class and posted on Canvas under Announcements.
The syllabus page shows a table-oriented view of the course schedule, and the basics of course grading. You can add any other comments, notes, or thoughts you have about the course structure, course policies or anything else.
To add some comments, click the "Edit" link at the top.