Comp 14: Introduction to Programming

Syllabus
http://www.cs.unc.edu/~plato/COMP14


    Course Description:

      Objectives:
      This course is an introduction to computer programming intended for novices. The course will cover the fundamentals of computer programming and algorithms. It will be taught using the Java programming language, but this course is not a course on Java. At the end of the semester, you will be able to:

      • Identify the key components of a computational problem,
      • Divide problems it into small, manageable parts,
      • Write Java code to solve the small problems, and
      • Integrate the small-problem solutions to solve the larger problem.

      This course will conclude with a final project. You will write the game ‘Tetris’. You will write it as a Java Applet, and place it on your website.

      Pre-requisites:
      There are no prerequisites for this course. Students should know algebra.

      Requirements Satisfied:
      COMP 14 satisfies the mathematical sciences perspective. It is a prerequisite for COMP 114 and the first step towards a degree in computer science.

      Topics:

      • Computer structure: CPU, memory, programs, and algorithms
      • Variables, types
      • Expressions and assignments
      • I/O (from the keyboard, to the screen, & to and from files)
      • Conditional Execution (if/then/else)
      • Iteration (for loops, while loops, do-while loops)
      • Subroutines (methods)
      • Arrays, 1D and 2D
      • Java classes
      • Object Oriented Programming (OOP)

      Textbook:
      D.S. Malik. Java Programming: From Problem Analysis To Program Design 2nd Edition. Companion Website

      Software:

    Instructor:

    Meeting times and Places:

      Lectures: Monday and Wednesday 3pm - 4:15pm, Peabody 217
      Recitation: Friday 3pm - 3:50pm Peabody 217

      Office Hours: Monday and Wednesday 4:15pm-5:15pm, Sitterson 042

    Recitation:
    Bring your laptops to recitation. We will program during this time.

    Grading:

      Breakdown:
      Programming Assignments 45 %
      (Final Project 15 %)
      Homeworks/Quizzes 15 %
      Midterm Exam 15 %
      Class Participation 5 %
      Final Exam 20 %

      Time Commitment:
      Expect to spend 3 hours per week on this course outside of class. Some programming assignments will take longer – 5 to 10 hours. Brace for this now. Look at the programming assignment schedule to know which weeks will be busy for you. Do not be discouraged by the amount of time it takes you to complete an assignment.

      Assignment Submission:
      Submit assignments via blackboard.

      Due Dates and Late Assignments:
      Assignments must be in by 11:59 PM on the day they are due. You have five (5) free “late days” to spend as you please through the semester. After your late days are consumed, additional late assignments will not be accepted.

    Other Policies:

      Honor code:
      Student’s are encouraged to work together. You are encouraged to talk about assignments and about their solutions. It is all right to help someone by looking at their code and verbally suggesting changes. While it is fine to look at someone’s code to help them, it is not all right to look at someone else’s code to learn from them. The following is an acceptable exchange:

        John: “Hey, Mark, why isn’t my loop working?”

        Mark: “Dude, you forgot to increment your loop counter.”

      The honor code is spelled out here: http://www.cs.unc.edu/Admin/Courses/HonorCode.html

      Food, Drink, and Laptos:
      No food allowed in class. Beverages are fine, but if you spill, you must clean up. No laptops allowed during lecture.