BSc in Computer Science / Бакалавр в Області Комп'ютерних Наук

Course Details

Course Information Package

Course Unit TitlePROGRAMMING PRINCIPLES II
Course Unit CodeACSC183
Course Unit DetailsBSc Electrical Engineering (Technical Electives) -
Number of ECTS credits allocated6
Learning Outcomes of the course unitBy the end of the course, the students should be able to:
  1. Recognize the use of structures and arrays, and apply them to construct and manipulate programmatically composite data types.
  2. Develop programs that read and write from/to files and can handle strings.
  3. Show the ability to use pointers and dynamic data types in programming exercises.
  4. Design medium size programs using a modular approach, and apply the use of functions for developing algorithmic units and their communication through parameter passing and function returns.
  5. Examine the benefits and core concepts of object oriented C++ programming, and develop simple programs using object-oriented terminology.
Mode of DeliveryFace-to-face
PrerequisitesACSC182Co-requisitesNONE
Recommended optional program componentsNONE
Course Contents

Review of Programming Principles: Data and Algorithms. Variables, operators and statements. Sequential, Selective and iterative processes. Understanding complex code. Interacting with input and output.

Using Composite Data Types: Limitations of built-in data types. Mechanisms for constructing composite data types: Arrays and Structures. Building complex data types. Combining arrays and structures. Handling composite types. Efficiency considerations. Composite data types in functions.

Pointers and Dynamic Data: Understanding pointers and memory addresses. Pointer syntax. Parameter Passing revisited.

Pointers in Programmatic Development: Pointers and arrays. Dynamic memory allocation. Memory allocation lifetime and memory leaks. String handling.

Persistent Storage: Files, file pointers and file objects. Reading and writing methods. File manipulation.

Modular Programming Revisited: Tackling larger programming tasks. Dividing the problem into parts. Designing software solutions. Effects of structures, pointers and dynamic content in functions. Breaking programs into units. Use of header files and custom-made libraries.

Combining Data and Algorithms – Introduction to Object-Orientation: Introducing a new way of programming: functions as members of ‘objects’. Key features of object-orientation: Classes, objects, properties and methods. Objects and memory management.

Laboratory Work: The role of the C programming language as a tool for solving advanced mathematical and engineering problems is emphasised through practical work carried out.

Recommended and/or required reading:
Textbooks
  • Walter Savitch, Problem Solving with C++, Addison-Wesley, 7th Ed., 2009
References
  • Harvey M. Deitel, Paul J. Deitel, C++ How to Program, Prentice Hall, 7th Ed., 2010
Planned learning activities and teaching methods

Students are taught the course through lectures by means of computer presentations. Laboratory work consists of practical problems aiming to help students understand and illustrate the programming concepts taught at lectures.

Homework requires students to solve programmatically advanced mathematical and engineering problems.

Lecture/Laboratory notes and presentations are available through the web for students to use in combination with the textbooks.
Assessment methods and criteria
Lab Assignments20%
Tests20%
Final Exam60%
Language of instructionEnglish
Work placement(s)NO

 Друк  E-mail