F10_cse141_IntroductionToProgramming

=**CSE145: Introduction to Programming** = ==**Semester:** == Fall 2010 ==**Instructor:** == Abdul Wajed

**Prerequisites:** None ==**Program:** == BS(CS)

==****Course Description** ** == // A one para description of the course. This should be identical to the description found in the IBA Prospectus. E.g.: //  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.


==**Outcomes of the Course:** == ===**1. Learning Outcomes:** ===

===**2. Ability Outcomes:** ===


==**Course Outline** == // A topic wise, one to two page description of the course. For each topic, there should be a few lines of text describing the topic. E.g.: // // Introduction // 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 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** == // A list of Required and Recommended texts should be given here. Indication of where the book may be obtained from (e.g. IBA library or local book store) may be useful. E.g.: //
 * JAVA for Programmers, Paul J. Deitel and Harvey M., DeitelDeitel Developer Series, Prentice Hall **

**Reference Books**  <span style="font-family: Verdana,sans-serif; font-size: 10pt;">// **Java in a Nutshell** b<span style="color: black; font-family: Verdana,sans-serif; font-size: 10pt;">y David Flanagan, O'Reilly Press
 * How to Program Using Java** b y <span style="color: windowtext; font-family: Verdana,sans-serif; font-size: 10pt; text-decoration: none;">Tony Jenkins and Graham Hardman Palgrave Macmillan

** Tools Java Standard Edition (SE) and JDK 6 Eclipse Rational Rose **   // ==<span style="font-size: 1.3em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 5px;">**Web Resources** == // Any web resources that may be used during the course. // <span style="background-attachment: initial; background-clip: initial; background-color: initial; background-origin: initial; background-position: 100% 50%; background-repeat: no-repeat no-repeat; padding-right: 10px;"><span style="background-attachment: initial; background-clip: initial; background-color: initial; url(http: //www.wikispaces.com/i/a.gif); background-origin: initial; background-position: 100% 50%; background-repeat: no-repeat no-repeat; padding-right: 10px;">[] (Standard Edition) <span style="background-attachment: initial; background-clip: initial; background-color: initial; background-origin: initial; background-position: 100% 50%; background-repeat: no-repeat no-repeat; padding-right: 10px;"><span style="background-attachment: initial; background-clip: initial; background-color: initial; url(http: //www.wikispaces.com/i/a.gif); background-origin: initial; background-position: 100% 50%; background-repeat: no-repeat no-repeat; padding-right: 10px;">[|http://www.eclipse.org] <span style="background-attachment: initial; background-clip: initial; background-color: initial; url(http: //www.wikispaces.com/i/a.gif); background-origin: initial; background-position: 100% 50%; background-repeat: no-repeat no-repeat; padding-right: 10px;">[] <span style="background-attachment: initial; background-clip: initial; background-color: initial; url(http: //www.wikispaces.com/i/a.gif); background-origin: initial; background-position: 100% 50%; background-repeat: no-repeat no-repeat; padding-right: 10px;">[|http://www.javaworld.com] <span style="background-attachment: initial; background-clip: initial; background-color: initial; url(http: //www.wikispaces.com/i/a.gif); background-origin: initial; background-position: 100% 50%; background-repeat: no-repeat no-repeat; padding-right: 10px;">[|http://jcp.org] <span style="background-attachment: initial; background-clip: initial; background-color: initial; url(http: //www.wikispaces.com/i/a.gif); background-origin: initial; background-position: 100% 50%; background-repeat: no-repeat no-repeat; padding-right: 10px;">[]

==<span style="font-size: 1.3em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 5px;">**Grading Policy** == // The recommended grading policy, with weights attached to Quizzes, Homework assignements, Midterm exams, projects and Final Exams. // 1. Midterms 40 Marks 2. Quizzes 5 Marks 3. Assignments/Class Participation 5 Marks 4. Project 10 Marks 5. Final Exam. 40 Marks

==<span style="font-size: 1.3em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 5px;">**Download(s)** == // You may also upload a course outline attachment. // // [|OutlineIntroductiontoProgrammingFall2009.pdf] //