C S 160 - Introduction to Programming with Application to ...



CS 159 - Programming Applications for Engineers

Course Number: CS 159

Course Title: Programming Applications for Engineers

Corequisite(s): ENGR 116, ENGR 126, or consent of instructor

Class Hours: 2

Lab Hours: 2

Credit Hours: 3

Catalog Description:

CS 159 Programming Applications for Engineers Sem. 1 or 2. Class 2, lab. 2, cr. 3. Corequisite(s): ENGR 116, ENGR 126 or consent of instructor.

Fundamental principles, concepts, and methods of programming (C & Matlab), with emphasis on applications in the physical sciences and engineering. Basic problem solving and programming techniques; fundamental algorithms and data structures; and use of programming logic in solving engineering problems. Students are expected to complete assignments in a collaborative learning environment.

Course Objective

CS 159 will introduce the tools of software development that have become valuable for creative problem solving in Engineering.  We believe that it is important for future professionals in fields of Engineering to be able to function as a part of a technical team and will require students to work in assigned teams on a variety of assignments.  It is also believed such collaborative teaming environments will lead to increased learning gains for students participating in this introductory programming course.

This course will introduce students to structured programming as a tool to solve problems related to Engineering. The language of choice will be C, but will include parallel references to the Matlab environment as the semester progresses. The focus will be on the implementation of good algorithm design (utilizing the top-down design process, efficient implementations, intelligent debugging approaches, and finished products that abide by good programming and documentation standards) to solve engineering problems rather than the emphasis of specific programming language syntax or environment. The details of syntax are easily referenced and students who learn how to program can consult such references as needed. The demonstration of this ability will take place throughout the semester when students are expected to transfer their knowledge of algorithm design in various environments (primarily Matlab). Students will work in teams in the time-limited laboratory. It is believed that such a collaborative environment encourages informal learning that is beneficial to all students and represents how real-world problems are solved.

Upon successful completion of this course students will be able to:

1. Apply knowledge of logic, algorithm design, and programming syntax to the solution of engineering problems;

2. Translate a written engineering problem statement into a mathematical model that is suitable for algorithm development;

3. Use a logical problem solving process for software development, which includes sequential structures, conditional structures, and repetition structures;

4. Use a logical software development process, which includes developing, systematically debugging, and executing programs written in C or Matlab;

5. Have a working knowledge of the syntactical structures for C with the specific ability to translate C constructs into equivalent Matlab structures;

6. Use a variety of data structures to manipulate large amounts of data;

7. Make the connection of logic, algorithm design, and programming syntax to working in a Matlab environment, as well as connections to other programming languages; and

8. Work effectively and ethically as a member of a technical team.

Course Topics

Below are the recommended topics for the semester and while syntax will require introduction, the emphasis will be on the implementation of such approaches to developing a solution to an engineering problem.

|Week |Topics |

|1 |Course Introduction. Principles of working effectively and ethically in a team. |

|2 |Algorithm design and analysis. Translating a written problem statement into a mathematical model that is suitable for |

| |algorithm development. Implementation of sequential instructions. |

|3 |Implementation of sequential instructions continued. Utilization of standard library mathematical functions. |

| |Programming with defined constants. |

|4 |Top-down design and modular programming (functions). |

|5 |Programmer-defined functions continued. Passing parameters by value and by address. Comparison of functions in C with|

| |those in Matlab. Pass by value, pass by address, and returning of multiple values from programmer-defined functions. |

|6 |Logical data. Selection constructs. Two-way selection, multi-way selection, principles of good selection design. |

|7 - 8 |Repetition constructs, pretest, post-test, and recursive iteration. |

|9 |Input and output using files. Working with large quantities of data. Using composite data. |

|10 - 11 |Arrays. Arrays and functions. Sorting and searching. |

|12 |Strings |

|13 |Pointers. Dynamic memory allocation. |

|14 - 15 |Advance topics: Structures, enumerations, and dynamic data structures. Connections to Fortran. |

✓ Regular connections to Matlab, including contrasting Matlab and C, will be made throughout the course of the semester.

✓ Best practices in programming to solve problems including decomposition of large problems through top-down design, stepwise refinement of operational solutions, and developing mathematical models will be central to acceptable solutions for all assignments.

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download