Course Syllabus

Instructor: David E. Johnson
Email: dejohnso@cs.utah.edu
Office: 3146 MEB (along the west face of the MEB 3rd floor)
Textbook: A free interactive ebook from Runestone Academy will be used. Please see the page under Course Resources for creating an account on our course ebook.
Clicker or audience response device: Class quizes through kahoot.it. A device with Internet access is needed during the class lecture. I have a small number of devices that can be checked out for the lecture by leaving your uID or driver's license.

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.

Successful completion of CS 1030: Introduction to Computer Science (formerly CS 1400) or a passing score on the CS 1410 Proficiency test is the pre-requisite of CS 1410. Students may not take CS 1030 and CS 1410 concurrently. Calculus I is the co-requisite of CS 1410. CS 1410 is 4.0 credit hours.

Meetings: Lectures are Mondays, Wednesdays, and Fridays 10:45a-11:35a in GC 1900 (the new building by the Student Union).

Lab sessions: Tuesdays at  8:35-9:25a, 9:40-10:30a, 10:45-11:35a, 11:50a-12:40p, 12:55-1:45p, 2:00-2:50p, 3:05-3:55p, 4:10-5:00p, or 5:15-6:05p in 3225 MEB (3rd floor, south side of MEB). Lab attendance is required. 

Laptop Policy: The School of Computing is requiring students using 3225 MEB for labs to have a laptop. There are a limited number of loaner laptops available for use during a lab session. Please contact the course instructor if you anticipate needing a loaner on a regular basis so that we can ensure an adequate supply. Students should bring their laptops to their lab session. 

Course Materials  

Website The class website is the Canvas course available through CIS. It will be updated throughout the semester with the class schedule, lecture notes, laboratory exercises, assignment specifications, and much more. 

Lecture notes The instructor will often make use of slides and other documents during lecture. These documents will be posted on the class website following the lecture; however, such posted documents may not represent completely the material covered in class. Students who must miss class are strongly encouraged to check with a classmate or TA.

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.

New students should create a College of Engineering lab account at: https://webhandin.eng.utah.edu/cade/create_account/index.php

Student Evaluation 

Programming assignments and quizzes 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. No assignments will be accepted late without penalty, except in the case of a documented medical emergency.

Assignment Review Students will meet with a TA in small groups to review submitted assignments in short 10 minute meetings. The focus of the meeting will be on code style rather than correctness. Participation in the review will be worth a small amount on the assignment score. More details will be announced in class.  

Late Assignments Assignments turned in after the due date and time receive an immediate 10% score deduction. After 24 hours, the total deduction becomes 20% and after 48 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. Often, a worksheet accompanies 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 medical emergency. Two lab scores will be automatically dropped to allow for issues you may have in attending the labs. 

Tests and final exam Testing will consist of two paper mid-terms given during class lecture periods on February 8 and March 29. There is an in-lab practical programming test given on February 26th during your assigned lab period. The final exam is cumulative and will take place Monday, April 29 from 10:30 am – 12:30 pm in the classroom. 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 If the weighted average score for the mid-terms, the practical test, and the final exam is less than 60%, the final course grade will be no higher than an E.  

Otherwise, the weighting for the final grade is:

Weekly Assignments 53%
Mid-Term Tests 16%
Final Exam 14%
Practical Test 6% 
Labs 7%
Participation %4.

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 or a lab session for a reason that is not granted an exception. Therefore, to allow for such an occurrence, the lowest score earned on an assignment, and the lowest two scores on lab exercises are dropped from the record of each student at the end of the semester. The practical test done in lab is not eligible to be a dropped score. Students should plan to use the “drop scores” judiciously — there is only one for an assignment and two for a lab. In addition, three Kahoot response grades will be dropped from the Participation score. These dropped scores are automatically applied. No test or final exam scores are dropped.

Getting Help 

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 are held in the CADE lab, please see the link for more information.

Communication For questions outside of class and consulting hours, students are encouraged to use email. 

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 the email addresses that students provide when establishing a new account on the class website. Students are expected to check their email and the class website regularly. 

To ask a question of the course staff, students should use Piazza, which is linked in the menu bar on the left of the course Canvas page.

In general, we can often provide quick and detailed responses through Piazza and it is an excellent mechanism for getting feedback. See further instructions under the "Resources" module in Canvas.

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. The concepts that are presented in lecture are what is 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. Raise your hand and ask a question when you do not understand something. Try to understand everything. Do not give up!
  • Participate in the lab sections. You will be sitting at a computer in a 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!

Course Guidelines 

School of Computing Policies

Please read through the SoC policies: https://www.cs.utah.edu/~germain/SoC_Guidelines_Spring_2017 (Links to an external site.)Links to an external site.

College of Engineering Policies

Please read through the CoE policies:

https://www.coe.utah.edu/students/academic-affairs/academics/semester-guidelines/

 (Links to an external site.)Links to an external site.

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.

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. 

College of Engineering guidelines For information on withdrawing from courses, appealing grades, and more, see Academic Affairs at www.coe.utah.edu/academics. 

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 Services, 162 Union Building, 581-5020 (V/TDD). CDS will work with you and the instructor to make arrangements for accommodations.

Course Summary:

Date Details Due