COURSE DESCRIPTION AND APPLICATION INFORMATION

Course Name Code Semester T+A+L (hour/week) Type (C / O) Local Credit ECTS
Computer Programming II CMPE 241 Fall-Spring 02+00+02 Elective 3 6
Academic Unit: Computer Engineering Department
Mode of Delivery: Face to face
Prerequisites: CMPE 140
Language of Instruction: English
Level of Course Unit: Undergraduate
Course Coordinator: Fabio STROPPA
Course Lecturer(s): Fabio STROPPA
Course Objectives: This course is fundamental for programmers and software engineers. It will introduce students to basic computer programming and coding concepts and develop problem-solving skills. Students will learn the elemental topics in computer science, such as the architecture of a computer, numerical bases, and memory management. Students will learn one of the most important programming languages: C++. Students will learn how to use pointers and how to dynamically allocate memory, how to work with files, and will be briefly introduced to object-oriented programming.
Course Contents: Introduction to computer programming, structure of a program, compilers, numerical bases, boolean operators, basics of C++, statements and flow control, computer architecture, functions, name visibility, arrays, strings, pointers, dynamic memory management, I/O with files, preprocessor, header files, overloads, templates, exception handling, data structures and object-oriented programming (OOP).
Learning Outcomes of the Course Unit (LO):
  • 1- Develop problem-solving skills
  • 2- Know how data is represented in memory and how programs run in memory
  • 3- Know the basic of coding and be fully ready for advanced topics
  • 4- Use pointers to allocate memory dynamically and read/write to files
  • 5- Learn Object Oriented Programming
  • 6- Develop software and projects in C++
Planned Learning Activities and Teaching Methods: Classroom discussion and computer laboratory work.


WEEKLY SUBJECTS AND RELATED PREPARATIONS

WeekSubjectsRelated Preperation
1 Introduction, Hello World, Storing Data in Memory, Basics C++ Course material, Textbook, Exercises in the Lab, Assignments
2 Functions, Functions in Memory, Templates Course material, Textbook, Exercises in the Lab, Assignments
3 Name Visibility, Arrays, Matrix, Exceptions, Headers Course material, Textbook, Exercises in the Lab, Assignments
4 Characters, Strings, Preprocessor Course material, Textbook, Exercises in the Lab, Assignments
5 Pointers Course material, Textbook, Exercises in the Lab, Assignments
6 Dynamic Memory Allocation Course material, Textbook, Exercises in the Lab, Assignments
7 IO with Files Course material, Textbook, Exercises in the Lab, Assignments
8 Basics of Data Structures Course material, Textbook, Exercises in the Lab, Assignments
9 Object Oriented Programming Course material, Textbook, Exercises in the Lab, Assignments
10 Object Oriented Programming Course material, Textbook, Exercises in the Lab, Assignments
11 Project Preparation Course material, Textbook, Exercises in the Lab, Assignments
12 Project Preparation Course material, Textbook, Exercises in the Lab, Assignments
13 Project Preparation Course material, Textbook, Exercises in the Lab, Assignments
14 Project Preparation Course material, Textbook, Exercises in the Lab, Assignments


REQUIRED AND RECOMMENDED READING

• Herbert Schildt. "C++: The complete reference". McGraw-Hill Education; 4th edition
(December 10, 2002).
• Paul J. Deitel, and Harvey M. Deitel. "C++: how to program". Pearson; 10th edition (February
29, 2016).
• Bjarne Stroustrup. "The C++ Programming Language". Addison-Wesley Professional; 4th
edition (May 9, 2013)


OTHER COURSE RESOURCES

• C++ full reference:
https://www.cplusplus.com
• Online compiler:
https://app.coderpad.io/sandbox


ASSESSMENT METHODS AND CRITERIA

Semester RequirementsNumberPercentage of Grade (%)
Midterms / Oral Exams / Quizes 2 90
Final Exam 1 10
Total: 3 100


WORKLOAD

EventsCountDuration (Hours)Total Workload (hour)
Course Hours14228
Laboratory14228
Practice / Exercise89189
Exam (Exam Hours and Preparation)224
Oral Exams111
Total Workload (hour):150


THE RELATIONSHIP BETWEEN COURSE LEARNING OUTCOMES (LO) AND PROGRAM QUALIFICATIONS (PQ)

# PQ1 PQ2 PQ3 PQ4 PQ5 PQ6 PQ7 PQ8 PQ9 PQ10 PQ11
LO1                      
LO2                      
LO3                      
LO4                      
LO5                      
LO6