Systems Programming

Universidad Carlos III de Madrid

Course Description

  • Course Name

    Systems Programming

  • Host University

    Universidad Carlos III de Madrid

  • Location

    Madrid, Spain

  • Area of Study

    Systems Engineering

  • Language Level

    Taught In English

  • Prerequisites

    STUDENTS ARE EXPECTED TO HAVE COMPLETED:

    Programming

  • Course Level Recommendations

    Lower

    ISA offers course level recommendations in an effort to facilitate the determination of course levels by credential evaluators.We advice each institution to have their own credentials evaluator make the final decision regrading course levels.

    Hours & Credits

  • ECTS Credits

    6
  • Recommended U.S. Semester Credits
    3
  • Recommended U.S. Quarter Units
    4
  • Overview

    Systems Programming (217 - 13494)
    Study: Bachelor in Communication System Engineering
    Semester 2/Spring Semester
    1st Year Course/Lower Division

    Students are Expected to have completed:
    Programming

    Compentences and Skills that will be Acquired and Learning Results:

    The goal of this module is for the student to deepen their knowledge in programming techniques, including advanced object orientation, as well as some of the more fundamental data structures and algorithms. The programming language the module will be based on is Java, although the acquired knowledge can be applied to other programming languages as well.

    To achieve this goal, the student needs to acquire the following learning outcomes specified in relation to generic learning outcomes of the qualification specified in the order CIN 352/2009 (PO: 1.2 and 2.7) and in the ABET criteria for this grade (PO: a), and skill assessment (CB1, CB2, CG3, CG11 y ECRT 7)

    1. Design and development of applications using the Java programming (CIN: 1.2, 2.7, PO: a)

    a. Knowledge. Interpret, explain and exemplifly:
    i. The elements of object orientation
    ii. The concept of recursion
    iii. The fundamentals of data structures, such as lists, stacks, queues, deques and trees
    iv. Different algorithms processing data structures

    b. Specific abilities:
    i. Program object oriented applications
    ii. Represent, design and implement recursive algorithms
    iii. Implement algorithms and use linear data structures (linked lists, stacks, queues, deques, trees,etc)
    iv. Decide which data structures fit better to given problems, and reuse or design appropriate algorithms for solving specific problems

    c. Attitudes. A critical attitude towards:
    i. The suitability of different data structures and algorithms for specific problems
    ii. The use of the bibliography and other information resources for increasing his/her knowledge in other topics related to the subject

    2. Use of an application environment that provides facilities for software development.

    a. Be able to create, compile and run a java program
    b. Be able to interpret and eliminate error messages and warnings shown by the compiler

    Description of Contents: Course Description

    The syllabus of this module is divided into five modules:

    1. Object Based programming
    1.1. Definitions: Classes and objects
    1.2. Composition of classes
    1.3. Constructors
    1.4. Shadowing
    1.5. Modifiers

    2. Object Oriented Programming
    2.1. Inheritance
    2.2. Overwriting and overloading
    2.3. Casting
    2.4. Abstract classes and interfaces
    2.5. Multiple inheritance and polymorphism

    3. Recursion
    3.1. Definitions
    3.2. Types (linear, non linear, mutual)
    3.3. Recursion vs. iteration
    3.4. Implementation and execution examples

    4. Data structures, algorithms and implementation samples
    4.1 Linked Lists and Double Linked Lists
    4.2 Stacks
    4.3 Queues (simple, double and priority queues)
    4.4 Tress (n-ary tress, binary trees, binary search trees)

    Learning Activities and Methodology:

    The teaching methodology of this course is based in the active integration of the student in the teaching activity and in the application of the principles of continuous evaluation.

    The course is divided into units, where each unit consists of lectures in large groups and lab sessions in small groups. All the necessary information and material will be available from the web site of the course. The student participation in the class activities (questions, problem-solving in groups) will be positively taken into account. The lab scripts with the exercises and programs to be carried in the lab are also available in advance. Additionally to the lectures and lab sessions, the web page proposes some homework activities.

    1. Lecture sessions (theory, exercises and questions). In these classes the students will be introduced to the educational contents they should learn. In order to facilitate the understanding, the students will be provided with the class notes and basic reference books. (PO: a)
    2. Lab sessions (Problem solving). In these classes in computer labs, the students will analyze and develop programs applying the different concepts taught in the lectures (PO: a,k)
    3. Personal work: Self-study to understand the theoretical concepts and how to apply them, homework, to solve exercises (PO: a)
    4. Exams (PO: a): Exercises to be solved by the students to demonstrate the knowledge and the required abilities acquired during the course.
    a) Mid-term evaluation
    b) Final exam
    5. Tutoring (PO:a) according to current regulations

    Assessment System:

    The evaluation of the course is based on midterm and final exams. The distribution of the marking is based on the following criteria:

    1. 50%: continuous evaluation. Mid-term assessment to evaluate overall knowledge (theory and problems for several units (PO-a, skills: CB1, CB2, CG3, CG11).
    2. 50% Final exam: Overall knowledge of the student for the whole course (Skills:CB1, CB2, CG3, CG11 y ECRT 7)

    Specifically, the student is expected to respect the course evaluation rules and reject any fraudulent behaviour, such as any means of copying in the assessment tests or plagiarizing papers or assignments. Likewise, the student is responsible for guarding their personal work to prevent this fraudulent behavior by peers.

    Any behaviour that fails to comply with these guidelines will be penalized

    Basic Bibliography:

    Mark A. Weiss. Data Structures and Problem Solving Using Java. Addison-Wesley.
    Michael T. Goodrich and Roberto Tamassia. Data Structures and Algorithms in Java. John Wiley & Sons, Inc.

Course Disclaimer

Courses and course hours of instruction are subject to change.

ECTS (European Credit Transfer and Accumulation System) credits are converted to semester credits/quarter units differently among U.S. universities. Students should confirm the conversion scale used at their home university when determining credit transfer.