Overview
Curriculum and Modern C++
Workability
COMPUTER PROGRAMMING AND
LANGUAGES
CPE 311 - Lecture 1 (Introduction)
Dr Aliyu Ahmed1 and Engr. Danlami Maliki2
1,2 Department of Computer Engineering
Federal University of Technology, Minna
2022/2023
Aliyu Ahmed CPE 311: 2022/2023
Overview
Curriculum and Modern C++
Workability
Outline
Overview
Overview/Objectives
Learning Outcome
Delivery
Curriculum and Modern C++
Curriculum Overview
Modern C++
Workability
Development Environment
Aliyu Ahmed CPE 311: 2022/2023
Overview Overview/Objectives
Curriculum and Modern C++ Outcome
Workability Delivery
Overview
Provide a strong foundation in C++ programming and
object-oriented design principles.
Covers essential topics such as encapsulation, inheritance, etc.
Write efficient and structured C++ programs using
object-oriented design paradigms.
Objectives
Understand the fundamental principles of object-oriented
programming.
Gain proficiency in C++ syntax and semantics.
Apply object-oriented design concepts.
Develop event-driven programs using C++.
Debug and troubleshoot C++ programs effectively.
Create flowcharts to visualize program logic.
Aliyu Ahmed CPE 311: 2022/2023
Overview Overview/Objectives
Curriculum and Modern C++ Outcome
Workability Delivery
Overview
Provide a strong foundation in C++ programming and
object-oriented design principles.
Covers essential topics such as encapsulation, inheritance, etc.
Write efficient and structured C++ programs using
object-oriented design paradigms.
Objectives
Understand the fundamental principles of object-oriented
programming.
Gain proficiency in C++ syntax and semantics.
Apply object-oriented design concepts.
Develop event-driven programs using C++.
Debug and troubleshoot C++ programs effectively.
Create flowcharts to visualize program logic.
Aliyu Ahmed CPE 311: 2022/2023
Overview Overview/Objectives
Curriculum and Modern C++ Outcome
Workability Delivery
Overview
Provide a strong foundation in C++ programming and
object-oriented design principles.
Covers essential topics such as encapsulation, inheritance, etc.
Write efficient and structured C++ programs using
object-oriented design paradigms.
Objectives
Understand the fundamental principles of object-oriented
programming.
Gain proficiency in C++ syntax and semantics.
Apply object-oriented design concepts.
Develop event-driven programs using C++.
Debug and troubleshoot C++ programs effectively.
Create flowcharts to visualize program logic.
Aliyu Ahmed CPE 311: 2022/2023
Overview Overview/Objectives
Curriculum and Modern C++ Outcome
Workability Delivery
Learning Outcome
Understand and apply object-oriented design principles in
C++ programming.
Demonstrate proficiency in C++ syntax and semantics.
Implement event-driven programs using C++.
Design and develop algorithms for problem-solving using
structured decomposition.
Debug and troubleshoot C++ programs effectively.
Aliyu Ahmed CPE 311: 2022/2023
Overview Overview/Objectives
Curriculum and Modern C++ Outcome
Workability Delivery
Learning Outcome
Understand and apply object-oriented design principles in
C++ programming.
Demonstrate proficiency in C++ syntax and semantics.
Implement event-driven programs using C++.
Design and develop algorithms for problem-solving using
structured decomposition.
Debug and troubleshoot C++ programs effectively.
Aliyu Ahmed CPE 311: 2022/2023
Overview Overview/Objectives
Curriculum and Modern C++ Outcome
Workability Delivery
Learning Outcome
Understand and apply object-oriented design principles in
C++ programming.
Demonstrate proficiency in C++ syntax and semantics.
Implement event-driven programs using C++.
Design and develop algorithms for problem-solving using
structured decomposition.
Debug and troubleshoot C++ programs effectively.
Aliyu Ahmed CPE 311: 2022/2023
Overview Overview/Objectives
Curriculum and Modern C++ Outcome
Workability Delivery
Learning Outcome
Understand and apply object-oriented design principles in
C++ programming.
Demonstrate proficiency in C++ syntax and semantics.
Implement event-driven programs using C++.
Design and develop algorithms for problem-solving using
structured decomposition.
Debug and troubleshoot C++ programs effectively.
Aliyu Ahmed CPE 311: 2022/2023
Overview Overview/Objectives
Curriculum and Modern C++ Outcome
Workability Delivery
Learning Outcome
Understand and apply object-oriented design principles in
C++ programming.
Demonstrate proficiency in C++ syntax and semantics.
Implement event-driven programs using C++.
Design and develop algorithms for problem-solving using
structured decomposition.
Debug and troubleshoot C++ programs effectively.
Aliyu Ahmed CPE 311: 2022/2023
Overview Overview/Objectives
Curriculum and Modern C++ Outcome
Workability Delivery
Course Delivery
Lectures
Hands-on Programming
Group Discussions and Peer Learning
Practical Assignments
Code Review and Debugging Sessions
Practical Projects
Assessment and Evaluation
Evaluation Method
•Class Attendance (5 point)
In-class participation/Quiz (5 points)
Assessment - Project (30 points )
Final examination (60 points – no make-up)
Aliyu Ahmed CPE 311: 2022/2023
Overview
Curriculum Overview
Curriculum and Modern C++
Modern C++
Workability
Curriculum Overview
Getting Started Pointers and References
Structure of a C++ program OOP - Classes and Objects
Variables and Constants Operators Overloading
Arrays and Vectors Inheritance
Strings in C++ Polymorphism
Expressions, Statement and Smart Pointers
Operators The Standard Template
Determining Control Flow Library
Functions I/O Streams
File Processing, Advanced Exception Handling
Topic on Functions and Algorithms and Flow Charts
Applications of C++
Aliyu Ahmed CPE 311: 2022/2023
Overview
Curriculum Overview
Curriculum and Modern C++
Modern C++
Workability
C++ Standard and the Modern C++
Early 1970 2003
C Programming C++003 Standard
Language 2011
Dennis Ritchie
C++11 Standard
1979
2014
Bjarne Stroutstrup
C++14 Standard
C with Classes
2017
1983
C++17 Standard
Name changed to C++
2020
1989
C++20
First Commercial release
2023
1998
C++23
C++98 Standard
Aliyu Ahmed CPE 311: 2022/2023
Overview
Curriculum and Modern C++ IDE
Workability
How does it all work?
Computer must be told EXACTLY what to do
Program - like a recipe
Programming language
source code
high-level
for humans
Editor - used to enter program text
.cpp and .h files
Binary or other low-level representation
object code
for computers
Compiler - translate from high-level to low-level
Linker - links together code with other libraries
creates executable program
Testing and Debugging - finding and fixing program errors
Aliyu Ahmed CPE 311: 2022/2023
Overview
Curriculum and Modern C++ IDE
Workability
The C++ Build process
Aliyu Ahmed CPE 311: 2022/2023
Overview
Curriculum and Modern C++ IDE
Workability
Integrated Development Environment
Several Options available CodeLite - free, cross platform,
small hardware requirement
Editor Code::Blocks - Same as above,
MAC version is buggy
Compiler
NetBeans - Oracle, Java dev.,
Linker C++ plugin, requires jre
Debugger Eclipse - Same as Netbeans
CLion - by JetBrains, great but
Keep everything in Sync not free
Installation: I Use Dev-C++ - Small, fast, but
CodeLite Windows only
KDevelop - cross platform, but
MinGW: Must be no MAC binary
installed firstly Visual Studio - Microsft DE,
See LAB 1 notes for: Windows only for C++
Installation and Xcode - Apple DE, MAC only
setting up. Web-based, Command line,
mobile
Aliyu Ahmed CPE 311: 2022/2023
Overview
Curriculum and Modern C++ IDE
Workability
Integrated Development Environment
Several Options available CodeLite - free, cross platform,
small hardware requirement
Editor Code::Blocks - Same as above,
MAC version is buggy
Compiler
NetBeans - Oracle, Java dev.,
Linker C++ plugin, requires jre
Debugger Eclipse - Same as Netbeans
CLion - by JetBrains, great but
Keep everything in Sync not free
Installation: I Use Dev-C++ - Small, fast, but
CodeLite Windows only
KDevelop - cross platform, but
MinGW: Must be no MAC binary
installed firstly Visual Studio - Microsft DE,
See LAB 1 notes for: Windows only for C++
Installation and Xcode - Apple DE, MAC only
setting up. Web-based, Command line,
mobile
Aliyu Ahmed CPE 311: 2022/2023
Appendix
For Further Reading I
Books:
Deitel, P and Deitel, H (2010): C++ How to Program 10th Edition.
Prentice Hall New York.
Stanley B. Lippman, Josée Lajoie, and Barbara E. Moo : C++ Primer
5th Edition.
Aliyu Ahmed CPE 311: 2022/2023
Appendix
For Further Reading II
Recommended Websites:
www.cplusplus.com
www.geeksforgeeks.org/c-plus-plus/
www.stackoverflow.com
Online C++ compilers and IDEs:
repl.it
ideone.com
cpp.sh
YouTube tutorials and video courses:
TheCherno
ProgrammingKnowledge C++
Online coding platforms:
LeetCode
HackerRank
CodeSignal
Aliyu Ahmed CPE 311: 2022/2023