S12_CSE141_Introduction_to_Programming

=CSE141: Introduction to Programming=

Program:
BS(CS)

Semester:
Spring 2012

Instructor:
Abdul Wajed

**Course Lead:**
Abdul Wajed

**Credit Hours:**
4 (3 credit hours for theory + 1 credit hour for lab)

Prerequisite(s):
CSE141, CSE145

Course Description:
This course describes another paradigm as a better replacement for structured/procedural programming paradigm (CSE141) for managing large programs to segregate code into reusable chunks called classes. Principles of Abstraction, Encapsulation, Inheritance and Polymorphism are explored as well as developing an understanding of code structuring and design philosophies. It requires a thorough understanding of fundamentals of programming. Topics include class definition, constructors, destructors, access control, method overloading and overriding, inheritance, static and dynamic binding, exception handling, object life cycle and garbage collection, and namespaces. Either Java, C# or C++ is used as a tool for implementation of concepts learnt in this course.

Course Objectives:
After the studying this course the students would understand:

How to Analyse Real World Problems Formulate a simple step by step solution to the problem How to code the solution in a suitable Programming Language Fundamental Mathematical Concepts related with Graphics Testing and Debuging to assess validity of the solution


 * URLs (Optional):**

Use of the following web based coding practice tool is mandatory for every student of this course []

Books:

 * Required:**

by Daniel Shiffman ISBN-10: 0123736021 | ISBN-13: 978-0123736024 | Publication Date: September 2, 2008
 * Learning Processing: A Beginner's Guide to Programming Images, Animation, and Interaction**

by Casey Reas, Ben Fry, John Maeda (Foreword) ISBN-10: 0262182629 | ISBN-13: 978-0262182621 | Publication Date: August 17, 2007
 * Processing: A Programming Handbook for Visual Designers and Artists**

by Ira Greenberg ISBN-10: 159059617X | ISBN-13: 978-1590596173 | Publication Date: June 1, 2007
 * Reference**
 * Processing: Creative Coding and Computational Art**

by Kostas Terzidis ISBN-10: 0470375485 | ISBN-13: 978-0470375488 | Publication Date: May 11, 2009
 * Algorithms for Visual Design Using the Processing Language**

Web Resources:
[] [] [] [] [] []

Grading Policy:
Mid-Term = 15% + 15% Final Exam = 40% Labwork = 20% Project = 10%

Uploaded Reference Course Outline:
You may also upload a course outline here.

Class Time Spent On (In Credit Hours):
Theory: 2.5 Problem Analysis: 0.5 Solution Design: 0.5 Social and Ethical Issues: 0.5

**Topics Covered in the Course **

 * 1) Introduction to Problem Solving using Flowcharts
 * 2) Review of Rectangular Coordinate System
 * 3) Drawing Primitive Shapes
 * 4) Variables and Values along with Data Types
 * 5) Introduction to Color Theory
 * 6) Arithmetic Operators
 * 7) Simple Control Structures (IF Else) and Comparison Operators
 * 8) Boolean Logic and Operators
 * 9) Complex Control Structures (If Elseif else) and Nested Decisions
 * 10) Defining Simple Functions
 * 11) Parameter Passing to Functions
 * 12) Returning Values from Functions
 * 13) Recursion
 * 14) Basic Iteration Structures (simple loops)
 * 15) Arrays and Strings
 * 16) Passing and Returning Arrays to/from Functions
 * 17) Advanced Iteration Structures
 * 18) Review of Trigonometric Concepts for Graphics
 * 19) Testing and Debugging
 * 20) Sorting and Searching of Arrays/Strings
 * 21) Data Persistence and File I/O
 * 22) Using Images, Fonts and other Multimedia Elements
 * 23) An Introduction to Data Structures
 * 24) Use of Libraries
 * 25) Introduction to Regular Expressions
 * 26) GUI Design and use of IDE
 * 27) Introduction to Classes & Objects
 * 28) Violating the Encapsulation Principle to create User Defined Data types


 * ==**Laboratory Projects/Experiments Covered in the Course (optional) **== ||
 * S.No || Date of the Lab || Topic of the Lab || Additional Reference Material ||
 * 1 ||  ||   ||   ||
 * 2 ||  ||   ||   ||
 * 3 ||  ||   ||   ||
 * 4 ||  ||   ||   ||
 * 5 ||  ||   ||   ||
 * 6 ||  ||   ||   ||
 * 7 ||  ||   ||   ||
 * 8 ||  ||   ||   ||
 * 9 ||  ||   ||   ||
 * 10 ||  ||   ||   ||
 * 11 ||  ||   ||   ||
 * 12 ||  ||   ||   ||
 * 13 ||  ||   ||   ||
 * 14 ||  ||   ||   ||

= =