Course Syllabus COSC 1436 – Programming Fundamentals I Revision Date: August 21, 2013 Catalog Description: This course is an introduction to computer programming in the ―C++‖ programming language. Emphasis is on the fundamentals of structured design, development, testing, implementation, and documentation. It includes coverage of language syntax, data and file structures, input/output devices, and disks/files. Lecture hours = 3, Lab hours = 3 Prerequisites: COSC 1301 or BCIS 1305 Semester Credit Hours: 4 Lecture Hours per Week: 3 Lab Hours per Week: 3 Contact Hours per Semester: 96 State Approval Code: 11.0201.52 07 Core Components and Related College Student Learning Outcomes This course counts as part of the academic requirements of the Panola College Core Curriculum and an Associate of Arts or Associate of Science degree. Yes No: If no, skip to Instructional Goals. The items below marked with an X reflect the state-mandated outcomes for this course IF this is a CORE course: Critical Thinking Skills – to include creative thinking, innovation, inquiry and analysis, evaluation and syntheses of information CT1: Generate and communicate ideas by combining, changing, or reapplying existing information CT2: Gather and assess information relevant to a question CT3: Analyze, evaluate, and synthesize information Communication Skills – to include effective development, interpretation, and expression of ideas through written, oral, and visual communication CS1: Develop, interpret, and express ideas through written communication CS2: Develop, interpret, and express ideas through oral communication CS3: Develop, interpret, and express ideas through visual communication Empirical and Quantitative Skills – to include the manipulation and analysis of numerical data or observable facts resulting in informed conclusions EQS1: Manipulate and analyze numerical data and arrive at an informed conclusion EQS2: Manipulate and analyze observable facts and arrive at an informed conclusion Teamwork – to include the ability to consider different points of view and to work effectively with others to support a shared purpose or goal TW1: Integrate different viewpoints as a member of a team TW2: Work with others to support and accomplish a shared goal Personal Responsibility – to include the ability to connect choices, actions, and consequences to ethical decision-making PR1: Evaluate choices and actions and relate consequences to decision-making Social Responsibility – to include intercultural competence, knowledge of civic responsibility, and the ability to engage effectively in regional, national, and global communities SR1: Demonstrate intercultural competence SR2: Identify civic responsibility SR3: Engage in regional, national, and global communities Instructional Goals and Purposes: The purpose of this course is to develop programs using fundamental concepts of structured programming using software development methodology in program problem solving. This will be accomplished by the ability of the student to code programs using data types, control structures, functions and arrays and by demonstrating the ability to run, test, and debug programs. Learning Outcomes: [from the ACGM catalog] After studying all materials and resources presented in the course, the student will be able to: 1. 2. 3. 4. Develop programs using fundamental concepts of structured programming. Use software development methodology in program problem solving. Code programs using data types, control structures, functions and arrays. Demonstrate the ability to run, test, and debug programs. Course Content: Students in all sections of this course will learn the following content: 1. Create programs using basic elements of C++ including variables and I/O statements 2. Code arithmetic computations 3. Develop programs with simple and compound conditions, 4. Develop algorithms 5. Plan and design program logic with pseudocode 6. Develop programs using selection structures including if and switch statements 7. Write a simple program using the techniques of top-down design of algorithms and structured programming. 8. Use repetition structures in programs including do and while loops 9. Create programs using functions. 10. Write modules that perform basic manipulations with one-dimensional arrays 11. Code statements iterating over sequences 12. Understand variable scope and be able to use variables appropriately in programs. 13. Create software using problem solving skills to design, code and test programs. 2 14. Demonstrate the use of debugging functions available in software development tools. 15. Run, test and debug programs. General Description of Each Lecture or Discussion Students in all sections of ―C++‖ Programming I will be required to do the following: 1. Students will submit computer programs for each learning module of the course. Each program must demonstrate comprehensive knowledge of the learning module represented. 2. Students will assemble a portfolio of programming projects to be submitted at the end of the semester. 3. Students will conduct an interactive presentation of a comprehensive programming project subject to peer and instructor evaluation. Methods of Instruction/Course Format/Delivery: Students in both the traditional class and in the Internet class will have access to this course via Canvas. Students in the traditional class will meet regularly for lecture over the material. Students in the Internet class will only be required to meet with the instructor for testing; however, Internet students are always welcome to attend the traditional class (especially for exam reviews). Resources provided through Canvas include 1. A calendar displaying assignments each week (please check often) 2. Online assignments 3. Chapter notes 4. Email (totally contained within Canvas) All assignments will be submitted through Canvas. After the assignment has been graded, the student will be able to view his or her grade by returning to the assignment and clicking the View Scores button or by clicking the My Grades link in the left banner. All exams will be hands-on application tests and students will not be able to view the answers to the exams online; however, they will be able to see their grade in My Grades and drop by the office to review their exams. I generally will have your work graded and posted within two days following the deadline. Students in both the traditional and Internet classes should use the Email within Canvas to communicate with the instructor. Using Canvas email gives you access to the instructor and other classmates without having to remember or type email addresses—you just select a name from the list. If you are not able to contact me using email in Canvas, you may use my Panola College email address. I attempt to respond to all email within 24 hours. If you make an appointment with me through email to take an exam, for example, I will reply to your email—if I do not reply you should send your email to me again or call me. Please always include a subject line and your name in your email. 3 Assessment: Course Grade: The grade for this course will be based on…The following items will be assigned during the semester and used to calculate the student’s final grade: ASSIGNMENTS We will work through each of the learning modules which correspond to the chapters in your textbook. At the end of each learning module, you will complete a programming project demonstrating your knowledge of the programming concepts presented in the learning module. Program source code will be submitted to me according to the schedule provided using the online drop box in the Assignments link of Canvas. PORTFOLIO The portfolio will be a collection of all program source code developed during the semester including a comprehensive programming project to be completed in the final weeks of the semester. Portfolios are due by the scheduled deadline. EXAMS There will be two assessments to verify that you have the comprehensive knowledge required to produce your portfolio. You will demonstrate this knowledge by conducting an interactive presentation of a comprehensive programming project subject to peer and instructor evaluation. Course Grade: The grading scale for this course is as follows: Assignments – 20% Portfolio – 50% Exams – 30% All grades including a mid-semester and final grade will be posted to My Grades in Canvas. Texts, Materials, and Supplies: Required: An Introduction to Programming With C++, Sixth Edition by Diane Zak, 2007, Course Technology, Access to a computer and the Internet. Student data files and Dev-C++ are provided with the textbook. 4