Appalachian State University - CS1440 - Computer Science 1 - Fall 2016 - Clément Aubert

Information

Time and Place

Section 103
MWF 11:00 am-11:50 am, Anne Belk Hall, 310
Section 104
MWF 12:00 pm-12:50 pm, Anne Belk Hall, 310

Sections 101 and 102 are taught by Dr. Patricia Johann: refer to her webpage for information regarding those sections.

Laboratory

The laboratory component of this course is mandatory, and must be taken concomitantly. It has its own meeting time (Tuesday), syllabus and policies: please check for these on AsULearn. However, passing both the lecture and lab portions is required to pass the course overall.

Topic

This course is a gentle introduction to computer programming. As such, it will provide students with a general methodology on the design and implementation of programs, that is at the core of every programming language. To do so, we'll use a particular programming language (Java™), that relies on a specific paradigm (Object-oriented programming), providing the students with first-hand practice and programming experience.

Objectives

Upon successful completion of this class, the student will:

Contact and Help

Professor

Dr. Clément Aubert

Office Hours

Professor (Dr. Aubert)
MWF 9:00 am-10:30 am, but feel free to set up an appointment by email or to drop by when I'm in.
Lab Teaching Assistants
Monday 1:00 pm-3:00 pm (Matt Stone), Friday 11:00 am-1:00 pm (Nathan Davis), both in Anne Belk Hall 311.

Help Sessions (Study Halls)

Please refer to the Department's page for general information about study halls and tutoring. They meet on:

Agenda

Syllabus

The syllabus might be updated to reflect our actual progress. Section numbers refer to sections in the course text.

Week Day Program Quiz and Homework
Week 1 Tue. 16 Aug. Lab. 0
Wed. 17 Aug. Course Introduction HW1 out
2.1 The Parts of a Java™ Program
Fri. 19 Aug. 2.2 The print and println Methods and the Java™ API
2.3 Variables and Literals
Week 2 Mon. 22 Aug. 2.4 Primitive Data Types
2.5 Arithmetic Operators
2.6 Combined Assignment Operators
Tue. 23 Aug. Lab. 1
Wed. 24 Aug. 2.7 Conversion between Primitive Data Types
2.8 Creating Named Constants with static final
Fri. 26 Aug. 2.9 The String Class HW1 quiz; HW2 out
2.10 Scope
Week 3 Mon. 29 Aug. 2.11 Comments
2.12 Programming Style (including Checkstyle)
2.13 Reading Keyboard Input
Tue. 30 Aug. Lab. 2
Wed. 31 Aug. 2.15 The printf Method
The String.format Method
Fri. 2 Sep. 3.1 Classes HW2 quiz; HW3 out
Week 4 Mon. 5 Sep. No class - Labor Day
Tue. 6 Sep. No lab.
Wed. 7 Sep. 3.2 More about Passing Arguments
3.3 Instance Fields and Methods
Fri. 9 Sep. 3.3 More on Instance Fields and Methods HW3 quiz; HW4 out
3.4 Constructors
Week 5 Mon. 12 Sep. 3.5 A Bank Account Class
Tue. 13 Sep. Lab. 3
Wed. 14 Sep. 3.6 Classes, Variables, and Scope
3.7 Packages and import Statements
Fri. 16 Sep. 4.1 The if Statement HW4 quiz; HW5 out
4.2 The if-else Statement
4.3 The Payroll Class
Week 6 Mon. 19 Sep. 4.4 Nested if Statements
4.5 The if-else-if Statement
Tue. 20 Sep. Lab. 4
Wed. 21 Sep. 4.6 Logical Operators
4.7 Comparing String Objects
Fri. 23 Sep. 4.10 The switch Statement HW5 quiz; HW6 out
4.13 The Random Class
Week 7 Mon. 26 Sep. 4.12 Focus on Problem Solving: The Sales Commission Class
Tue. 27 Sep. Lab. 5
Wed. 28 Sep. Review
Fri. 30 Sep. In-class Exam (1/2)
Week 8 Mon. 3 Oct. 5.1 The Increment and Decrement Operators
5.2 The while Loop
5.3 Using the while Loop for Input Validation
Tue. 4 Oct. Lab. 6
Wed. 5 Oct. 5.4 The do while Loop
5.5 The for Loop
Fri. 7 Oct. 5.5 More on for Loops HW6 quiz; HW7 out
5.6 Running Totals and Sentinel Values
Week 9 Mon. 10 Oct. 5.7 Nested Loops
5.8 The break and continue Statements
5.10 Writing to Files
Tue. 11 Oct. Lab. 7
Wed. 12 Oct. 5.10 More on File Input and Output
Fri. 14 Oct. No class — Fall Break
Week 10 Mon.17 Oct. 6.1 Static Class Members
6.2 Overloaded Methods
Tue. 18 Oct. Lab. 8
Wed. 19 Oct. 6.3 Overloaded Constructors
6.4 Passing Objects as Arguments to Methods
6.5 Returning Objects from Methods
Fri. 21 Oct. 6.6 The toString Method HW7 quiz; HW8 out
6.7 Writing an equals Method
6.8 Methods that Copy Objects
Week 11 Mon. 24 Oct. 6.9 More on Aggregation
6.10 The this Reference Variable; null references
Tue. 25 Oct. Lab. 9
Wed. 26 Oct. 6.12 Enumerated Types
Fri. 28 Oct. 7.1 Introduction to Arrays HW8 quiz; HW9 out
7.2 Processing Array Contents
Week 12 Mon. 31 Oct. 7.3 Passing Arrays as Arguments to Methods
7.4 Some Useful Array Algorithms and Operations
Tue. 1 Nov. No Lab.
Wed. 2 Nov. 7.5 Returning from Methods
7.6 String Arrays
7.7 Arrays of Objects
Fri. 4 Nov. 7.10 Two-dimensional Arrays HW9 quiz; HW10 out
Week 13 Mon. 7 Nov. 7.12 Command-line Arguments; Variable-length Argument Lists
7.13 The ArrayList Class
Tue. 8 Nov. Lab. 10
Wed. 9 Nov. 7.13 ArrayLists of Primitive Types
Fri. 11 Nov. Review
Week 14 Mon. 14 Nov. In-class Exam (2/2)
Tue. 15 Nov. Lab. 11
Wed. 16 Nov. 9.1 What is Inheritance?
9.2 Calling the Superclass Constructor
Fri. 18 Nov. 9.3 Overriding Superclass Methods HW10 quiz; HW11 out
9.5 Classes that Inherit from Subclasses
Week 15 Mon. 21 Nov. 9.6 The Object Class
9.7 Polymorphism; instanceof
Tue. 22 Nov. Lab. 12
Wed. 23 - Fri. 25 Nov. No class — Thanksgiving Break
Week 16 Mon. 28 Nov. 9.8 Abstract Classes and Abstract Methods
9.9 Interfaces
Tue. 29 Nov. Lab. 13
Wed. 30 Nov. Course evaluations HW11 quiz
Review
Wrap-up
Week 17 Tue. 6 Dec. Final Exam. for Section 103
Wed. 7 Dec.Final Exam. for Section 104

Special days

Please refer to the 2015-16 Academic Calendar (PDF) of the Office of the Registrar.

Resources

Textbook

Starting Out with Java: Early Objects (Fourth edition), Tony Gaddis, Addison-Wesley Pearson 2011, ISBN: 978-0-13-216476-4.

Don't forget that the University bookstore has a textbook department.

Homework

Homework 1 is still available, the quiz was on 26 August.

Homework 2 is still available, the quiz was on 2 September.

Homework 3 is still available, the quiz was on 9 September.

Homework 4 is still available, the quiz was on 16 September.

Homework 5 is still available, the quiz was on 23 September.

Homework 6 is still available, the quiz was on 7 October.

Homework 7 is still available, the quiz was on 21 October.

Homework 8 is now available, the quiz was on 28 October.

Homework 9 is now available, the quiz was on 4 November.

Homework 10 is now available, the quiz was on 18 November.

Homework 11 is now available. The quiz will be on 30 November.

Logistics

Evaluation

Students are going to be evaluated using four different types of evaluation:

  1. Eleven homeworks will be assigned during the course of the semester: they are not expected to be handed back, and won't be graded, but eleven quizzes with questions taken from those homeworks will be given. Those quizzes always happen on Friday (see the tentative syllabus), are closed book and timed (∼10min.).
  2. The lab comes with its own evaluation, whose grade will be taken into account in the course grade.
  3. There will be two in-class exams, held during the regular class periods on 30 September and 14 November.
  4. The final exam will take place during the December 2016 exam period. The date depends on the section:
    Section 103
    Tuesday, December 6, 2016 from 9:00 am - 11:30 am, Anne Belk Hall, 310
    Section 104
    Wednesday, December 7, 2016 from 9:00 am - 11:30 am, Anne Belk Hall, 310

Grade

Your course grade will be computed as follows:

Homework quizzes 15%
Lab assignments 25%
In-class exams 30%
Final exam 30%

Using (roughly) the following correspondence between G.P.A. and numerical values:

Letter GradePercent Grade
A+97-100
A93-96
A-90-92
B+87-89
B83-86
B-80-82
C+77-79
C73-76
C-70-72
D+67-69
D65-66
E/FBelow 65

All coursework is individual coursework. A grade of C- (C minus) is enough to pass the course, but a grade of C or better is required to enroll in CS2440 - Computer Science II.

How to Succeed

What I'm expecting from you:

What you should expect from me:

Policies

University Policies

Appalachian State University has policies covering academic integrity code, accommodations for students with disabilities, and class attendance policy (including the state mandated religious observance policy). Please refer to Syllabi Policy and Statement Information to consult them. The University's attendance policy as well as the Academic Integrity Code are supposed to be known by students, and will be enforced.

Collaboration Policy

The University's Policy on Academic Integrity is available at the Office of Student Conduct, and will be enforced. You're assumed to know it, but as long as you don't lie, cheat, plagiarize, assist others or being assisted by others without authorization, we should not need it.

If you are unsure about whether or not certain kinds of collaboration are permissible, please ask me.