CSIS 10A -- JAVA

Computer Science -- Beginning Programming
Spring 2011 grades

Instructor:  Tom Rebold  

Phone:  645-1327               
Office: BH-104A
Office Hours: M/W/Th 2-3, W5-6,F4:30-5:30
Credit:  4 units
Classroom: GC103  
Time: Tue/Thur 10:00 - 12:30
Tell me about yourself!  (delete last letter of URL)
Class web site:  http://www.mpcfaculty.net/tom_rebold/CSIS10A.htm
Tom Rebold's faculty     HOMEWORK UPLOADER   FEEDBACK


MPC CSIS Student Discussion Forum       

Installing BlueJ       Cross Enroll at CSUMB     Computer Majors Compared       

Text:              Eck, Introduction to Programming Using Java, a FREE online text. Paper copies may be ordered on the first day of class for a nominal fee. Also available in HTML and you may purchase a copy of Chapters 1 - 7 here.

Materials:       Storage media (USB thumb drive) for shuttling programs between home and lab
                       A spiral notebook for taking notes during class
                       A personal computer with BlueJ and Java installed on it will be very helpful in completing this class.

Special thanks to Michael Kowalczyk for kindly allowing use of his personal lab materials.
See http://cs.nmu.edu/~mkowalcz/ for more information.

Tutoring:         1) Steve Bruemmer, our Instructional Tech, is available in GC101 M-Th 9-5, F9-2
                        Email: sbruemmer (at) mpc.edu.  646-4289

Course description:

The overall goal of this course is for you to learn the basics of designing algorithms and programming computers in an object-oriented language.  You will express your algorithms using the basic features of the Java programming language and develop strategies for constructing clear, understandable, and efficient code. You should already have some exposure to the elements of programming from a class like CSIS 1 or your own self study. These topics will be developed further in CSIS10B.

Student Learning Outcome:
   
Students will be able to take a problem statement and write a computer program that solves the problem.


Objectives--Students will be able to 

a) Analyze a problem statement and design a solution for the problem.
b) Construct Java computer code to implement the solution of the problem.
c) Debug and test the coded solution for syntax, logic and runtime errors.
d) Comprehend the factors involved with structured and object-oriented programming. 

Course Content           
(Hit CANCEL for any PASSWORD prompt)
   

 

Lecture       Supplemental Reading
(lectures are primary source)
Lab/Homework
Due the following Tuesday

2/1

2/3

The Mental Landscape

Variables and Assignment
Ch 1

Ch 2.1 - 2.5


Lab 1: MathTrick

2/8


2/10

If Statements, using static methods


User interaction, using objects                video
2.5.1, 2.5.3
3.1.1, 3.1.3

2.4, 11.1.5
Lab 2: CoinFlip


Lab 3: Calculator

2/15

2/17

While and do-while                            video

Nesting control structures                   video
3.1.2

3.2 - 3.5
Lab 4: Sandwich
Lab 5: Guess
   LoopDrills Worksheet

Solns 2-5

2/22

2/24

Logical operators, String comparison    video

Using existing class files                       video
      StaticMethodsDemos
2.3.2, 2.5.3, 2.5.4

4.1 - 4.4
Lab 6: Checkout

Lab 7: ChangeMaker


Solns 6-7

3/1

3/3

Casts and Strings                               video

Using objects I       pointDemo          video
Ch 4, 2.5.6

5.1 - 5.4 (Ch4)
Lab 8: FiveLetters

Lab 9: FallingObjects

Solns8-9
3/8

3/10
Using objects II      staticDemos        video

Using objects III                               video
5.1 - 5.4 (Ch4) Lab 10: TreasureHunt

Lab 11: GolfPro

Solns10-11

3/15

3/17

Review  PracticeMidterm  SOLNS   video

Midterm Exam   SOLNS
   

3/22

3/24

Writing classes         BalloonDemo    video

Writing classes II      BalloonDemo2    video
5.1 - 5.4, 4.5.4 Lab12: Dairy

Lab13: More Dairy
Solns12-13

3/29

3/31

Spring Break    

4/5

4/7

Writing classes III    ScopeThisDog   video

Basic applets                video
5.1 - 5.4

6.2, 6.3
Lab 14: RaceGame

Lab 15: House
Solns14-15
4/12

4/14
Event handlers      AppletShell    video

More Applets      brickWall    video
6.4 Lab 16: Target

Lab 17: TreasureApplet
Solns16-17
4/19

4/21
Drawing graphics    ElmStreet    video

Simple arrays    ArrayDemos     video
6.3, 5.6

7.1, 7.2
Lab 18: GraphicMethods

Lab 19: ArrayPractice
Solns18-19

4/26

4/28

More arrays       ArrayUtil      video

Final Project: Pad Class         video
 
7.1, 7.2

Lab 20: Buzzwords
      

5/3

5/5

"For" loops and Arrays           video

Final Project: Pond Class       video
    FrogsAndToads2.zip
7.1, 7.2

Lab 21: Temperature   
Solns20-21

5/10

5/12

Objects that draw themselves    video
      FrogGraphic.zip

FrogGame and Tester                video
      FrogsAndToads3.zip  FT3after.zip


Optional:
Lab22 AppleApplet

5/17

5/19

Pointers and Animations           video

Frog App and Applet               video
 FT4.zip       FT4after.zip


Optional Lab 23: Batman
               Lab23Batman.zip

Solns22-23

5/24

5/26

Work on Project: Frogs&Toads

PracticeFinal   SOLNS            video


Final Project Due
 
5/31 (Tue) Final  Exam   10:30 AM - 1 PM    

Attendance:

Anyone who stops participating with the class for 2 weeks can expect to be dropped. To avoid being dropped, you may keep in touch by email to inform me of any conflicts in your work/life.

Class Work:

Programming Labs                    20%
Final Project                             10%
Midterm Exam                          35%
Final Exam                               35%

 Grades will be based on the following curve:
            A - 90%  
            B - 80%
            C - 70%
           
D - 60% 

Homework Grading:

Each week there will be a number of programming activities for you to solve.  When you are finished, zip your program files, and upload them to the class website. Your programming lab grades will be based on the following table:

Program Success Score:
5 pts.     Program about 50% working
8 pts.     Program about 80% working
10 pts.   Program works completely  (max is 10 points, although a point may be given for extra features added.)

Deductions:
1/2 pt.       Lack of meaningful variable names used in declarations
1/2 pt.       Lack of informative comments
1/2 pt.       Poor or inconsistent formatting
1/2 pt.       Poor choice of Java commands
1/2 pt.       Improperly zipping files (see Homework Uploader for instructions)

Homework more than 1 week late will not be accepted.

Note on Academic Honesty 

Working with others on assignments is a good way to learn the material and is encouraged. However, there are limits to the degree of cooperation that is allowed in this class. Working together to find a good approach for solving a programming problem is acceptable cooperation.  On the other hand, copying someone else’s work is cheating. Anything that you hand in must be your own work. For assignment of penalties, there is no difference between cheaters who copy others' work and cheaters who allow their work to be copied.

Violators of this rule will be given zero points for the assignment or project (or exam) involved. If you have any questions about what constitutes cheating, please ask. I have been getting more strict in my application of this rule.