
Bachelor in Computer Science
Programming Fundamentals 2 | |
Module: | Programming Fundamentals 2, Semester 2 |
ECTS: | 4 |
Objective: | Programming is a craft rather than an exact science. Therefore, we
need a set of programming tools and guiding principles to
develop reliable applications. The main purpose of Programming
Fundamentals 2 is to learn how to design and implement
programs above 500 lines of code. We give emphasis on clean and
beautiful code, well-thought architectures, and a disciplined
programming workflow. To achieve our goals, we will rely on the
object-oriented paradigm and the Java programming language, as
well as various programming tools (e.g., an editor,
terminal, bash, Maven, git and Github).This class is designed to be self-paced, you will watch video of the lectures and complete assignments at your own pace. Moreover, we provide automated and personalized feedback on your projects (quick assessment, code analysis session). In-class, the professors and assistants will help you strive through the class by answering your questions and re-explaining concepts as needed. In short, PF2 is your class. |
Description: | 1. Core 1.1. Basics of Java 1.1.1. Basics of Java syntax 1.1.2. Object and class 1.1.3. Composition (has-a relation) 1.1.4. Inheritance (is-a relation) 1.2. Polymorphisms 1.2.1. Ad-hoc polymorphism (overloading) 1.2.2. Sub-type polymorphism I (overriding) 1.2.3. Sub-type polymorphism II (interactions with ad-hoc) 1.2.4. Sub-type polymorphism III (interface and abstract class) 1.2.5. Casting polymorphism 1.2.6. Parametric polymorphism 1.3. Principles 1.3.1. Introduction to design patterns (e.g., factory, adapter, visitor) 1.3.2. The Liskov Substitution Principle (LSP) 1.3.3. The Single-Responsibility Principle (SRP) 1.3.4. The Open-Closed Principle (OCP) 2. Algorithmic 2.1. Data structures 2.1.1. Dynamic array 2.1.2. Linked list 2.1.3. Binary Tree 2.1.4. Hash Table 2.1.5. Graph 3. Programming environment 3.1. Shell 3.1.1. UNIX simple commands, Bash 3.2. Tools 3.2.1. Editor (Sublime Text) 3.2.2. Command line (Shell) 3.2.3. Source code control (Git) 3.2.4. Build automation tool (Maven) |
Language: | English |
Lecturer: | TALBOT Pierre |
Mandatory: | Yes |
Evaluation: | Continuous evaluation (a grade C between 0 and 20) with a final
oral examination (a weight W between 0.8 and 1.2). The final
grade is C * W.
|
close |
URL: https://wwwfr.uni.lu/formations/fstm/bachelor_in_computer_science/programme | Date: samedi 28 mai 2022 02:51:08 |