CSCI 1301 Introduction to Programming Principles, Spring 2009



Dr. Y. Daniel Liang

Computer Science Dept

Lecture Session: Section 03 MWF 11:00-11:50 SC 1503B  
Office Hours: Click office hours


Introduction to Java Programming Brief Version, Seventh Edition, Y. Daniel Liang, Prentice Hall, May, 2008

Course Description 

This course helps students to develop problem solving skills using programming languages. Students are introduced to fundamentals of programming with emphasis on primitive data types, control statements, methods, and arrays. By the end of the semester, students will be able to create simple programs.


The goals of the Introduction to Programming Principles are that students, by mastering the topics presented in this course, gain valuable problem solving skills and programming techniques that will enable them to become proficient in elementary programming.

Course Objectives 

Upon successful completion of this course, students will be able to understand fundamentals of programming and gain practical skills to solve problems using programs.


Pre-Calculus (Math 1113)

Tentative Schedules 

1 L1: Course introduction, Install NetBeans Chapter 1, 1.1-1.4
  L2: Introduce a Simple Program. Create, Edit, Compile, and Run Java Programs. IDE Chapter 1,1.6-1.10
2 L3: Write a Program with Simple Calculations. Identifiers, Variables, Read data from console input Chapter 2, 2.1-2.5


L4: Assignment (Statement and Expressions), Constants, Numeric Types

and Operations, Numeric Literals, Operators,

Chapter 2, 2.6-2.9


L5: Compute Loan Example, Compute Change Example, Current Time Example, Debugging

Chapter 2, 2.12
  L6: Numeric Type Conversions, Character Types, Unicode, ASCII code,
Escape Sequences, Conversion between char and numeric values
Chapter 2, S2.9-2.10

L7: Boolean types and operations, comparison operators, boolean operators,

Chapter 3, S3.1-3.2

L8: Operator precedence,  Operand Evaluation Order.

Chapter 3, S3.3
5 L9: Selection Statements: if, if ... else, nested if, BirthDate and Lottery Example Chapter 3, S3.4
  L10: switch, conditional operator Chapter 3, S3.5-3.8
6 Pre-Exam Review, Exam 1, Post-Exam Review  
  L11: while loop, Examples GuessNumber, AdditionQuiz, MontoCarlo Chapter 4, S4.2
 7 L12: for loop, nested loops, Examples on Numeric Inaccuracy Chapter 4, S4.4-3.5
  L13: Trace loops, In-class Exercises and Reviews  
8 Exam 2 and Post-Exam Review  

L14: Methods, Declare Methods, Call Methods, Pass Parameters

Chapter 5, S5.1-5.3

L15: Method Overloading, Code modularization, void methods, and value-return methods

Chapter 5, S5.4-5.5

L16: Ambiguous invocation, scope of local variables, method abstraction,

Math class,

Chapter 5,  S5.6-5.8
10 L17: Stepwise refinement Chapter 5, S5.11
  In-class Exercises and Review  
11 Exam 3 and Post-Exam Review  

L18: Arrays, The necessity of Using Arrays. Declare Array Variables, Create

Arrays, Assign Array Reference to Variables, Initializing Arrays, Example 5.1

Chapter 6, S6.1-6.3

L19: Passing Array to Methods, Examples

Chapter 6, S6.4

L20: Passing Array to Methods, Examples

Chapter 6, S6.4

13 L21: Example 6.5 Counting the Occurrences of Each Letter Chapter 6, S6.4

L22: Copy Arrays, Multi-dimensional Arrays, Declare Array Variables,

Process Multi-dimensional Arrays, Ragged Arrays

Chapter 6, S6.5-6.6
14 L23: Example 6.7: Adding and Multiplying Two Matrices  
  L24: Example 6.8, Example 6.9  
15 L25: Searching (Linear and Binary) Chapter 6, S6.7
  L26: Sorting Chapter 6, S6.8
16 Free time  
  Review for final exam  
  Final Exam  

Evaluation Scheme

Evaluation is based on attendance, programming exercises, midterm exams, and final exam. Evaluation scheme is subject to change with a prior notice.

Programming assignments must be done individually.  Source file printout  must be submitted in the class on the due day regardless its status (complete or incomplete). No makeup will be offered except under extraordinary situations. In addition to submitting a hard copy, students must also submit the programs to LiveLab. Your grades will be recorded on LiveLab.


25% (Due dates will be announced in the class.)

Three Exams 

15% Each (50 minutes each)

Final Exam

25% (100 minutes)

Class Attendance

5% (Attendance will be checked regularly. Missing classes frequently will be automatically dropped out of class.)





>= 90.0

B >=80.0
C >=70.0
D >=60.0
F <60.0


Programming Documentation and Style

Click here to see Programming Documentation and Coding Style.

Grading Policy

If a program can be automatically graded, LiveLab will assign a score. Partial credits may be justified for some cases. If a program cannot be graded automatically, it will be graded manually and a score will be entered in LiveLab.

Academic Honor Code

Programming assignments must be done individually. Failure to do so will result in a violation of the AASU Academic Honor Code. The following cases will be considered as violations: identical code, and extremely similar code. Violations will be reported to the Office of Vice President of Student Services.

Attendance Policy

Attendance is mandatory. Send me ( an email in advance if you have to miss a class due to emergency or sickness. Please arrive in the class at least three minutes before the class.