COMP 110-001: Introduction to Programming, SSI'15
MTWRF 9:45am-11:15am FB 009
Instructor: Yi Hong (yihong@cs.unc.edu)   Office hours: MW 3pm-4pm @ SN226

Announcements

  • Final exam: 8am -- 11am, June 17, at FB 009
  • Lab 8 due on Jun 15, 11:59pm
  • Homework 4 posted, due on June 12, 11:59pm
  • Lab 7 due on June 10, 11:59pm
  • Lab 6 due on June 4, 11:59pm
  • Midterm grades were released, see the distribution of the scores here.
  • Homework 3 posted, due on June 5, 11:59pm
  • Midterm is on May 29
  • Lab 4 & 5 due on May 28, 11:59pm
  • Homework 2 posted, due on May 26, 11:59pm
  • Lab 2 & 3 due on May 22, 11:59pm
  • Homework 1 posted, due on May 20, 11:59pm
  • Lab 0 & 1 due on May 18, 11:59pm
  • Last Day for late registration SSI: May 14.
  • First Day of class: May 13.

  • Course Description and Target Audience

    This is an introductory course to programming for students with no previous programming experience. There are two primary goals:

    1. Learn fundamental computer programming skills
    2. Improve problem solving and logical thinking skills
    The course is designed to use the Java programming language. Comp 116 is another introductory computer programming course, but with emphasis on scientific computing. Both COMP 110 and COMP 116 satisfy the prerequisite to continue with further programming courses, e.g., COMP 401.

    Prerequisites and Course Requirements

    1. Prerequisite: There are no prerequisite courses. You should have had high school Math and be facile with using a computer.
    2. Laptop: Each student needs a laptop computer for installing and using Java during SSI.

    Textbooks and Resources

    1. Textbook: Java: An Introduction to Problem Solving and Programming: 6th Edition, by Walter Savitch and Kenrick Mock, Prentice Hall © 2011
    2. URL: http://cs.unc.edu/~yihong/COMP110/COMP110-001.html

    Grading Policy

    1. Labs and Assignments (60%)
    2. Midterm (15%)
    3. Final (20%)
    4. Class participation / Attendance (5%)

    Late Policy

    An assignment is considered late if it is submitted after 11:59pm on the due date. Each student has 3 free "late days", which may be used at any time and in any combination. Using a late day gives the student an extra 24 hours to turn in the assignment. Unused late days are each worth 2 extra credit points on the final exam. Once a student's late days have been exhausted, late assignments will not be accepted for credit.


    Honor Code

    Make sure that you are familiar with The UNC Honor Code and The Computer Science Honor Code. You are not allowed to collaboratively write your programming assignments.


    Further Information

    1. Syllabus
    2. How to Succeed In COMP 110

    Schedule

    This is a tentative schedule and subject to change as needed.

    Date Lecture Topic(s) Reading Assignments
    Wed. May 13 Lecture 1: Introduction
    [PDF] [PPTX]
    Lecture 2: Computer Basics
    [PDF] [PPTX]
    Chapter 1.1-1.2 Homework 0
    SecondProgram.java
    Thurs. May 14 Lecture 3: Programming Basics
    [PDF] [PPTX]
    Lecture 4: Primitive and Class Types
    [PDF] [PPTX]
    Chapter 1.3
    Chapter 2.1
    TypeCasting.java
    Fri. May 15 Lab 0
    Lab 1
    Homework 0 Due
    Homework 1
    VendingMachine.java
    TotalCost.java
    Mon. May 18 Lecture 5: String & Console I/O
    [PDF] [PPTX]
    Lecture 6: Review of Chapter 1 & 2
    [PDF] [PPTX]
    Chapter 2.2-2.3 Lab 0 & 1 Due
    StringsAndChars.java
    TestStringMethods.java
    Tues. May 19 Lecture 7: Branching 1 [PDF] [PPTX]
    Lecture 8: Branching 2 [PDF] [PPTX]
    Chapter 3.1-3.3  
    Wed. May 20 Lab 2
    Lab 3
      Homework 1 Due
    Homework 2
    Homework 2 Tips
    StringFun.java
    SmileyFace.java
    Thurs. May 21 Lecture 9: Loop Statements
    [PDF] [PPTX]
    Lecture 10: More About Loops
    [PDF] [PPTX]
    Chapter 4.1-4.2  
    Fri. May 22 Lecture 11: Classes
    [PDF] [PPTX]
    Lecture 12: More About Classes
    [PDF] [PPTX]
    Chapter 5.1 Lab 2 & 3 Due
    Mon. May 25 HOLIDAY (Memorial Day), No Class
    Tues. May 26 Lab 4
    Lab 5
      Homework 2 Due
    SmileyMain.java
    SmileyClass.java
    Wed. May 27 Lecture 13: Mid-Term Review
    [PDF] [PPTX]
       
    Thurs. May 28 Review Mid-Term Practice
    Q&A
    Finish Midterm practice before class Lab 4 & 5 Due
    Mid-Term Practice
    [Solution]
    Fri. May 29 Mid-Term Exam Homework 3
    Mon. June 1 Review Mid-Term Exam
    Lecture 14: Objects and References
    [PDF] [PPTX]
    Chapter 5.3  
    Tues. June 2 Lab 6   Lab6.java
    InsecureCreditCard.java
    Wed. June 3 Lecture 15: Information Hiding and Encapsulation [PDF] [PPTX]
    Lecture 16: Constructors and Static Methods [PDF] [PPTX]
    Chapter 5.2
    Chapter 6.1-6.2
     
    Thurs. June 4 Lecture 17: Designing Methods and Overloading [PDF] [PPTX]
    Lecture 18: Package & Review of Classes [PDF] [PPTX]
    Chapter 6.3-6.4
    Chapter 6.7
    Lab 6 Due
    MathUtils.java
    MathUtilsDriver.java
    Point.java
    Rectangle.java
    RectangleDriver.java
    Fri. June 5 Lecture 19: Arrays Basics
    [PDF] [PPTX]
    Lecture 20: More About Arrays
    [PDF] [PPTX]
    Chapter 7.1-7.2
    Chapter 7.5, 12.1
    Homework 3 Due
    Homework 4
    Memory.java
    MyArrayTest.java
    Mon. June 8 Lab 7   Lab7.java
    TilePuzzle.java
    Tues. June 9 Lecture 21: Inheritance Basics
    [PDF] [PPTX]
    Lecture 22: Inheritance and Polymorphism [PDF] [PPTX]
    Chapter 8.1-8.2
    Chapter 8.3
     
    Wed. June 10 Lecture 23: Exception Handling
    [PDF] [PPTX]
    Lecture 24: Streams and File I/O
    [PDF] [PPTX]
    Chapter 9.1, 9.3
    Chapter 10.1-10.2
    Lab 7 Due
    Thurs. June 11 Lab 8    
    Fri. June 12 Lecture 25: Recursion, Searching, and Selection [PDF] [PPTX]
    Lecture 26: Introduction to Sorting
    [PDF] [PPTX]
    Chapter 7.4
    Chapter 11.1-11.2
    Homework 4 Due
    Mon. June 15 Final Exam Review
    [PDF] [PPTX]
    Practice 1
    Practice 2
    Practice 3
    Lab 8 Due
    Tues. June 16 Self-Review    
    Wed. June 17 Final Exam (8am -- 11am)