ENGE 300 - C Programming with Applications

Course Description

Introduction to the C programming language as a means to perform low-level access and control of hardware with a high-level language. Custom software applications, portability issues, application of pointers, and introduction to data structures. Applications to engineering problems, including data acquisition and control systems.

Instructor

Dr. David M. Hansen
Current Weekly Schedule

Texts

Required
Recommended
None

Objectives

  • Understand how to choose and use standard C dataypes
  • Explain operator precedence in C
  • Organize elements of programs into effective functional subroutines
  • Understand how to use pointers and arrays
  • Implement programmer-defined data structures for effective data representation and manipulation
  • Design a significant computer program in the C language
  • Understand how to develop a program for an embedded target

Course Organization

In addition to regular lectures and written assignments, this course will include regular programming exercises.

Programming assignments will be carried out in the C programming language. Instruction in the use of this language will be provided. Attention will be given to both the correct function of programs as well as their design and implementation.

The course will include regular homework and programming assignments (please see my comments on collaboration and programming). Assignments are due before 11:59pm on the due date; there will be NO CREDIT given for late assignments (without an excused absence) - turn in as much as you can.

Reading assignments should be completed before the lecture covering the material. Not all reading material will be covered in the lectures, but you will be responsible for the material on homework and exams.

Most class sessions will begin with a "mini-test" over the assigned reading. Taken together, these mini-test scores will comprise a significant portion of your grade so it is vital that you complete the assigned reading before class.

The Vision Statement of the Computer Science and Information Systems majors states that our students are distinctive by: "Bringing a Christ-centered worldview to our increasingly technological world." As one step towards the fulfillment of this objective, each semester, we will identify an influential Christian writing to be read and reflected upon by students in our classes throughout the term. This will be treated as an official component of every course and will be uniquely integrated and assessed at our discretion, generally as a component of the quiz grade. See the semester's reading schedule. In addition, regular meetings will be scheduled throughout the semester that can be attended for Chapel credit.

It is my hope that students will not view this as one more task to complete, but as a catalyst for continued discussion ultimately leading to a deeper walk with Christ.

The chief end of man is to glorify God, and enjoy Him forever.
(Westminster Confession)

If you have specific physical, psychiatric, or learning disabilities and require accommodations, please contact the Disability Services Office as early as possible so that your learning needs may be appropriately met. You will need to provide current documentation of your disability to the Disability Services Office. For more information, go to ds.georgefox.edu or contact Rick Muthiah, Dean of the Center for Teaching and Learning (ext. 2314)

Grading

Grading Scale

The final grade will be based on:

Tentative Schedule

Lecture Date Topic Read For Next Lecture
1 9/1 Introduction 1 (skim); 2.1, 2.2.2, 2.2.4; Notes
2 9/3 Getting Started 3.1 - 3.14
3 9/8 Scalar Types 3.15
4 9/10 Simple I/O 4
5 9/15 Operators 5.1 - 5.4
6 9/17 Conditional Flow of Control 5.5 - 5.8
7 9/22 Repetition 6.1 - 6.6
8 9/24 Functions 6.8 - 6.11
9 9/29 Recursion Online Debugging Tutorial
10 10/1 Debugging 7.1-7.4; 7.10 - 7.11
11 10/6 Preprocessor 8
12 10/8 Program Structure 9
13 10/13 Simple Formatted I/O 10.1 - 10.4
14 10/15 Arrays 10.5 - 10.8
15 10/20 Applications of Arrays 11.1 - 11.6
16 10/22 Introduction to Pointers 11.7 - 11.11
17 10/27 Dynamic Memory 11.12 - 11.16
18 10/29 Advanced Pointers 12.1 - 12.7
19 11/3 Strings 12.8 - 12.11
20 11/5 String Manipulation 13.1.1 - 13.1.4
21 11/10 Structure Definition 13.1.5 - 13.1.11
22 11/12 Using Structures 13.1.12 - 13.5
23 11/17 Advanced Structures Project Description
24 11/19 Project 14.1 - 14.4
25 11/24 Sequential Files Psalm 111
26 11/26 Thanksgiving 14.5 - 14.10
27 12/1 Advanced File I/O 15.1 - 15.3
28 12/3 Lists 15.4 - 15.5
29 12/8 Stacks, Queues, Trees
30 12/10 Review and Wrap-up
This page was last updated .
For questions or comments about this page, please email the webmaster.