F09_CSE141_IntroductionToProgramming

=CSE141: Introduction to Programming=

Semester:
Fall 2009

**Program:**
BS (CS)

Instructor:
Imran Khan

Course Description
This course is designed to provide an understanding of fundamental concepts related to programming. It is an informative, entertaining and challenging course. It will enable students with little or no prior experience in software development to become problem solvers/programmers. Java is one of todays most popular and powerful programming languages. Java will be used as a tool for programming logic and concepts development. Students can use their preferred IDE such as Eclipse or Netbeans, but most classroom demonstrations will be in Eclipse. Students will complete several programming assignments to develop their problem-solving skills and to gain experience in detecting and correcting software errors.

Course Outline
What is a computer program? What is algorithm?, Types of Algorithm: Pseudo code, Flowcharting, History of C and C+, History of Java, Typical Java development environment, , First program in Java, System.out.println, printf, Relational operator, data types, constant, variable, comments. What is Class, Objects, Methods and Instance Variables, Primitive Types, Reference Type, constructors? Control structure, decision making and filtering operations, if… else, while, nested control statements, assignment operator, increment and decrement operator How to handle repetitive task or iterative task?, for, do … while, switch, break, continue, logical operators Declaring methods, Single parameter and multiple parameters, static method, Method call stack, argument promotion and casting, Java API packages, scope of declaration. Method overloading, recursion, examples using recursion, Factorial, Fibonacci, recursion vs. iteration. Declaring and creating arrays, using arrays, multi dimension array, enhanced for statement, passing arrays to methods. Controlling access to member, this reference, default and no argument constructor, final instance variable, data abstraction and encapsulation, package access Overview, divide by zero with and without exception handling, finally block, predefine exception handler, declaring new exception types, java exception hierarchy. Data hierarchy, files and streams, class file, sequential access text files, object serialization Class arrays, interface collection and class collections, lists, array list, iterator, linked lists, stack, Queue Simple GUI based I/O, overview of Swing components, JButton, JCheckBox, JRadioButton, JTextArea, JPanel, mouse event handeling.
 * //Introduction//**
 * Introduction to Java Applications**
 * Introduction to Classes and Objects**
 * Control Statement Part I**
 * Control Statement Part II**
 * Methods Part I**
 * Recursive Methods and Method overloading**
 * Arrays**
 * Classes and Objects**
 * Exception Handling (optional)**
 * Files and Streams (optional)**
 * Collections (optional)**
 * GUI Components (optional)**

Text Books

 * JAVA for Programmers, Paul J. Deitel and Harvey M., DeitelDeitel Developer Series, Prentice Hall **

**Reference Books**  // **Java in a Nutshell** by David Flanagan, O'Reilly Press
 * How to Program Using Java** b y Tony Jenkins and Graham Hardman Palgrave Macmillan

** Tools Java Standard Edition (SE) and JDK 6 Eclipse Rational Rose **  //

Web Resources
//http://java.sun.com/j2se/ (Standard Edition) http://www.eclipse.org http://java.sun.com/docs/books/tutorial/java/ http://www.javaworld.com http://jcp.org http://eclipsetutorial.sourceforge.net/totalbeginner.html//

Grading Policy (tentative)
1. Midterms 40 Marks 2. Quizzes 5 Marks 3. Assignments/Class Participation 5 Marks 4. Project  10 Marks 5. Final Exam. 40 Marks

Download(s)
[|OutlineIntroductiontoProgrammingFall2009.pdf]