PRG255 - Advanced Programming Using "C"

Outline info
Last revision date 2018-04-10 14:09:37.769
Last review date 2018-04-10 14:09:52.284

Subject Title
Advanced Programming Using "C"

Subject Description
This course continues on from PRG 155 (structured programming and an introduction to the 'C' language). The course starts with a study of the Debugging Facility and its use in the 'C' environment. Advanced concepts such as Storage Classes, Bitwise Operators, Arrays, Derived Data Types, Pointers and File I/O are covered. Finally, an introduction to C++ is given.

Credit Status
One subject credit in the Computer Engineering Technology program and the Electronic Engineering Technology programs and Engineering Technician programs.

Learning Outcomes
Upon successful completion of this subject the student will be able to:

  1. Apply a systematic approach to problem-solving by using top-down modular program design and structured programming.
  2. Demonstrate skills in problem analysis, problem logic development, program design and implementation that can be applied in a wide variety of programming problems.
  3. Write C programs to solve typical engineering problems.
  4. Demonstrate understanding and the use of a debugging facility in the C/C++ environment.
  5. Demonstrate understanding of the syntax of advanced C features.
  6. Understand the nature, types and uses of various storage classes; auto, static, register, extern.
  7. Understand the nature, types and uses of derived data types; arrays, structures, unions, typedef, enumerations.
  8. Understand and use pointers and file I/O.
  9. Demonstrate a solid understanding of non-object oriented C++ techniques and how they differ from C techniques; declaring variables, prototyping, inline functions, constants, I/O, references, dynamic memory allocation, function overloading and default arguments.

Essential Employability Skills
Execute mathematical operations accurately.

Apply a systematic approach to solve problems.

Use a variety of thinking skills to anticipate and solve problems.

Locate, select, organize, and document information using appropriate technology and information systems.

Interact with others in groups or teams in ways that contribute to effective working relationships and the achievement of goals.

Manage the use of time and other resources to complete projects.

Cheating and Plagiarism
Each student should be aware of the College's policy regarding Cheating and Plagiarism. Seneca's Academic Policy will be strictly enforced.

To support academic honesty at Seneca College, all work submitted by students may be reviewed for authenticity and originality, utilizing software tools and third party services. Please visit the Academic Honesty site on for further information regarding cheating and plagiarism policies and procedures.

All students and employees have the right to study and work in an environment that is free from discrimination and/or harassment. Language or activities that defeat this objective violate the College Policy on Discrimination/Harassment and shall not be tolerated. Information and assistance are available from the Student Conduct Office at

Accommodation for Students with Disabilities
The College will provide reasonable accommodation to students with disabilities in order to promote academic success. If you require accommodation, contact the Counselling and Disabilities Services Office at ext. 22900 to initiate the process for documenting, assessing and implementing your individual accommodation needs.


Topic Outline
 1.  Storage Classes

  •     auto
  •     static
  •     register
  •     extern

2.  Bitwise Operators
  •     Bitwise AND, inclusive OR, exclusive OR, and complement operators
  •     Shift operators

3.  Arrays
  •     Single-dimensional arrays
  •     Multidimensional arrays
  •     Passing an array to a function
  •     String handling functions
  •     Sorting arrays

4.  Derived Data Types
  •     Structures
  •     Unions
  •     Typedef
  •     Enumerators

5.  Pointers
  •     Pointer variables
  •     Pointer operators
  •     Pointer expressions
  •     Pointers and arrays
  •     Arrays of pointers
  •     Passing pointers to functions
  •     Pointers to structures Dynamic memory allocation

6.  File I/O
  •     The concept of streams
  •     Text and binary files
  •     Sequential and random-access files
  •     Writing, reading and appending data into/from a file

7.  Moving from C to C++
  •     Differences between C and C++
  •     C++ I/O
  •     Inline functions
  •     References
  •     Function overloading
  •     Default arguments

Mode of Instruction
Lecture hours: 2
Lab hours: 2
Total hours: 4

Prescribed Texts
Title:  C Programming for Engineering & Computer Science
Authors: H.H. Tan & T.B. D’Orazio
Publisher: McGraw Hill
ISBN:  9780079136787

Promotion Policy

Grading Policy
A+ 90%  to  100%
A 80%  to  89%
B+ 75%  to  79%
B 70%  to  74%
C+ 65%  to  69%
C 60%  to  64%
D+ 55%  to  59%
D 50%  to  54%
F 0%    to  49% (Not a Pass)
EXC Excellent
SAT Satisfactory
UNSAT Unsatisfactory

For further information, see a copy of the Academic Policy, available online ( or at Seneca's Registrar's Offices.

Modes of Evaluation

  • Assignments are due at the beginning of the class on which they are due.
  • A late penalty of 10% per day is assessed for late assignments, including those not handed in at the beginning of class when due.
  • Material will not be accepted after one week following the due date and/or when the marked material is returned to students, whichever comes first.
  • Assignments are to be prepared by computer.

Absenteeism and Exams
  • Students should be aware that absenteeism almost guarantees an inability to achieve satisfactory grades.
  • Students who are absent for an examination due to an emergency (e.g., motor vehicle accident, hospitalization or death in the family) may provide official documentation within five days of the missed exam and be provided a deferred exam at a later date.  Official documentation includes a death notice or an original doctor’s certificate identifying the date, length of time expected absence and the specific reason for the absence.  Examinations missed without official documentation and approval result in a grade of zero.
  • There are no deferred options for missed tests.  The value of missed tests, at the discretion of the Faculty, will be added to other evaluation components

English Proficiency
  • All written work should demonstrate the following characteristics for clarity and conciseness:
    • writing is consistent with the rules of English grammar
    • spelling and punctuation are correct
    • sentences are structured correctly
    • main ideas are supported with specific, relevant examples and reasons
    • work flows logically through supporting statements/paragraphs
    • work is arranged in correct format (e.g., as a report, essay)
    • up to 10% of the final grade may be deducted on all work if the above English competencies are not met.

Format for Assignments
  • Students must use the standard, APA style for quoting sources.   Help is available at:

Laboratory Attendance

The laboratory component is essential and therefore it is strongly recommended  that you attend all labs.  Any missed labs must be supported with a legal document with three days of the lab.  Any student who fails to attend 2 scheduled laboratory classes for a 7 week subject and more than 3 laboratory classes for a 14 week subject will not pass the subject.   

Laboratory Safety
Students are required to review and understand the safety procedures and guidelines outlined on the first class and sign the sheet to this effect before beginning work in the laboratory.  Students must also wear a lab coat and safety glasses when conducting experiments.
A student who arrives without the proper safety equipment will not be permitted to participant in the lab but will be asked to leave the class.  The student will receive no grade for the lab missed.

Lab and Lecture Term Tests - 40%
Lab and Lecture Quizzes - 10%
Lab Assignments - 10%
Lab Project - 10%
Final Examination - 30%

Approved by: Denis Gravelle