CNG111 INTRODUCTION TO COMPUTER ENG. CONCEPTS
Course Code: | 3550111 |
METU Credit (Theoretical-Laboratory hours/week): | 4 (3.00 - 2.00) |
ECTS Credit: | 4.0 |
Department: | Computer Engineering |
Language of Instruction: | English |
Level of Study: | Undergraduate |
Course Coordinator: | Lecturer İDİL CANDAN |
Offered Semester: | Fall Semesters. |
Course Objectives
At the end of this course, students will be able to:
- Identify the types of computation and describe digital computation in detail.
- Design simple combination circuits for simple computational problems. Outline the concepts of the Von Neumann Architecture and the Turing Machine, and describe how a modern computer relates to them.
- Understand and use how information is represented in a modern computer and how instructions are executed.
- Describe the types of programming languages, and the paradigms.
- Understand the concept of basic data types, such as int, float, bool as well as container data types, such as list, tuple, string.
- Differentiate computational evaluation of expressions from mathematical evaluation due to concepts such as overflow, side-effect, and truncation.
- Understand and apply structured programming concepts by elaborating on sequential, selective, repetitive structures, such as statements, if/switch/case statements, for/while statements and functions.
- Interpret a computational problem specification and algorithmic solution and implement a solution in Python to solve that problem.
Course Content
Introduction to fundamentals of Computer systems, including Computer organization, operating systems, language processors and user interfaces. Introduction to algorithms and programming. Reasoning informally about the correctness and efficiency of programs. A functional programming language will be used for practical work.
Course Learning Outcomes
Satisfies the following student outcomes (SOs) via the following Performance Indicators:
- Analyze the computational complexity of algorithms by using discrete mathematics.
- Design test procedures for finding defects in software and hardware.
- Design and implement components and systems to process, i.e. acquire, store, organize, manipulate, access and present, varied amounts of data.
- Use a widely accepted high-level programming language, e.g. Java, C# and C++.
- Use a programming language in non-imperative paradigm, e.g. functional and logic.