ITC 145 Applications Programming in C 4 cr.

This course presents the principal features of the C language following the ANSI standard, including the C preprocessor, data types, operators, calculations, arrays, strings, structures, pointers, I/O of text and binary files, and the use of run-time libraries. Effective program and report design are emphasized. Programming assignments are drawn from a variety of application areas. Three lecture hours per week, plus extensive laboratory work outside of class. Credit for this course may not be applied to the Major in Computer and Information Studies. Not open to students who have received credit for CSC 273 or CSC 285. No more than one of the courses numbered ITC 140 through 149 may be counted for degree credit.
Prerequisite: High school algebra I & II.

Goals:   The overall purpose of the course is to foster an understanding of the nature and operation of software through the use of a specific programming language.   Specifically:
  • to acquaint the student with the nature of programming in general and of the use of a specific procedural language in particular;
  • to present the main principles enabling the student to design, write, test, and debug programs;
  • to present the main features of the C programming language and its environment.

Objectives:   Upon successful completion of the course, a student will have
  • applied correct program techniques to design and write a C program
  • developed appropriate debugging techniques and skills
  • acquired an understanding of the programming process from problem formulation through implementation (coding) and testing;
  • developed familiarity with the main features of the C language and its run-time environment;
  • developed the ability to read, interpret, and evaluate existing C code.
Topics:
  • general overview of: components of a computer, problem solving in a structured manner, top-down modular design, control structures, pseudocode and/or flowcharting, hierarchy charts
  • fundamentals of ANSI C: intrinsic and user-defined data types, control structures, functions and function prototypes, parameters, declarations (automatic vs. static variables), calculations, precedence rules for operators, arrays, strings, structures, unions, pointers and dynamic storage allocation, files, unformatted and formatted I/O, the C preprocessor, macros, and run-time libraries
  • standard program structures for file processing, report generation, interactive processing
  • standard uses of arrays and structures (records): filling, printing, summing, searching, sorting, finding maximum and minimum values
Additional topics (as time permits):
  • recursion
  • bit fields and bit manipulation
  • use of header files
  • multi-file programs and separate compilation
  • non-sequential file processing

The course emphasis is on applications programming, from the precise formulation of a problem, through program design, to final implementation and testing. Examples and laboratory assignments are interdisciplinary in nature. Approximately eight programs will be assigned; many assignments involve modification and extension of previous programs. The main focus is on the design and implementation of algorithms, using specific features of the C language and the C run-time environment. Where appropriate, special capabilities of C, and comparisons with other programming languages, will be noted. Proper structural style (using top-down, modular design) will be stressed in both logic development and code implementation. Attention is also paid to reading and interpreting existing code (both good and bad).

Bibliography:
  • Connelly, John.   C Through Objects.   (Scott/Jones, Inc., 1996)
  • Foster, L. S.   C by Discovery.   Second Edition.   (Scott/Jones, Inc., 1994)
  • Hanly, Jeri R.; Koffman, Elliot B.   Problem Solving and Program Design in C.   Fourth Edition.   (Addison-Wesley, 2004)
  • Harbison, Samuel P.; Steele, Guy L., Jr.   C. A Reference Manual.   Fourth Edition.   (Prentice Hall, 1995)
  • Johnsonbaugh, Richard; Kalin, Martin.   Applications Programming in ANSI C.   Third Edition.   (Prentice Hall, 1996)
  • Kelly, Al; Pohl, Ira.   C by Dissection: The Essentials of C Programming.   Third Edition.   (Benjamin/Cummings, 1996)
  • King, K. N.   C Programming. A Modern Approach   (W. W. Norton & Co., 1996)
  • Miller, Lawrence H.; Quilici, Alexander E.   The Joy of C: Programming in C.   Second Edition.   (John Wiley, 1993)


Salem State Home Computer Science Home Faculty Computer Studies Major Flow Sheet
Computer Studies Minor Courses Course Sequence Diagram Computer Laboratories