Course Syllabus

IMPORTANT NOTE: Information in this syllabus is subject to change. Students will be informed immediately of any changes.

CS 1420 Accelerated intro. to object-oriented programming

Quick info:

Instructor:

    Eric Heisler, eric.heisler@utah.edu (Please use Piazza for all course communications)
    Office: MEB 1348

Lectures:

    Mondays and Wednesdays 3:00-4:20pm in JFB 101, led by Prof. Heisler

Lab sessions:

    Tuesdays at various times in WEB L130 (see your class schedule), led by Teaching Assistants (TAs)

Important dates:

All exams and tests are paper-based, in-person, and may not be taken at other times.

  • Midterm Exam is Wednesday, October 15 during the class meeting.
  • Final Exam is Friday, December 12 3:30-5:30pm in JFB 101 (the lecture room).
  • Tests are given in the last 25-40 minutes of class meetings on the following dates:
    • Wednesday, September 3
    • Monday, September 15
    • Monday, September 29
    • Monday, October 27
    • Monday, November 10
    • Monday, November 24 

Textbook:

Introduction to Programming Using Java (Free online text)


Course Information

Welcome to CS 1420! In this course you will learn how to program a computer using the Java programming language. Then you will take a step beyond simple programs by learning the powerful concept of object-oriented programming. By the end of the course you will be able to solve problems by designing, implementing, and testing your own programs. You will be able to create complex applications from scratch. You will also learn computer science concepts that will serve as the foundation for the rest of your computing education. This course involves extensive programming exercises applying elementary software engineering techniques.

For many of you, CS 1420 will be your first CS course. If so, be kind and patient with yourself as you learn a new way of thinking about problem-solving. It takes time, practice, and maybe a little extra guidance, but eventually it will click, and then you will be amazed by what you can do.

1420 or 1400 + 1410?

CS 1420: Accelerated Introduction to Object-Oriented Programing covers the material of CS 1400 and CS 1410 in a single semester. As such, students should expect a very fast-paced course in which not all of the topics they need to know are covered during lectures and lab sessions. While the course assumes that students have some amount of programming experience, beginners may succeed in this class if they are ready for the heavy workload.

A student is most likely to succeed in this course if they have previously taken any course in programming, they have a course load under 15 credits this semester, their extracurricular/home/work time commitments will not interfere, and they have good study habits (time management, independence, etc.). Students are expected to spend time independently engaging with the course material beyond what is required to solve assignments.

Co-requisite

The course co-requisite is MATH 1060 or MATH 1080 (or higher math). Students who do not meet this requirement are to be removed from CS 1420 in the first week of class.

Learning objectives 

After successfully completing CS 1420, you will be able to:

  1. use variables, assignment, selection, repetition, and arrays to form solutions to simple problems
  2. exploit procedural abstraction (non-recursive and recursive methods) and data abstraction (classes and objects) to decompose a program into manageable pieces
  3. leverage inheritance and polymorphism as cornerstones of the object-oriented programming design process
  4. understand the organization of common application types such as command-line programs and graphical user interfaces
  5. leverage the features of an Integrated Development Environment to design, implement, test, debug, and document a complete computer program, given only a problem statement
  6. emphasize code clarity and documentation as integral parts of the development process
  7. recognize what it means to be a computing professional and apply ethical codes of conduct to various scenarios

Lectures and Lab sessions

The lectures and labs are designed as interactive experiences, and there are frequent in-class assessments, so attendance is not optional. Participation will have a significant impact on your performance in the course. Lectures and labs are not recorded. If you are absent due to illness or emergency, look over any supplied materials for that day and ask questions through Piazza, TA help hours, or instructor office hours.

Lab sessions on Tuesdays give students guided practice applying the concepts of CS 1420. They are run by TAs in smaller groups to allow more individual help. Students selected a lab section with a particular schedule when registering for the course. To keep lab groups to a manageable size, students must attend the lab section they are enrolled in. On rare occasions when it is necessary, attending a different lab section is allowed without prior approval. Students must bring their own laptop or one borrowed from the library to each lab session.

Communication

All class announcements and student questions (public or private) take place on Piazza (See link in the menu to the left). Sign up right away and set notifications appropriately.

Course Materials

Canvas: This Canvas course will be updated continually throughout the semester. There will be frequent changes and additions to the weekly modules, including course notes, slides, provided code samples, assignments, quizzes, and more. Students must become familiar with the layout of the Canvas course right away and plan to visit it several times a week. None of the materials created by the instructor can be shared with anyone outside of this class, in particular they must not be uploaded to an external website.

Text book: Regular reading is assigned from the course textbook, as well as other online notes, books, and articles linked from Canvas.

Software: All programming in CS 1420 is in Java, using the Eclipse programming environment. Both Java and Eclipse are platform-independent, and instructions for installing both on your personal computer are available on the class website. You may use a different environment, but keep in mind that instruction and help are only provided in Eclipse.

Bring to lecture: You need an internet-connected device (laptop or phone) to participate in online polling activities. Also bring pencils/pens and be prepared to write on paper and discuss your ideas with classmates.

Bring to lab: You need to bring your own laptop or plan to borrow a laptop from the Marriott Library for the semester.

Students may use their own computers or ones borrowed from the library for completing assignments and taking Canvas quizzes; however, broken computers or network connectivity issues are not a basis for a deadline extension. Plan to submit work early and use a campus lab computer if problems arise.

Coursework and Evaluation

Tests and Exams

Tests are given approximately every two weeks to assess the knowledge and skills practiced in recent programming assignments (see below). The lowest of these test scores is dropped from the final course grade. Tests are given in the last 25-40 minutes of lectures on these days:

  • Wednesday, September 3
  • Monday, September 15
  • Monday, September 29
  • Monday, October 27
  • Monday, November 10
  • Monday, November 24 

One midterm exam is given during the lecture on October 15.  The final exam is cumulative and will be 3:30-5:30pm December 12.  No exam or test may be taken at a different time for any reason other than a medical emergency or conflict with another exam, and documentation may be required.

Each student must bring their UCard to every test and exam, and they may be asked to show their UCard when turning in the test or exam.  No other type of identification may be used for this purpose.

Programming assignments

The instructions for each assignment and its due date are posted on Canvas at least one week before it must be submitted. 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 are not grounds for extensions — double-check your submissions and save a digital copy of all of your work in your Price College of Engineering account. The timestamps of files outside of this account are not trusted.

Each assignment's deadline is followed by a one-day late period. Late submissions are penalized 10 points. Note that 12:00am in the Gradescope submission system marks the start of a new day. Do not plan to submit your work just a few minutes before the deadline as network connection issues or delays in Gradescope's submission system can result in late penalties or not being able to submit.

Labs sessions

Each lab is comprised of a TA-led activity and a Canvas quiz, to be completed by students each Tuesday. Lab quizzes cannot be taken late.

Weekly review quizzes

Students take Canvas quizzes regularly, reviewing the material covered recently in lectures and lab. Note that these Canvas quizzes are distinguished from those used in labs. Each quiz can be submitted up to one day late for a penalty of 10%.

Final course grade

The final CS 1420 grade is comprised of:

  • 40% tests
  • 20% programming assignments
  • 15% final exam
  • 10% midterm exam
  • 10% labs
  • 5% weekly review quizzes on Canvas

Letter grades

The following table is used to associate numerical scores with the corresponding letter grade. Note the lack of rounding. 89.99% is a B+, 90.00% is an A-.

93 ≤ X ≤ 100 A
90 ≤ X < 93 A-
87 ≤ X < 90 B+
83 ≤ X < 87 B
80 ≤ X < 83 B-
77 ≤ X < 80 C+
73 ≤ X < 77 C
70 ≤ X < 73 C-
67 ≤ X < 70 D+
63 ≤ X < 67 D
60 ≤ X < 63 D-
X < 60 E

Regrades

Students desiring to appeal a score on an assignment or exam must do so via Gradescope. For any Canvas quiz, the appeal must be made via a private post to Instructors in Piazza. All such appeals are due no later than one week after the score is published.

Getting Help

To get help understanding course material, students may see a Teaching Assistant during TA Help Hours, see an instructor during Office Hours, or post a question to Piazza. To contact the course staff directly, use Piazza. Do not use Canvas Inbox. Email is also discouraged for CS 1420 communications. See the Instructions on how to get help page for details.

Policies and Resources

Laptop and mobile device policy

Students are expected to engage with the instructor and classmates during class meetings. A laptop or mobile device is needed to participate in the polling questions. These devices are permitted for note-taking, but hand-written notes are encouraged. All exams and quizzes require handwritten solutions on paper, making handwritten note-taking good practice. Furthermore, laptops and mobile devices tempt students to multitask during class meetings rather than focusing on the topic.

Academic misconduct policy

The reason you are here and paying for this course is to learn. We intend to give you the resources and guidance to ensure that you can effectively learn the needed skills and concepts. Taking unauthorized shortcuts (cheating) circumvents this learning, leaving gaps in your knowledge and weakening the foundation of your computing career. This is such an important factor in your future success that this course needs a strict policy on academic misconduct. Read the following policy carefully and ask for clarification if needed.

Students are bound to this linked Academic Misconduct Policy.

Other polices and guidelines 

Students are bound by the following policies and guidelines:

Students should read and understand each of these documents, asking questions as needed.

ADA statement

The University of Utah seeks to provide equal access to its programs, services and activities for people with disabilities. If you need accommodations in the class, reasonable prior notice needs to be given to the Center for Disability & Access. CDA will work with you and the instructor to make arrangements for accommodations. 

All written information in this course can be made available in alternative format with prior notification to the Center for Disability & Access.

Student mental health resources

If you would like help with any negative feelings, such as burnout, anxiety, depression, isolation, or loneliness, reach out for campus mental health resources, including counseling, trainings and other support.

Consider participating in a Mental Health First Aid or exploring other wellness services provided by our Center for Campus Wellness and sharing these opportunities with your peers.