WEST NEGROS UNIVERSITY PROGRAM SY 2013 – 2014 / 1ST SEMESTER THE LERCA SYLLABUS Course Title Computer Programming 1: Fundamentals of Programming & Logic Formulation Course Code ITCP 102 Professor JUVANI C. DE LOS SANTOS Contact Details jvn2k5@hotmail.com +639292203765 Course Credits Consultation schedule 3 UNITS 2:00 – 4:00 PM Fri THE LINKS Link to the Envisioned WNU Graduate The course will enable a WNU graduate practice basic-yet-competitive skills in C/C++ language programming in his/her future workplace or environment by providing and requiring them with practical examples and exercises. Link to the Envisioned Degree Holder The course will equip a BSIT graduate with the ability to teach and demonstrate basic computer programming skills in C/C++. Horizontal Link The course will supplement/complement what they will simultaneously learn from ITFL 101 (IT Fundamentals with Office Productivity Tools). The course uses correct mathematics operations and functions they must have been learning in Math 110 (College Algebra). Vertical Link The learning from this course will serve as foundation to the next computer programming course, which is ITCP 103 (Computer Programming 2: Advanced Programming Techniques). 1 COURSE DESCRIPTION Programming and Logic Formulation 1 is part of the BSIT program to establish basic programming and logical skills, which is foundational and pre-requisite to Programming and Logic Formulation 2 and supplementary/complementary to IT Fundamentals with Office Productivity Tools and College Algebra. The course introduces the basic concepts and elements of a computer programming language and guides the development of a corresponding computer program based on a particular problem. It includes discussion on I/O statements, loop, and branching instructions, and creating functions and procedures using C/C++ Language. At the end of the course, the student is now a computer programmer in C/C++ language applying the art and style of procedural programming to solve computational problems adhering to the standards and guidelines of documentation. COURSE INTENDED LEARNING OUTCOMES Upon successful completion of the course, the students are expected to: 1. Recognize the basic (program) control structures. 2. Properly evaluate an expression, identify and classify the primitive data types and commonly-used functions in C/C++ language, and appropriately use built-in basic I/O functions and program statements. 3. Construct the general form/format/syntax of a C/C++ program based on applicable program design technique/paradigm. 4. Follow the fundamental, logical, related, and sequential steps in the Program Development Life Cycle (PDLC) and adhere to standards and guidelines of documentations.LO1 5. Declare variables, and define and call user-defined functions and macros (in a program) according to correct syntax using an IDE (Integrated Development Environment). 6. Write, encode, save, compile, and execute a computer program/programming project(s) in C/C++ language on a given computational problem integrating the concepts and principles learned in this course.IL 2 COURSE INTENDED LEARNING OUTCOMES COURSE CONTENT LEARNING EXPERIENCE ASSESSMENT TASKS Interactive Lecture: Students will be required to have an advance reading/research on the indicated topic outline and contents and then share what they got in a focussed discussion. Oral Recitation, Boardwork, and/or Seatwork I. Introduction to Program & Upon successful completion of this lesson, the students will be able to: Recognize the basic (program) control structures. Upon successful completion of this lesson, the students will be able to: Properly evaluate an expression, identify and classify the primitive data types and commonly-used functions in C/C++ language, and appropriately use built-in and basic I/O functions and program statements. Construct the general form/format/syntax of a C/C++ program based on applicable program design technique/paradigm. 3 Programming A. Definition of a Computer Program B. Definition of Computer Programming and Algorithms C. Basic Program Control Structures 1. Sequence 2. Condition(Selection) 3. Loop(Repetition) II. Program Elements of C/C++ Language A. Identifiers & Naming Conventions B. Operators & Their Precedence 1. Arithmetic 2. Relational & Logical 3. Bitwise C. Data Types in C/C++ D. Constants & Variables E. Program Statements/Functions 1. Basic Input & Output a. printf()/cout b. scanf()/cin 2. Simple(Sequential 3. Conditional 4. Repetitive 5. C/C++ Built-in Functions F. Structure of a C/C++ Program G. Programming Paradigms and Software Design Techniques/ Methodologies 1. Spaghetti Coding 2. Modular Design 3. Object-Oriented Programming (OOP) 4. Rapid Application Development (RAD) Interactive Lecture: Students will be required to have an advance reading/research on the indicated topic outline and contents and then share what they got in a focussed discussion. Workshops: Students will be given sample applications they must implement within an IDE. Quiz on evaluating an expression and hand-written making of a program code and Computerbased Assessment via Program Making Prelim Exam Upon successful completion of this lesson, the students will be able to: Follow the fundamental, logical, related, and sequential steps in the Program Development Life Cycle (PDLC) and adhere to standards and guidelines of documentations. III. Program Development (Life) Cycle A. Pre-Programming Phase 1. Problem Identification/ Definition/Specification. 2. Problem Analysis a. Specification of Output, Input and Processes Required 3. Formulation of the Algorithm 4. Program Design (Development of Pseudo-code, Flowchart, Decision Table, and/or Hierarchy Chart B. Programming Phase Writing the Program Code C. Post Programming Phase 1. Testing & Debugging 2. Documentation a. Technical b. Non-Technical Inquiry Learning: Students will be given down-to-earth programming problems to come up with a properlydocumented programs by following the Program Development Life Cycle. Workshops: Students will be given sample applications and down-to-earth programming problems they have to program and implement within an IDE. Quiz on developing a properlydocumented program based on a given down-to-earth programming problem and Computerbased Assessment via Program Making Midterm Exam Upon successful completion of this lesson, the students will be able to: Declare variables, and define and call user-defined functions and macros (in a program) according to correct syntax using an IDE (Integrated Development Environment). Write, encode, save, compile, and execute a computer program/programming project(s) in C/C++ language on a given computational problem integrating the 4 IV. Introduction to C/C++ Programming and Its Environment. A. Formal Introduction to Turbo/Borland C/C++ IDE B. Syntax in Declaring a Variable in C/C++ C. The Preprocessor Directives 1. #include 2. #define D. The Global Declarations 1. Global Variables 2. User-Defined Functions E. The main() function F. Syntaxes in Declaring, Defining and Calling a Function Focusing Inquiry based on the questions: How do you declare a variable in C/C++? What are required and optional entries in the structure of a C/C++ program? How do you define and call a userdefined function? How to pass parameters to a function? Seatwork and Computerbased Assessment via Program Making concepts and principles learned in this course. G. Passing parameters (arguments) to a function. H. The Exit statement. I. Scope of Variables and Rules of Scope. J. The Available String and Math Functions in C/C++ What is the use of EXIT statement? How do you classify variables according to scope? What are the available String and Math functions in C/C++? Workshops: Students will be provided with several appropriate applications, then programming exercises they must implement within an IDE. Pre-Final Exam Upon successful completion of this lesson, the students will be able to: Write, encode, save, compile, and execute a computer program/programming project(s) in C/C++ language on a given computational problem integrating the concepts and principles learned in this course. V. Introduction to Arrays A. Defining an Array. B. Examples Using Arrays. C. Sorting Arrays. D. Searching Arrays. E. Declaring an Array. F. Passing Arrays to Functions. G. Basic Sorting Techniques. H. Multi-dimensional Arrays Workshops: Students will further be required to work on advanced applications infusing arrays. Computerbased Assessment via Program Making. Final Exam ASSESSMENT SCHEME Assessment Task Assigned weight (%) ILO Major Focus Assignments/Seatworks/Boardworks/ Recitations 10 ILO1, ILO3, ILO6 5 Project/Requirement 15 ILO5, ILO6 Laboratory Exercises 15 ILO2 - ILO6 Quizzes 20 ILO2 - ILO5 Periodic Examinations 40 ILO2 - ILO6 LEARNING RESOURCES ILO Required Readings Recommended Readings Computer Fundamentals and Logic Formulation 2nd Edition © 2011 by Joyce Farrell, Greg Anderson, David Ferro, Robert Hilton & Charles Roth Jr. Logic Design Fundamentals © 2011 by Charles H. Roth, Jr. & Larry L. Kinney ILO1 – ILO3 ILO4 – ILO6 http://www.bfoit.org/itp/Programming.html http://en.wikipedia.org/wiki/Computer_program http://www.landofcode.com/programming-intro/what-iscomputer-programming.php http://www.scribd.com/doc/21241035/ProgramDevelopment-Life-Cycle http://www.scribd.com/doc/2451377/FlowchartProgramming http://www.scribd.com/doc/17129489/Flow-ChartingFundamentals Foundations of C Programming © 2011 by Behrouz A. Forouzan & Richard F. Gilberg http://www.landofcode.com/programmingintro/computer-programming-concepts.php http://www.landofcode.com/programmingintro/computer-programming-languages.php http://www.landofcode.com/programming-intro/sourcecode.php http://www.landofcode.com/programming-intro/writingcomputer-programs.php http://www.youtube.com/watch?v=t65Ex_qiLeM http://www.engr.sjsu.edu/bjfurman/courses/ME30/ ME30pdf/week3_control_structures.pdf An Introduction to Programming with C++ 5th Edition © 2008 by Diane Zak Introduction to Programming with C++ © 2011 by Diane Zak Introduction to C++ Game Programming © 2010 by Michael Dawson C++ for Engineering and Computer Science © 2009 by Gary J. Bronson 6 C++ Programming: Problem Analysis to Program Design (Lab. Manual) © 2011 by Judy Schooll & Gerard Nugent http://www.cprogramming.com/tutorial.html http://www.spinellis.gr/codereading/spinellisch02.pdf http://www.youtube.com/watch?v=HpSmsizyuM4 http://www.youtube.com/watch? feature=endscreen&v=TV0MtxZMrGw&NR=1 http://www.dreamincode.net/forums/topic/86751-userdefined-function/ http://www.dreamincode.net/forums/topic/86861-userdefined-functions/ http://programming59.blogspot.com/2011/07/function-inc-language.html http://www.codeproject.com/Articles/83080/DynamicThree-Dimensional-Arrays-in-C-C-C-Java http://www.tenouk.com/Module7.html http://augustcouncil.com/~tgibson/tutorial/arr.html http://www.mycplus.com/tutorials/data-structures/arraysc-cpp-programming/ http://programmingtechnique.blogspot.com/2011/08/difference-betweenarrays-and.html http://en.wikipedia.org/wiki/Sorting_algorithm COURSE POLICIES 1. The course is a pre-requisite to ITCP 103, which is regularly offered the next semester (i.e., second semester of the academic year). It requires a minimum of grade of 3.5, which is equivalent to 75%. 2. There are four Periodic Exams, namely: Prelim, Midterm, Pre-Final and Final. 3. A set of laboratory exercises must be completed and compiled individually. 4. An individual project or final requirement is necessary. 5. Notes must be written on a separate notebook. 6. Absences must not exceed 18 hours for the entire semester. 7. A removal or remedial exam may be offered, if necessary. 8. Participation in class discussion or work is encouraged with incentives. 9. An Integrated Development Environment (i.e., Turbo C/C++, Borland C++, or CodeBlocks) is recommended to be used. 10. A student should save his/her computer programs in a folder, bearing his/her own name, on drive D and should copy the same on his/her flash drive. 11. It is the responsibility of each student to secure and protect his/her laboratory exercises and requirements from deliberate and accidental deletions. 12. Only the prescribed software tools will be used during laboratory sessions. 13. Each student is designated a particular computer unit during laboratory sessions throughout the entire semester. 7 COURSE CALENDAR SESSION DATES Prelim: Week 1 1 MODE Face-to-face /Online TOPIC/ACTIVITIES Face-to-Face Introduction to Program and Programming/Advance Reading/Research, Focussed Discussion, and Oral Recitation, Seatwork, and/or Boardwork. Program Elements of C/C++ Language/ Advance 2-4 Weeks 2 to 4 Face-to-Face and Online 5 Week 5 Face-to-Face Prelim Exam 6-9 Midterm: Weeks 6 to 9 Face-to-Face and Online Program Development (Life) Cycle/Inquiry Learning and Quiz. Reading/Research, Focussed Discussion, and Quiz. 10-13 Pre-Final: Weeks 10 to 13 Face-to-Face and Online Introduction to C/C++ Programming and Its Environment/Focusing Inquiry, Seatwork and Laboratory Works. 14 Week 14 Face-to-Face Pre-Final Exam 15-17 Final: Weeks 15 to 17 Face-to-Face and Online Introduction to Arrays/Laboratory Works 18 Week 18 Face-to-Face Final Exam Prepared by: Juvani C. De Los Santos Checked by: Ms. May S. Cuaycong BSIT/BSCS Program Coordinator 8