Home (server page) | Dr. Luis Paris

chip   CIS 120 - Programming Fundamentals I - Fall 2005 - Syllabus   abacus

Place:
Time:
Room 108
Section 1 (Mon,Wed: 9am-11am)
Section 2 (Mon,Wed: 6pm-8pm)
Instructor: Luis Paris
Office Hours: Thursday (2pm to 4pm), Friday (by appointment)
Contact: e-mail: lparis@harrisburgu.net
Phone: 901-5116
Office: 425

Course description: This course introduces the concepts and techniques of computer programming. The course has two major phases: First, the basic principles of Object Oriented Programming (OOP) are exposed using the ALICE graphics programming framework. Second, emphasis is placed on problem solving using the JAVA programming language. The course main goals are thus:

 - Understand the key fundamental principles of the Object Oriented Programming paradigm.
 - Develop the ability to apply problem-solving strategies to various computing problems.
 - Design and implement algorithms in a modern, structured, OO Programming language.

Course plan: The course will consist of lectures where the basic ideas of OO Programming and computer problem solving are introduced, followed by "hands-on" exercises that reinforce through practice the topics covered. "Students learn by doing". This is especially true when it comes to computer programming. Therefore, labs and programming assignments are an integral part of the course. Through them, students will sharpen their problem solving skills and apply their creativity in the process.

Topics: Fundamental programming constructs, problem solving techniques, simple data structures, program structure, data types and declarations, control statements, algorithm strategies, and algorithm development.

Textbook:
textbook cover Lambert and Osborne
Fundamentals of Java: Comprehensive, 2nd edition
Thompson Publishing Company, 2003
ISBN: 0-619-05963-X

(Note: There are various versions of this book. Make sure you get the "Comprehensive" one)

Reference textbooks (optional):
Savitch, Walter
Java: An introduction to problem solving & programming, 4th edition
Prentice Hall, 2004
ISBN: 0-131-49202-0
Eckel, Bruce
Thinking in Java, 3rd edition
Prentice Hall, 2002
ISBN: 0-131-00287-2
(free online edition available here: http://www.mindview.net/Books/TIJ/)
Dann, Cooper, Pausch
Learning to Program with Alice, 1st edition
Prentice Hall, 2005
ISBN: 0-131-87289-3

Grading:
1 Alice Exam 10%
4 Alice Labs 10%
11 Assignments (one dropped) 25%
4 Java Exams (one dropped) 30%
Java Final Exam 15%
Attendance and participation 10%

Final grades will be assigned according to the
latest Student Handbook grading policy:
 

B+:87-89
C+:77-79

A:93-100 B:83-86 C:73-76 D:60-69 F:0-59
A-:90-92 B-:80-82 C-:70-72    
Schedule: - The following is a tentative course plan. Schedule changes are possible and will be updated accordingly.
- Readings/Exercises are intended to be performed before class time. Participating is to your advantage.
- Assignments, which consist of labs, homeworks, or programming exercises, are to be done individually.
- Unless otherwise specified, assigments can be turned in online (uploaded) via the CIS120 server page.

Date Topics Readings/Exercises Assignments/Labs Due
Week 1 Monday (8/29) Class overview & expectations
Moodle course web site
SENCER SALG Pre-test
   
Wednesday (8/31) *** PHASE 1 begins: ALICE ***
- Introduction to Alice Programming
- Installation, Getting started with Alice
(sample worlds: Movie demo, Interactive demo)
Alice Reading 1
Alice Lab 1 (in class)
 
Week 2 Monday (9/5) - Animation programs: Scenarios & Storyboards
(sample worlds: Snowman meets snowwoman)
- Classes, objects, & methods
(sample worlds: Snowman meets snowwoman 2)
Alice Appendix A (Do Tutorial)
Alice Reading 2
Alice Lab 2 (in class)
Alice Lab 1 due
Wednesday (9/7) - Method Parameters
(sample worlds: The bug band)
- Inheritance (Part 1)
Assignment #1
Alice Reading 3
Alice Tips and techniques
(useful for Assignment #1)
Alice Lab 2 due
Week 3 Monday (9/12) - Inheritance (Part 2)
- Control flow - Boolean Questions (Part 1)
Alice Reading 4
Alice Lab 3 (in class)
 
Wednesday (9/14) - Control flow - Boolean Questions (Part 2) Alice Lab 4 (in class) Alice Lab 3 due
Alice Lab 4 (due Friday 9/16)
Week 4 Monday (9/19) Alice Test (45 minutes)
*** PHASE 2 begins: JAVA ***
Lesson: Background
- Getting started with Java
- History of computers
- Computer Hardware & Software
- Why Java?
- The Java Virtual Machine (JVM) and Byte Code
- Choosing a User Interface
Assignment #2
(pages 3-9) Sections 1.1, 1.2
(page 14) Computer Ethics
(pages 27-32) Sections 2.1, 2.2, 2.3, 2.4
Assignment #1 due
Wednesday (9/21) - Edit, Compile, and Execute
- Temperature conversion
- Binary representation and RAM
Assignment #3
(pages 32-42) Sections 2.5, 2.6
(pages 9-14) Section 1.3
Assignment #2 due
Week 5 Monday (9/26) - Programming Languages
- The Software Development Process
- Turtle graphics
(pages 16-19) Sections 1.4, 1.5
(pages 42-49) Section 2.7
 
Wednesday (9/28) - Basic concepts of OOP
REVIEW of Chapters 1 and 2
Assignment #4
(pages 19-25) Section 1.6 Assignment #3 due
Week 6 Monday (10/3) Java Exam #1 (45 minutes) (Chapter 1 and 2)
Lesson: Syntax, Errors, and Debugging
- Language Elements
(pages 51-53) Section 3.1  
Wednesday (10/5) - Java Syntax and Semantics
Assignment #5
(pages 53-69) Section 3.2 Assignment #4 due
Week 7 Monday (10/10) Fall break (no class)  
 
Wednesday (10/12) - Terminal I/O for various Datatypes
- Java Comments; Case Study 1
- Programming Errors
- Debugging; Case Study 2
Assignment #6
(pages 69-85) Sections 3.3, 3.4, 3.5, 3.6 Assignment #5 due
Week 8 Monday (10/17) Lesson: Control Statements
- Additional operators
- Standard classes and methods
- Shortcut for inputting data
- Farm example (control statements)
- The if and if-else statements
(pages 91-101) Sections 4.1, 4.2, 4.3, 4.4, 4.5  
Wednesday (10/19) - The while statement
- The for statement
- Nested control statements, and the break statement
- Errors in loops
Assignment #7
(pages 101-123) Sections 4.6, 4.7, 4.8, 4.9 Assignment #6 due
Week 9 Monday (10/24) Lesson: Defining Classes
- Structure of Classes and Objects
REVIEW of Chapters 3 and 4
(pages 131-133) Section 5.1  
Wednesday (10/26) Java Exam #2 (45 minutes) (Chapters 3 and 4)
- A Student class
(pages 133-142) Section 5.2  
Week 10 Monday (10/31) - Editing, compiling, and testing the Student class
Case study: Student Test Scores
- Structure and behavior of methods
Assignment #8
(pages 144-153) Sections 5.3, 5.4 Assignment #7 due
Wednesday (11/2) - Scope and lifetime of variables
Lesson: Control Statements 2
- Logical operators
Case study: Compute weekly pay
(pages 153-158) Section 5.5
(pages 169-182) Section 6.1
 
Week 11 Monday (11/7) - Testing if statements
- Nested if statements
- Logical errors in Nested if statements
- Nested loops - Testing loops
(pages 182-194) Sections 6.2, 6.3, 6.4, 6.5, 6.6 Assignment #8 due
Wednesday (11/9) Case study: Fibonacci numbers
REVIEW of Chapters 5 and 6
Assignment #9
(pages 195-198) Section 6.6  
Week 12 Monday (11/14) Java Exam #3 (45 minutes) (Chapters 5 and 6)
Lesson: Improving the User Interface
- A Thermometer class
- A GUI-based conversion program
- The GUI program explained
(pages 204, 208-212) Sections 7.1, 7.4, 7.5  
Wednesday (11/16) - Other window objects and methods
- Formatted output
Lesson: Intro to Arrays
- Conceptual overview
(pages 213-220) Sections 7.6, 7.7
(pages 235-236) Section 8.1
Assignment #9 due
Week 13 Monday (11/21) - Simple array manipulations
- Looping through arrays
- Declaring arrays
Assignment #10
(pages 237-243) Sections 8.2, 8.3, 8.4  
Wednesday (11/23) Thanksgiving (no class)    
Week 14 Monday (11/28) - Working arrays that are not full
- Parallel arrays
- Arrays and methods
Case study: Student test scores revisited
Assignment #11
(pages 243-245, 249-251, 253-259) Sections 8.5, 8.6, 8.8 Assignment #10 due
Wednesday (11/30) - Overview of Java File input
REVIEW of Chapters 7 and 8
(pages 665-666, 669-674) Section 20.2  
Week 15 Monday (12/5) Java Exam #4 (45 minutes)
REVIEW for final exam (Chapters 1, 2, 3, 4, 5, 6, 7, 8)
   
Wednesday (12/7) (Last day of class)
REVIEW for final exam (Chapters 1, 2, 3, 4, 5, 6, 7, 8)
  Assignment #11 due
Week 16 Monday (12/12) Final Java Exam    
Wednesday (12/14)      
Links: - Sun's Java Technology web site: http://java.sun.com or http://javasoft.com
- Java articles, tutorials, discussions, etc.: http://www.developer.com/java/

Honor Code: We, as students of Harrisburg University, pledge to conduct ourselves in a manner that is consistent with the highest standards of honesty and integrity. We will not cheat, plagiarize, steal or lie in matters related to any form of academic work. We, as a Community of Learners, will honor and uphold this Code of Conduct.


Last updated: 8/26/2005 4:27PM
Comments to: lparis@harrisburgu.net