production
Skip to Content

EE3093: C/C++ PROGRAMMING (2021-2022)

Last modified: 31 May 2022 13:05


Course Overview

C programming is presented with an introduction to methods for the design of well-structured and maintainable computer programs.  The course begins by introducing the syntax and semantics of the C programming language.  This includes the use of structures and of pointers with a view to a later introduction to the C++ language.  Techniques for producing easily maintained and modifiable code are emphasised.  An introduction to elementary data structures (lists, stacks and queues) is included.  Practical activity includes the use of basic software development tools (debugging techniques, version control).  The course concludes with an introduction to the C++ programming language.

Course Details

Study Type Undergraduate Level 3
Session First Sub Session Credit Points 15 credits (7.5 ECTS credits)
Campus Aberdeen Sustained Study No
Co-ordinators
  • Dr K Nakkeeran

Qualification Prerequisites

  • Either Programme Level 3 or Programme Level 4

What courses & programmes must have been taken before this course?

  • EG2012 Engineering Mathematics 2 (Passed)
  • EG2501 Design & Computing in Engineering Practice (Passed)
  • One of BSc Engineering (Electrical & Electronic) or Bachelor of Engineering in Eng (Electrical and Electronic) or Master of Engineering in Electrical & Electronic Engineering or Master Of Engineering In Electronic & Software Engineering or Bachelor Of Engineering In Engineering Electronic & Software or Master Of Engineering In Elec & Electronic Eng W Renewabl En or Bachelor of Engineering in Eng (Mechanical and Electrical) or Master of Engineering in Mechanical & Electrical Eng
  • Either Programme Level 3 or Programme Level 4

What other courses must be taken with this course?

None.

What courses cannot be taken with this course?

Are there a limited number of places available?

No

Course Description

  
  1. Background history; A simple C program and explanation; Sequential execution of statements; Compiling (on UNIX and pc); Comments; Simple variables; Displaying variable values; input of variable values; formatting output.
  2. Expressions and assignments; conditional statements; true and false in C; Boolean operators; arithmetic operators.
  3. Loops using for and while; loop initialisation; loop termination; simple arrays, Pointers and addresses, local and heap storage.
  4. Functions, formal and actual arguments; scope rules; passing data by value; using pointers as arguments; recursive functions; Example: Factorial of a number.
  5. Libraries, writing maintainable code, code style, example code.
  6. Data structures, use of struct, structs that contain pointers, linked lists, stacks, FIFOs and trees.
  7. Techniques for large programs, organisation of #include files, development tools, use of version control, software test.
  8. Additional features in C++, introduction to classes, public and private members and methods. Constructors and destructors. Instantiation of classes. Static class members.
  9. Inheritance, protected members, function overloading and virtual functions. Example: use of GUI library.           

Contact Teaching Time

Information on contact teaching time is available from the course guide.

Teaching Breakdown

More Information about Week Numbers


Details, including assessments, may be subject to change until 31 August 2023 for 1st half-session courses and 22 December 2023 for 2nd half-session courses.

Summative Assessments

First Attempt

1x C programming computer practical report (20%)
1x C++ programming computer practical report (20%)
C/C++ Programming Computer Exercises (60%) 

Alternative Resit Arrangements

Resit of only the failed assessment component(s)

Formative Assessment

There are no assessments for this course.

Course Learning Outcomes

Knowledge LevelThinking SkillOutcome
ProceduralEvaluateHave gained practical skills so that they are able to use software development tools
ReflectionCreateHave gained intellectual skills so that they are able produce high quality software
FactualUnderstandHave knowledge and understanding of the role of the C programming language in software development
ProceduralApplyHave knowledge and understanding of function overloading and virtual functions
ReflectionRememberHave gained or improved transferable skills so that they are able to keep a laboratory logbook effectively
FactualUnderstandHave knowledge and understanding of the main procedural constructs of the C programming language
ConceptualRememberHave knowledge and understanding of the use of arrays and pointers
ProceduralApplyHave knowledge and understanding of the use of inheritance
FactualUnderstandHave knowledge and understanding of software development tools including editors, compilers, linkers, debuggers and version control
ProceduralApplyHave knowledge and understanding of the declaration and use of structures and pointers to structures
ConceptualRememberHave knowledge and understanding of data types supported by the C programming language
ProceduralCreateHave gained intellectual skills so that they are able to write a well-structured maintainable C programme
ConceptualRememberHave knowledge and understanding of basic class constructs in C++
FactualUnderstandHave knowledge and understanding of basic data structures including lists, stacks and queues
ReflectionApplyHave gained or improved transferable skills so that they are able to carry out computer programming using languages other than C, given the technical details of the other languages
ProceduralEvaluateHave gained intellectual skills so that they are able select data types and data structures appropriate to a given task
ProceduralApplyHave gained or improved transferable skills so that they are able to demonstrate improved problem-solving skills
FactualRememberHave gained intellectual skills so that they are able use supplied C++ libraries

Compatibility Mode

We have detected that you are have compatibility mode enabled or are using an old version of Internet Explorer. You either need to switch off compatibility mode for this site or upgrade your browser.