Broward Community College
Course Outline
═══════════════════════════════════════════════════════════════════════
STATUS: A
COMMON COURSE NUMBER: COP 2222
COURSE TITLE: Advanced "C" Programming
CREDIT HOURS: 3
CONTACT HOURS BREAKDOWN:
Lecture/Discussion 48
Lab 16
Other
Contact Hours/Week 3
CATALOG COURSE DESCRIPTION:
Prerequisite: COP 1220 or Instructor's Approval
Corequisite: None
Given a basic knowledge of the "C" programming language, students
are taught how to write programs of an advanced nature using
additional "C" constructs and data structures.
General Education Requirements - Associate of Arts Degree, meets Area(s):
General Education Requirements - Associate in Science Degree, meets Area(s):
UNIT TITLES:
1. Review of "C" Programming
2. Preprocessor
3. Common Mistakes of Debugging
4. C++
5. Functions
6. Structure and Unions
7. Pointers
8. Linked Lists
9. File Operations
10. Bit Level Operations
11. More Efficient "C"
LAST REVIEW Academic Year 1999-2000 NEXT REVIEW Academic Year 2004-2005
Interim Revision Dates: 10/90, 10/92
Page 1 of 13
I. Course Overview:
Upon successful completion of this course, the students should be
able to develop "C" programs of an advanced nature using additional
"C" constructs and data structures.
II. Units:
Unit 1. Review of "C" Programming
General Outcome:
1.0 The students should be able to describe the concepts
covered in "C" programming and procedures for
debugging.
Specific Learning Outcomes:
Upon successful completion of this unit, the students
should be able to:
1.1 Describe the general format of a "C" program.
1.2 Describe and use the various flow of control proce-
dures.
1.3 Review the format of a function and purpose of
arrays.
1.4 Review the hierarchy of operations with "C"
operators.
1.5 Distinguish among Snytax errors, Logic errors, and
Latent errors.
1.6 Identify the following common mistakes in "C"
Syntax:
1.6.1 Missing or misplaced semicolon
1.6.2 Missing braces
1.6.3 Assignment version relational tests,
confusing=with==
1.6.4 Lack of program comments
1.6.5 Arguments to functions
1.6.6 Declare return types
1.6.7 Passing wrong argument type to function
1.6.8 Forgetting to declare arguments in a
functional call
1.6.9 Forgetting to declare functions in main ()
1.6.10 Precedences of the various operators
1.6.11 Using wrong bounds in Arrays
1.6.12 Reserve extra element in Arrays for
terminating null character
1.6.13 Numeric constants
1.6.14 Character constants versus character string
Common Course No: COP 2222 Page 2 of 13
Unit 2. Preprocessor
General Outcome:
2.0 The students should be able to define and create Macro
functions and apply the conditional compilation
operators.
Specific Learning Outcomes:
Upon successful completion of this unit, the students
should be able to:
2.1 Create Macro definitions.
2.2 Create Macro functions.
2.3 Use the following conditional compilation operators:
2.3.1 #IF
2.3.2 #IFDEF
2.3.3 #UNDEF
2.3.4 #ENDIF
2.3.5 #IFNDEF
2.3.6 #ELSE
Common Course No: COP 2222 Page 3 of 13
Unit 3. C++
General Outcome:
3.0 The students should be able to understand the logic
behind C++, its concepts and its purpose with the "C"
programming language.
Specific Learning Outcomes:
Upon successful completion of this unit, the students
should be able to:
3.1 Identify the C++ concepts of
3.1.1 Operator and function overloading
3.1.2 Information hiding
3.1.3 Inheritance
3.1.4 Virtual Functions also known as Polymorphisms
3.2 Describe the procedures and concepts of object
oriented programming.
Common Course No: COP 2222 Page 4 of 13
Unit 4. Arrays
General Outcome:
4.0 The students should be able to use multidimensional
Arrays and explain their uses, advantages, and
disadvantages.
Specific Learning Outcomes:
Upon successful completion of this unit, the students
should be able to:
4.1 Develop, access, and modify string Arrays.
4.2 Develop, access, and modify two-dimensional Arrays.
4.3 Develop, access, and modify three-dimensional Arrays.
4.4 Describe the uses of Arrays.
4.5 Determine the advantages and disadvantages of a static
structure Array.
Common Course No: COP 2222 Page 5 of 13
Unit 5. Functions
General Outcome:
5.0 The students should be able to develop complex
functions to manipulate strings, numbers, and Arrays;
describe the scope of variables and how they are
affected in functions.
Specific Learning Outcomes:
Upon successful completion of this unit, the students
should be able to:
5.1 Define and declare a function.
5.2 Describe the format of a function.
5.3 Describe, develop, and use functions calling functions
calling functions. . . .
5.4 Describe and code a recursive function.
5.5 Describe the scope of variables and how they are
affected in functions.
Common Course No: COP 2222 Page 6 of 13
Unit 6. Structure and Unions
General Outcome:
6.0 The students should be able to develop a structure to
organize various data types so that they can be
referenced as a single unit; and describe the syntax
of unions.
Specific Learning Outcomes:
Upon successful completion of this unit, the students
should be able to:
6.1 Declare structures.
6.2 Initialize structures.
6.3 Develop and apply structures.
6.4 Develop and apply structures with functions.
6.5 Identify the uses of nested structures.
6.6 Develop and apply Arrays of structures.
6.7 Describe unions and structures.
Common Course No: COP 2222 Page 7 of 13
Unit 7. Pointers
General Outcome:
7.0 The students should be able to apply the concept of a
pointer and create pointers to each type of variable,
character string, and function.
Specific Learning Outcomes:
Upon successful completion of this unit, the students
should be able to:
7.1 Declare pointers.
7.2 Describe the significance of the Lvalue and Rvalue
feature.
7.3 Develop and apply pointers and structures.
7.4 Develop and apply pointers and functions.
7.5 Develop and apply pointers and Arrays.
Common Course No: COP 2222 Page 8 of 13
Unit 8. Linked Lists
General Outcome:
8.0 The students should be able to apply the concepts of
linked lists and allocate/deallocate space from the
heap.
Specific Learning Outcomes:
Upon successful completion of this unit, the students
should be able to:
8.1 Create a singly linked list.
8.2 Create a doubly linked list.
8.3 Add a member to a list.
8.4 Delete a member from a list.
8.5 Make changes to a member in a list.
8.6 Apply the routines to allocate and free space on a
heap.
Common Course No: COP 2222 Page 9 of 13
Unit 9. File Operations
General Outcome:
9.0 The students should be able to apply complex file
manipulation routines and describe the concepts of
random-access files.
Specific Learning Outcomes:
Upon successful completion of this unit, the students
should be able to:
9.1 Describe and apply the following low-level
manipulation routines:
9.1.1 OPEN
9.1.2 READ
9.1.3 WRITE
9.1.4 CLOSE
9.1.5 CREAT
9.2 Develop, access, and modify random-access files.
9.3 Define file structures.
Common Course No: COP 2222 Page 10 of 13
Unit 10. Bit Level Operations
General Outcome:
10.0 The students should be able to access individual bits
through a pointer to type character.
Specific Learning Outcomes:
Upon successful completion of this unit, the students
should be able to:
10.1 Apply bit operators.
10.2 Determine the hierarchy of bit operators.
10.3 Perform the following bit operations:
10.3.1 Evaluate
10.3.2 Turn-on
10.3.3 Turn-off
10.4 Perform bit mapping.
Common Course No: COP 2222 Page 11 of 13
Unit 11. More Efficient "C"
General Outcome:
11.0 The students should be able to apply advanced coding
techniques and library functions that generate a more
efficient "C" code.
Specific Learning Outcomes:
Upon successful completion of this unit, the students
should be able to:
11.1 Develop more efficient programs through the
identification and application of the following:
11.1.1 Register storage class
11.1.2 Macros and functions
11.1.3 Library awareness
11.1.4 Pointer arithmetic
11.1.5 Pointers in Registers
11.1.6 Assembler interface
Common Course No: COP 2222 Page 12 of 13
Special Student Projects:
The students will be assigned five to twelve (5-12) problems as
laboratory programming exercises. These exercises will be, for
the most part, prepared by the students during their assigned
lab period, plus other outside-of-class time.
Each exercise may include the following (at the instructor's
discretion):
- an algorithm design
- a program pseudocode
- a flowchart
- a structure chart
- program coding
- a screen and print report design
- a program listing
- a program output
Common Course No: COP 2222 Page 13 of 13