CSCI 1301 Introduction to Programming Principles, Spring 2005



Dr. Y. Daniel Liang

Computer Science Dept

Lecture Session: Section 02 MWF 1:30-2:20 SC 1503B  
Office Hours: Click office hours


Introduction to Java Programming Custom Core, fifth Edition, Y. Daniel Liang, Prentice Hall, 2005

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 course is taught through two lectures and one lab session each week. The lectures cover the programming concepts and the labs are designed to support the lectures and to give students hands-on programming practice.


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 Introduction to Computer Science I, 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: Overview of Computer Systems, Programming Languages, Number Systems, and Java Chapter 1, 1.1-1.5
  L2: Introduce a Simple Program. Create, Edit, Compile, and Run Java Programs. Chapter 1,1.6-1.10
2 L3: Write a Program with Simple Calculations. Identifiers, Variables 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 Mortgage Example, Compute Change Example, Current Time Example, Debugging

Chapter 2, Examples 2.2 & 2.3
  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 2, S2.11-2.13

L8: Operator precedence,  Operand Evaluation Order. Programming Style

Documentation Guidelines, Programming Errors, Pre-Exam Review

Chapter 2, S2.14-2.16
5 Exam 1 and Post-Exam Review  
  L9: Selection Statements: if, if ... else, nested if, Example 3.1 Chapter 3, S3.1-3.2
6 L10: switch, conditional operator, while loop and do-while loop Chapter 3, S3.3.
  L11: for loop, nested loops, Examples 3.3, 3.4, 3.5 Chapter 3, S3.3
 7 L12: Keywords break and continue. Case Studies Chapter 3, S3.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,

Method Overloading

Chapter 4, S4.1-4.5

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

Math class, Example 4.4

Chapter 4, S4.6-4.8

L16: Recursion concept, Factorials, and Fibonacci Problems

Chapter 4, S4.10
10 L17: More on recursion, Towers of Hanoi Problem Chapter 4, S4.10
  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 5, S5.1-5.3

L19: Passing Array to Methods, Examples 5.3 and 5.4

Chapter 5, S5.4

L20: Passing Array to Methods, Examples 5.3 and 5.4

Chapter 5, S5.4

13 L21: Example 5.5 Counting the Occurrences of Each Letter Chapter 5, S5.4

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

Process Multi-dimensional Arrays, Ragged Arrays

Chapter 5, S5.5-5.6
14 L23: Example 5.7: Adding and Multiplying Two Matrices  
  L24: Example 5.8, Example 5.9  
15 L25: Searching (Linear and Binary) Chapter 5, S5.7
  L26: Sorting Chapter 5, S5.8
16 Free time  
  Exam 4 and Post-Exam Review  
  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 makeups will be offered except under extraordinary situations.


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

Four Exams 

12.5% Each (Multiple choice questions + programming) (50 minutes each)

Final Exam

30% (Multiple choice questions + programming) (100 minutes)





>= 90.0

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

Grading Policy on Homework

20% on Programming Style and Documentation.

80% on Correctness.


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.

Class Picture

Demietrius Frazier, Beau Broderick, Hunter Causey, Matt Mercer, Michael Hart, Todd Allmond, Kiet Tran, ?, Craig Bass, Michael Grayson, Barry Humrich, Michaela Hamlin, Melanie Bongalon, Duy Le, Ashley Stokes, Michael Braun, John Turner, Engkhan Ow, Kevin Usher, Joe McPeters, Zachary Nichols

Not Shown: Dwain Whitehead, Somona Richardson, and Zeeshan Vira