Skip to content

Commit

Permalink
add one more GTA
Browse files Browse the repository at this point in the history
  • Loading branch information
jdtournier committed Jan 9, 2025
1 parent d1eb7fd commit 6fee7a6
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 41 deletions.
Binary file added images/adriana.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions index.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ title: Object-Oriented Programming (5CCYB041)
- [Jakub Grzelak](mailto:jakub.grzelak@kcl.ac.uk)
- [Nashira Baena](mailto:paloma.rodriguez_baena@kcl.ac.uk)
- [Dewmini Hasara Wickremasinghe](mailto:dewmini.wickremasinghe@kcl.ac.uk)
- [Adriana Namour](mailto:adriana.m.namour@kcl.ac.uk)

---

Expand Down
94 changes: 53 additions & 41 deletions week1A.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,18 +42,16 @@ name: team

---

# Teaching assistants


.center[.teamcols[
.col[
[Abhijit Adhikary](mailto:abhijit.adhikary@kcl.ac.uk) ]
## Teaching assistants
]
.col[
  ]
.col[
![:scale 100%](images/abhijit.jpg) ]
.col[
![:scale 100%](images/hasara.jpg) ]
.col[
[Dewmini Hasara Wickremasinghe](mailto:dewmini.wickremasinghe@kcl.ac.uk) ]
.col[
[Abhijit Adhikary](mailto:abhijit.adhikary@kcl.ac.uk) ]
] ]

.center[.teamcols[
Expand All @@ -78,6 +76,20 @@ name: team
[Nashira Baena](mailto:paloma.rodriguez_baena@kcl.ac.uk) ]
] ]

.center[.teamcols[
.col[
[Adriana Namour](mailto:adriana.m.namour@kcl.ac.uk) ]
.col[
![:scale 100%](images/adriana.jpg) ]
.col[
![:scale 100%](images/hasara.jpg) ]
.col[
[Dewmini Hasara Wickremasinghe](mailto:dewmini.wickremasinghe@kcl.ac.uk) ]
] ]




---
name: course

Expand Down Expand Up @@ -158,7 +170,7 @@ C++ was first released in 1985 by Bjarne Stroustrup as an extension to the [C la

--

Secific features of C++:
Specific features of C++:
- it supports [Object-Oriented Programming (OOP)](https://www.geeksforgeeks.org/introduction-of-object-oriented-programming/), as well as [generic](https://www.geeksforgeeks.org/generics-in-c/) and [functional programming](https://www.geeksforgeeks.org/functional-programming-paradigm/)
- it is a [compiled
language](https://www.geeksforgeeks.org/difference-between-compiled-and-interpreted-language/)
Expand All @@ -180,7 +192,7 @@ On this course, we will be using the **C++20 version of the standard**

--

We will _not_ cover concepts that many other C++ courses would consider
We will *avoid* concepts that many other C++ courses would consider
fundamental, including:

--
Expand Down Expand Up @@ -604,37 +616,6 @@ $ ls
a.exe main.cpp
```

---

# Difference between compiled and interpreted languages

[*Interpreted* programming languages](https://www.geeksforgeeks.org/difference-between-compiled-and-interpreted-language/) do not need to be compiled prior to execution
- examples include [Python](https://www.python.org/), [Java](https://www.java.com/), [JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript), [Perl](https://www.perl.org/), [Ruby](https://www.ruby-lang.org/), and even our [`bash` shell](https://www.geeksforgeeks.org/bash-scripting-introduction-to-bash-and-bash-scripting/)

--

Programs written using interpreted languages cannot executed by themselves –
they need to be run via another program called the *interpreter*
- the source code needs to be [parsed](https://en.wikipedia.org/wiki/Parsing) by the interpreted at run-time
- if the code is deemed valid, the interpreter will perform the actions
specified
- the interpreter must be installed and available on all target systems

--

In contrast, *compiled* languages are first translated into native machine
instructions
- examples include [C](https://en.wikipedia.org/wiki/C_(programming_language%29), C++, [Fortran](https://en.wikipedia.org/wiki/Fortran), [Pascal](https://en.wikipedia.org/wiki/Pascal_(programming_language%29), [Rust](https://www.rust-lang.org/), [Go](https://go.dev/), ...
- this (in theory) provides the highest performance, avoiding the overhead of
interpreting the instructions at runtime
- it also provides an opportunity to detect certain classes of errors at an earlier stage
- it can also produce more efficient code through various optimisation
techniques that would be too time-consuming to perform at runtime
--
- ... but the compile cycle can be lengthy, slowing down the development process



---

# Running our program
Expand Down Expand Up @@ -668,6 +649,37 @@ Hello, world!
--


---

# Difference between compiled and interpreted languages

[*Interpreted* programming languages](https://www.geeksforgeeks.org/difference-between-compiled-and-interpreted-language/) do not need to be compiled prior to execution
- examples include [Python](https://www.python.org/), [Java](https://www.java.com/), [JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript), [Perl](https://www.perl.org/), [Ruby](https://www.ruby-lang.org/), and even our [`bash` shell](https://www.geeksforgeeks.org/bash-scripting-introduction-to-bash-and-bash-scripting/)

--

Programs written using interpreted languages cannot be executed by themselves –
they need to be run via another program called the *interpreter*
- the source code needs to be [parsed](https://en.wikipedia.org/wiki/Parsing) by the interpreted at run-time
- if the code is deemed valid, the interpreter will perform the actions
specified
- the interpreter must be installed and available on all target systems

--

In contrast, *compiled* languages are first translated into native machine
instructions
- examples include [C](https://en.wikipedia.org/wiki/C_(programming_language%29), C++, [Fortran](https://en.wikipedia.org/wiki/Fortran), [Pascal](https://en.wikipedia.org/wiki/Pascal_(programming_language%29), [Rust](https://www.rust-lang.org/), [Go](https://go.dev/), ...
- this (in theory) provides the highest performance, avoiding the overhead of
interpreting the instructions at runtime
- it also provides an opportunity to detect certain classes of errors at an earlier stage
- it can also produce more efficient code through various optimisation
techniques that would be too time-consuming to perform at runtime
--
- ... but the compile cycle can be lengthy, slowing down the development process



---

# Controlling the output of the compiler
Expand Down

0 comments on commit 6fee7a6

Please sign in to comment.