ECE-1021 Lesson 0

Course Introduction

(Last Mod: 27 November 2010 21:38:41 )

ECE-1021 Home



Co-requisite Material


Course Overview

The purpose of this course is not just to teach how to write basic programs using C. The main purpose of the course is to teach something about engineering modeling and methods. Put simply, this means developing problems solving skills. In the first part of the course, we will focus on problems having to do directly with developing a set of functional building blocks that we can use in later C programs. In other words, we will focus on problems that focus on computer programming in general and C programming in particular. This will allow us to learn the nuts and bolts of how things work which will be very important in the later part of the course.

Unlike other C courses which usually start out with high level functions such as printf() and put off dealing with how things are actually done until much later, we will be start at the other end. We will have at our disposal two pretty low level functions - one that puts a character onto a stream and one that retrieves a character from a stream. At first, our output stream will be the monitor screen and our input stream will be the keyboard. We will use these two functions to build up more powerful functions that let us display strings of text and/or numerical values on the screen or get strings of text and/or numerical values from the keyboard. Along the way we will explore, in some detail, how various types of data - such as characters, strings of text, integers, and floating point values - are stored in memory and manipulated to achieve certain desired goals. By working at this level, the process of performing these tasks will not be some nebulous black box - you will know how all of these operations are performed.

In the latter part of the course, we will focus on somewhat larger problems where the focus of the problem is not on the program, but rather on achieving some goal where the program is simply the tool used to achieve it. The same problem solving techniques we used in the first part of the class, however, will still apply.


Course Policies

A comprehensive set of Course Policies is available on the course website. Topics such as the grading breakdown and how homework is to be submitted are covered in some detail there. Also covered are the policies regarding late homework, extra credit, and several other topics.


Style Standards

Most professional programmers are required to adhere to a set of Style Standards established by their company or organization. These guidelines, while different from company to company, have much in common because they have evolved for the same purpose - to facilitate communication among everyone that works with that program, both now and in the future, and to prevent as many of the common programming mistakes as possible. This course is no different. A set of style standards has developed - and changed over time - to help you write well organized and documented code. Your submissions are required to adhere to these standards and points will be deducted for failing to do so.


The Compiler

In this course we will use Version 4.5 of the the Borland TurboC/C++ compiler. An introduction to this compiler is available on the course website.

Although this is an older compiler, and is not without its share of annoying "features", it does have one feature that is extremely attractive for this course - it allows you to compile single-file programs. With most compilers, such as Visual C, you must have some sort of a "make" or "project" file that tells the compiler which source code files are to be used to create the final program - even if there is only one. While the overhead for doing this is not terribly difficult, it is quite convenient to be able to simply open a source code file and compile it. Even more attractive is that your source code file can be e-mailed to the Grader who can then open it and compile it without having to set up the directories and projects associated with other compilers.

This compiler is available for your use in the Engineering Department's Computer Lab (ENGR 233). If you have access to a compiler elsewhere, you are certainly free to use it, but keep in mind that the official compiler for this course is the one specified here. The code you submit for grading must compile and run using this compiler, so be sure that your code will actually compile and run on the computers in the computer lab using this compiler before you submit it. If you are willing to take the chance and choose to submit it without verifying this, that's fine. But arguments that it compiled and ran on some other compiler will not be entertained.


Algorithms

Throughout the course, many algorithms will be developed and implemented. These will usually be represented either in pseudocode or as a flowchart. Furthermore, your source code submission is expected to contain a high level pseudocode description of the algorithm you used to solve the problem given in the assignment.


Structured Programming

Your programs are expected to adhere to the Structured Programming paradigm. Fortunately, languages such as C are designed from the ground up to encourage and largely impose such an approach. But understanding the concept separate from the language will not only help improve your general problem solving ability, but will help you understand the language and its constructs much more fully.