COMPUTER ENGINEERING | |||||
Bachelor | TR-NQF-HE: Level 6 | QF-EHEA: First Cycle | EQF-LLL: Level 6 |
Course Code | Course Name | Semester | Theoretical | Practical | Credit | ECTS |
CMP1001 | Introduction to Programming (C++) | Fall | 2 | 2 | 3 | 6 |
Language of instruction: | English |
Type of course: | Must Course |
Course Level: | Bachelor’s Degree (First Cycle) |
Mode of Delivery: | Face to face |
Course Coordinator : | Assist. Prof. ECE GELAL SOYAK |
Course Lecturer(s): |
Assoc. Prof. CEMAL OKAN ŞAKAR Assist. Prof. TARKAN AYDIN Assist. Prof. ERKUT ARICAN Assist. Prof. ÖZGÜR ERKUT ŞAHİN Assist. Prof. ECE GELAL SOYAK |
Recommended Optional Program Components: | None...... |
Course Objectives: | This course aims to provide an overview of programming concepts, design and an introduction to coding using the C++ language. The course has a focus on creating working computer programs in C++. This course will address fundamental concepts of analysis, design, code development, and testing. |
The students who have succeeded in this course; I. Defining and analyzing the problem, finding a logical sequence of precise steps, developing algorithms. II. Developing computer programs that utilize various types of selection constructs in C++. III. Developing computer programs that employ repetition constructs in C++. IV. Developing computer programs that use simple data structures like arrays and multi-dimensional arrays in C++. V. Declaring and correctly calling functions in a C++ program. VI. Developing computer programs in C++ that correctly use pointers and references. |
Introduction to Programming (Programming languages, compilers) Problem Solving, Algorithm Design and Representation (Pseudocode, Flow-chart) Primitive Data Types, Constants, Variables, Identifiers, Named Constants, Arithmetic Operations Relational and Logical Operators, Conditional Statements ('If' Selection Structures, 'Switch Case' Blocks) Repetition Structures (Do/While Repetition Structure, the for repetition structure), break and continue statements Functions, Function Overloading Arrays, Multi-Dimensional Arrays, Seaching arrays Strings, String functions Pointers Pass By Reference with Pointers, Pass by Value The teaching methods of the course are as follows: - Lecture - Individual Study - Technology Supported Learning - Problem Solving - Application |
Week | Subject | Related Preparation |
1) | Introduction to computer systems. Introduction of computer components (hardware) and different software languages. Introduction of C++ language structure, features, compilers. | Preliminary research on computer components and C++ programming language from the course book and the Internet. |
2) | Problem Solving (Algorithms, Pseudocode, Flow-chart), Algorithm Design | Having knowledge about algorithm design techniques from the course book and other sources |
3) | Primitive Data Types, Constants, Variables, Identifiers, Named Constants, Arithmetic Operations | Designing sample programs using the pseudo-code and flowchart algorithm design techniques Reading the sections of the text book about Primitive Data Types, Constants, Variables, Named Constants, Arithmetic Operations |
4) | Quiz, Relational and Logical Operators, Conditional Statements | Writing simple C++ programs |
5) | Do/While Repetition Structures | Developing programs that contains relational and logical operators Reading the related parts of the course book and reference sources with loops |
6) | For repetition structures, break and continue statements | Writing the pseudo-codes, drawing flowcharts and writing C++ codes of sample programs |
7) | Quiz, Functions, Recursion, Inline functions, Function Overloading | Having knowledge about modular programming from course book and reference sources |
8) | Arrays in C++ | Developing sample C++ programs with functions |
9) | Strings, String functions | Reading the related sections of the course book and reference sources with strings and built-in string functions |
11) | Multi-dimensional arrays | Developing sample C++ programs related with arrays |
12) | Quiz, Sorting Arrays, searching in Arrays | Writing sample programs about strings, using built-in string functions in C++ programs |
13) | Pointers | Developing C++ programs that include array sorting and searching algorithms Reading the related topics of course book and reference sources with pointers |
14) | Pass by Reference to Functions with Pointers, Function Pointers | Developing C++ programs about pointers |
Course Notes / Textbooks: | Paul J. Deitel, Harvey M. Deitel, C++ How to Program, 7th Ed., Pearson Bjarne Stroustrup, The C++ Programming Language, 3rd Ed., Addison-Wesley. Bjarne Stroustrup, Programming Principles and Practice Using C++, 1st Ed., Addison-Wesley. Walter Savitch, Problem Solving with C++, 7th Ed., Addison-Wesley Andrei Alexandrescu, Herb Sutter, C++ Design and Coding Standards: Rules and Guidelines for Writing Programs, 1st Ed., Addison-Wesley. |
References: | http://www.cplusplus.com/doc/tutorial/ http://www.cprogramming.com/ |
Semester Requirements | Number of Activities | Level of Contribution |
Laboratory | 14 | % 0 |
Quizzes | 2 | % 10 |
Homework Assignments | 1 | % 5 |
Midterms | 1 | % 40 |
Final | 1 | % 45 |
Total | % 100 | |
PERCENTAGE OF SEMESTER WORK | % 55 | |
PERCENTAGE OF FINAL WORK | % 45 | |
Total | % 100 |
Activities | Number of Activities | Duration (Hours) | Workload |
Course Hours | 14 | 2 | 28 |
Laboratory | 14 | 2 | 28 |
Homework Assignments | 1 | 10 | 10 |
Quizzes | 3 | 12 | 36 |
Midterms | 1 | 24 | 24 |
Final | 1 | 35 | 35 |
Total Workload | 161 |
No Effect | 1 Lowest | 2 Low | 3 Average | 4 High | 5 Highest |
Program Outcomes | Level of Contribution | |
1) | Adequate knowledge in mathematics, science and computer engineering; the ability to use theoretical and practical knowledge in these areas in complex engineering problems. | 5 |
2) | Ability to identify, formulate, and solve complex engineering problems; ability to select and apply appropriate analysis and modeling methods for this purpose. | 3 |
3) | Ability to design a complex system, process, device or product to meet specific requirements under realistic constraints and conditions; ability to apply modern design methods for this purpose. | |
4) | Ability to develop, select and use modern techniques and tools necessary for the analysis and solution of complex problems encountered in computer engineering applications; ability to use information technologies effectively. | 4 |
5) | Ability to design, conduct experiments, collect data, analyze and interpret results for the study of complex engineering problems or computer engineering research topics. | |
6) | Ability to work effectively within and multi-disciplinary teams; individual study skills. | 3 |
7) | Ability to communicate effectively in verbal and written Turkish; knowledge of at least one foreign language; ability to write active reports and understand written reports, to prepare design and production reports, to make effective presentations, to give and receive clear and understandable instructions. | |
8) | Awareness of the necessity of lifelong learning; ability to access information, to follow developments in science and technology and to renew continuously. | |
9) | To act in accordance with ethical principles, professional and ethical responsibility; information on the standards used in engineering applications. | |
10) | Information on business practices such as project management, risk management and change management; awareness of entrepreneurship and innovation; information about sustainable development. | |
11) | Knowledge of the effects of engineering practices on health, environment and safety in the universal and social scale and the problems of the era reflected in engineering; awareness of the legal consequences of engineering solutions. |