Welcome to Programming I              Spring 2009

Instructor: Imad Antonios, PhD
antoniosi1 at southernct.edu
Morrill Hall 117A
 
Teaching Assistant: Brett Jurman (brettcsc152 at gmail.com)
Tutoring hour: 1-2pm on Wednesdays in JE139A

Course syllabus 

Great free introductory programming book using Java (click here)

Using the online materials

These materials have been developed in support of the CSC152 (Programming I) course at SCSU.   They are protected by an Open Access license, allowing you to use and distribute them freely for academic purposes only (click here for more information).  While they can be used as a self-study resource, they should  be regarded as a complement, not a substitute for lecture.  Much of the learning in an introductory programming course takes place through class interaction, group exercises, and the feedback that you receive from coding.  When you work through these materials, I suggest that you try out the examples on your computer, and further your understanding by modifying the code.  The materials, for the most part, have been designed to be explored in the order they are presented.  Finally, this is very much a work in progress (Links to readings will become available over the course of the semester).   I welcome your comments and corrections by email.

Course Schedule


Final exam
Section 1: Tuesday 5/19 12:45-2:45pm in MO8
Section 2:
Thursday 5/21 3-5pm in MO8

Monday 5/18 is the last day to turn in your final lab – no exceptions.

05.14

Reading day (no classes)
Final lab due

05.12

Catch-up
Practice exercises (pdf)

05.07

Quiz on arrays: this will include a coding exercise on the computer in preparation for the final exam.

05.05

Character strings: declaration, concatenation, character extraction.
Two dimensional arrays.
Lab 9 due
Lab 10 – final lab (pdf): due on 05.14

04.30

Arrays as parameters
Common array operations: printing, copying, searching, finding largest, randomizing, reversing and mirroring.

04.28

04.23

Quiz on conditional statements and methods
Creating an array using the new operator
Using arrays with loops
Lab 9 (pdf): due on 05.05.09

04.21

Discussion of the game 'arrange' from Lab 8
Introduction to arrays: definition, initialization, indexing.

04.16

Static methods
The return statement
Lab 8 (pdf): due on 04.23

04.14

Method concepts: object versus class methods
Examples: filling a circle on a board object

04.09

Interactive board objects: handling mouse clicks and motion
Work on Lab 7 (pdf): due on 04.16

04.07

Negating a board object (flipping the cells)
Drawing a circle
Introduction to cellular automata
Two automata examples (download code: CAsimple.java, CA30.java)

04.02

Conditional with multiple alternatives
Using conditionals with a board object: negating a board.
Work on Lab 6 (updated version -- pdf): due on 04.09

03.30

Welcome back from Spring break
Reflection on midterm exam
Conditional statements: if and if-else statements
Compound conditions using logical operators (&&, || and !)

03.19

Midterm exam

03.17

More examples with nested loops
Review for midterm:
exam topics (pdf)

03.12

Quiz discussion, solution
No new lab assigned (Lab 5 extended until Monday the 16th)
Creating random characters
Introduction to nested loops
Exam review session with Brett on Monday 03.16 starting at noon in JE139A

03.10

Variable scope
The for loop

03.05

The do-while loop: input validation
Generating random numbers (the Random class)
Incorporating randomness into a Board object
Work on Lab 5
(due on 03.12)
Quiz on 03.10 on the following: Color concepts, creating arbitrary colors, expressing repetition using a while loop, generating random numbers.

03.03

Summing up a series using a loop
Computing the average of user-entered values

02.26

Repetition: the while loop (Read Unit 5)
Work on Lab 4
(due on 03.05)

02.24

Continue working with the Board class
Creating arbitrary colors (see Section 6.4)

02.19

Quiz on Units 2 and 3.1, 3.2
Using Board methods (you must have downloaded BaseBoard.java)
The char type, the Color class
Work on Lab 3
(due on 02.26)

02.17

Shorthand arithmetic operators
Mixed type arithmetic (implicit conversion)
Explicit type conversion (type casting)
Introduction to the BaseBoard class (Unit 4)

02.12

Submit Lab 1 to the Labdata drive
Work on Lab 2
(due on 02.19)
Download program to compute the distance between 2 points (from last lecture): EuclideanDistance.java
Quiz on 02.19 (details next Tuesday)

02.10

Obtaining input from the user
Creating a Scanner object and using Scanner operations
Processing user input (some sample programs)
Read 3.1-3.2

02.05

Lab 1 (due on 02.12)
Structure of a Java program
How to compile and run a program in DrJava
Numeric data types: properties of types, variable declarations, simple expressions
Read Unit 2

02.03

No class

01.29

Java output statement
Arithmetic and relational operators
Read Unit 1

01.27

Course introduction