CS 142 - Intro to Programming - 3D

Description Text Calendar Grading Programs TAs
Course Description

 

The purpose of this course is to learn how to program computers. It is assumed that students have very little programming experience. Students that have never programmed at all may want to consider taking CS100 first.

In this particular version of CS142 we will be programming animations in 3D. It is assumed that students have absolutely no experience in 3D animation. The goal of the animation is to give us something really phun to program.

A key to programming is to learn to read manuals and documentation. For each lecture there are readings in the text. You are expected to read these BEFORE class.

Instructor: Dan R. Olsen Jr.

Office Hours: e-mail, call, knock on my door anytime(3336 TMCB) or peek in my lab (3329 TMCB)

Text Materials
 

Text:

  • Java: An Introduction to Problem Solving and Programing, 4th Edition,
  • Walter Savitch
  • Pearson/Prentice Hall

Tutorial for the Phun package

Java documentation for the Phun package

Java API documentation

If you want to work on your own machine you will need to install Java3D. You will also need the jar file for edu.byu.phun, which is our software package. If you don't know how to do these things, it would be better for you to use the department lab computers.

Calendar
 
- Topics
Readings
7 Jan - Course introduction, computing terms, first program, intro to 3D programs
Chapter 1
tutorial on how to get started
9 Jan - Variables, identifiers, assignment statements, console input and output, primitive data types, arithmetic, objects, classes and methods
Chapter 2.1

read program 1 and the sample programs

14 Jan - Strings, concatenation, string methods, more console input and output
Chapter 2.2 and 2.3
16 Jan - Classes, objects, methods, inheritance, 3D shapes, viewing, colors, javadocs

Program 1 is due before class.


Phun tutorial

Read program 2 description and sample code

21 Jan - Holiday
23 Jan - Constructing 3D images from pieces (exercise skills)
Phun tutorial
28 Jan - Flow of control, if, while, for, boolean expressions

Program 2 is due before class


Chapter 3.1-3.4

Look at edu.byu.phun javadocs

30 Jan - Review flow of control, animation
4 Feb - Review for Exam
6 Feb - Classes and Methods
Chapter 4.1-4.2
11 Feb -

Objects, Reference, animation

Program 3 is due before class time


Chapter 4.3
13 Feb - Exam 1
18 Feb - Holiday
20 Feb - Names
Chapter 5.1-5.7
25 Feb - Animating the Human
javadocs
27 Feb - Arrays
Chapter 6.1-6.3
3 Mar -

More Arrays

Program 4 due before class


Chapter 6.4-6.5
5 Mar - Object Design Exercises
10 Mar - Inheritance
Chapter 7
12 Mar - Review
17 Mar - Exam 2
19 Mar - Exception Handling

 


Chapter 8
24 Mar - Recursion
Chapter 11
26 Mar -

Text File Input / Output

Program 5 due before class


Chapter 9.1-9.3

31 Mar -

3D Scene save/load

Binary File Input/Output


Chapter 9.4-9.5
2 Apr -

Data Structures

Generic Types

Program 6 due before class


Chapter 10.1-10.2

Chapter 10.3

7-9 Apr - No Class
14 Apr -

Review for final

Program 7 due before class


22 Apr - Final Exam - 7PM-10PM
Grading
 
  • Quizes 10%
      Students are expected to read the material BEFORE class, not after the lecture. There will be frequent in-class and Blackboard quizes. The text contains self test questions for all of the reading. The answers to the self test questions are at the end of each chapter. The quiz questions will be similar (not the same) as these self test questions. The quizes will be on Blackboard.
  • Programs 40%
      For instructions on how to submit programs see the tutorial.
  • Exams
    • Exam 1 15%
    • Exam 2 15%
    • Final exam 20%
Programming Assignments
 

Computers:

It does not matter what machine you use to implement your assignments. However, your code must be passed off on a Windows PC. Java is supposedly portable but is actually not in subtle ways. DO NOT WAIT until the last minute to make certain your code runs under Windows.

Passoff

All programs are turned in through Blackboard. There is a mechanism to upload files attached to each assignment. You must submit a zip file containing the source code, the compiled class files and any other files necessary to run your program. Your zip file should be named [programnumber][lastname][firstinitial].zip. All submissions should contain a README.TXT file that contains: your name, your email address and the command line to run your program from your root directory.

Late Policy

Programs are due 1/2 hour before class starts on the day the assignment is due. Program loose 10% per week up to a maximum of 40%. There is no way to pass the class by putting everything off until the end. Employers want to know that you can get stuff done on time. Your grade will reflect that.

  • ALL PROGRAMS ARE DUE BY NOON ON THE LAST DAY OF CLASS. No late submissions after that time.

Cheating Policy

All programming assignments (unless specifically indicated otherwise) are individual projects. They are designed to test your individual mastery of the material.

Students are encouraged to talk to each other, to the TAs, to the instructor or to search online for ideas and understanding that will help solve the programming assignment. However, the code should be your own. Copying from anyone else or from the internet is a violation of the Honor Code and will be dealt with as such.

TAs
 
Amy Dickerson

amyedickerson@gmail.com

Office: 1058 TMCB carrell 26

Office Hours:

  • Mon: 10 am- 1:30 pm
  • Tue: 4:30 pm- 7 pm
  • Wed: 3 pm- 7 pm
  • Thur: 11 am- 2 pm
  • Fri: 10 am- 2 pm.

Role of Teaching Assistants

Teaching assistants are provided to help you with your assignments and to do grading. They cannot debug your programs. They can answer questions and give explanations but your code is generally too complex for them to help much.

If you have a problem with how one of your assignments was graded, contact the TAs first and if you are not satisfied, talk to the instructor. If you have a question about requirements for a problem email the instructor. To prevent confusion, theTAs have been asked not to interpret requirements.