COSC 1437

Programming Fundamentals II

COSC 1437

Updated August 29, 2012

  • State Approval Code: 11.0201.53 07
  • Semester Credit Hours: 4
  • Lecture Hours per Week: 3
  • Lab Hours per Week: 3
  • Contact Hours per Semester: 96

Catalog Description

This course contains further applications of programming techniques in the “C++” programming language. Topics may include file access methods, data structures and modular programming, program testing and documentation, and other topics not normally covered in an introductory computer programming course.

Prerequisites

COSC 1436

Course Curriculum

Basic Intellectual Compentencies in the Core Curriculum

  • Reading
  • Writing
  • Speaking
  • Listening
  • Critical thinking
  • Computer literacy

Perspectives in the Core Curriculum

  • Establish broad and multiple perspectives on the individual in relationship to the larger society and world in which he/she lives, and to understand the responsibilities of living in a culturally and ethnically diversified world.
  • Stimulate a capacity to discuss and reflect upon individual, political, economic, and social aspects of life in order to understand ways in which to be a responsible member of society.
  • Recognize the importance of maintaining health and wellness.
  • Develop a capacity to use knowledge of how technology and science affect their lives.
  • Develop personal values for ethical behavior.
  • Develop the ability to make aesthetic judgments.
  • Use logical reasoning in problem solving.
  • Integrate knowledge and understand the interrelationships of the scholarly disciplines.

Core Components and Related Exemplary Educational Objectives

Communication (composition, speech, modern language)

  • To understand and demonstrate writing and speaking processes through invention, organization, drafting, revision, editing, and presentation.
  • To develop the ability to research and write a documented paper and/or to give an oral presentation.

Mathematics

  • To apply arithmetic, algebraic, geometric, higher-order thinking, and statistical methods to modeling and solving real-world situations.
  • To represent and evaluate basic mathematical information verbally, numerically, graphically, and symbolically.
  • To interpret mathematical models such as formulas, graphs, tables and schematics, and draw inferences from them.
  • To recognize the limitations of mathematical and statistical models.

Social and Behavioral Sciences

  • To employ the appropriate methods, technologies, and data that social and behavioral scientists use to investigate the human condition.
  • To examine social institutions and processes across a range of historical periods, social structures, and cultures.
  • To use and critique alternative explanatory systems or theories.
  • To analyze the effects of historical, social, political, economic, cultural, and global forces on the area under study.
  • To comprehend the origins and evolution of U.S. and Texas political systems, with a focus on the growth of political institutions, the constitutions of the U.S. and Texas, federalism, civil liberties, and civil and human rights.
  • To understand the evolution and current role of the U.S. in the world.
  • To differentiate and analyze historical evidence (documentary and statistical) and differing points of view.
  • To identify and understand differences and commonalities within diverse cultures.

Instructional Goals and Purposes

Panola College's instructional goals include 1) creating an academic atmosphere in which students may develop their intellects and skills and 2) providing courses so students may receive a certificate/an associate degree or transfer to a senior institution that offers baccalaureate degrees.

General Course Objectives

1.    Design and code programs using the flowchart or algorithm design technique and the C++ language.

2.    Use structured procedural and object oriented programming techniques to develop programs.

3.    Design, test and decode programs while working in a program development environment.

4.    Demonstrate the use of software engineering techniques in solving a programming problem.

Specific Course Objectives

After studying the material presented in the text and online, the student should be able to complete all behavioral/learning objectives listed below with a minimum competency of 70% on assignments and exams.

Learning Objectives:

  1. Design and code programs using the flowchart or algorithm design technique and the C++ language.

  2. Use structured procedural and object oriented programming techniques to develop programs.

  3. Design, test and decode programs while working in a program development environment.

  4. Demonstrate the use of software engineering techniques in solving a programming problem.

Specific Course Objectives (includes SCANS):

After studying the material presented in the text and online, the student should be able to complete all behavioral/learning objectives listed below with a minimum competency of 70% on assignments and exams.

  1. Design and code programs using the flowchart or algorithm design technique and the C++ language. (1a-i, 1a-iv, 1b-i, 1b-iii, 1b-iv, 1b-vi, 2c-i, 2c-ii, 2ciii, 2c-iv, 2d-iii)

    1. Write a simple computer C++ program using basic input and output statements.

    2. Write programs involving arithmetic operators.

    3. Use selection structure to choose among alternative actions.

    4. Use repetition structure to execute statements in a program repeatedly.

  2. Use structured procedural and object oriented programming techniques to develop programs. (1a-i, 1a-ii, 1a-iv, 1b-iii, 1b-vi, 2c-i, 2c-ii, 2c-iii, 2c-iv)

    1. Write programs that create, use and destroy class objects.

    2. Develop programs that convert objects of one class to another class.

    3. Design program problem solutions using array data structure for list and tables.

    4. Declare, initialize, sort and search an array.

    5. Define pointers and pass arguments using pointers.

  3. Design, test and decode programs while working in a program development environment. (1a-i, 1a-iv, 1b-i, 1b-iii, 1b-iv, 1b-vi, 2c-i, 2c-ii, 2ciii, 2c-iv, 2d-iii)

    1. Demonstrate the ability to create, compile, execute, and debug programs in a program development environment such as Visual C++ or Dev C++.

    2. Understand basic problem-solving techniques, such as stepwise refinement.

    3. Code and test simple decision-making statements.

    4. Code and test sentinel-controlled and counter-controlled repetitions.

    5. Write programs that use dynamic memory operators.

  4. Demonstrate the use of software engineering techniques in solving a programming problem. (1a-i, 1a-iv, 1b-iv, 1b-vi, 2c-i, 2c-ii, 2c-iii, 2c-iv)

    1. Construct programs modularly from pieces called functions.

    2. Write programs that utilize the mechanisms to pass information between functions.

    3. Understand the concepts of data hiding and encapsulation.

General Description of Each Lecture or Discussion

Students in all sections of Programming Fundamentals II 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

 

  • A calendar displaying assignments each week (please check often)

  • Online assignments

  • Chapter notes

  • 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.

Assessment

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 one assessment 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.

The grading scale for this course is as follows:

  • Assignments – 20%
  • Portfolio – 50%
  • Exams – 30%

All of your grades including a mid-semester and final grade will be posted to My Grades in Canvas.

Text, Required Readings, Materials, and Supplies

  • An Introduction to Programming With C++, Sixth Edition by Diane Zak, 2010, Course Technology, ISBN 10: 1-4188-3618-4
  • Access to a computer and the Internet
  • Student data files and Dev-C++ are provided with the textbook