- Who am I
- What do we do
- What can you expect
Weeks | Contents | Q&A |
---|---|---|
Week1 | Command Line Basics | |
Week2 | Command Line Basics Cont. | TBR |
Week3 | Other Tools and Shell Scripting | |
Week4 | Tools for C (and other languages) | TBR |
Week5 | Algorithms: Sort and Search (and Paper) | |
Week6 | Paper Continued | TBR |
Week7 | Network Basics | |
Week8 | Functional Programming: Haskell and Others | TBR |
Week9 | Delve deeper into FP (A Real Project) | |
Week10 | Continue + Q&A + Prepare for holiday :) | TBR |
Week11 | Frontend Basics | |
Week12 | Backend Basics | TBR |
Week13 | Basic C++ and C++ vs. C | |
Week14 | Ideas behind Modern C++ and STL | TBR |
Week15 | Java vs. C++ | |
Week16 | Can we be safer? | TBR |
Week17 | Algorithms: Dynamic Programming | |
Week18 | Algorithms: Greedy | TBR |
Week19 | Design Patterns | |
Week20 | Special |
TBR |
- What will you learn in 1st/2nd term
Course | Contents | Coursework/Exam |
---|---|---|
Engineering Challenges (ENGF0001) | A video + A bioreactor! | |
Design and Professional Skills 1 (ENGF0002) | Learn some Python | Tetris + Design a Protocol + Do a project + Presentation + Write a Report |
Principles of Programming (COMP0002) | Learn some C + Haskell | Program a bot + Design a Set + Exam |
Discrete Mathematics for Computer Scientists (COMP0147) | Set + Function + Group + Discrete Algorithms + Matrix | Two online quizzes + Exam |
Theory of Computation (COMP0003) | Logic + Automata | Exam |
Object-Oriented Programming (COMP0004) | Java | Web Design + Exam |
Algorithms (COMP0005) | Search + Sort + Graph + String | A trading platform + Exam |
Mathematics and Statistics (COMP0011) | Complex Number + Calculus + Vector Space + Matrix... | Exam |
- How could we support you
- Week5: Algorithms: Sort and Search (and Paper)
- Week7: Network Basics
- Week9: Delve deeper into FP (A Real Project)
- Week11: Frontend Basics
- Week17-18: Algorithms
- How to access the materials?
- Absence Policy
- No absence policy!
- How should you use discord?
- Something about "the messages" in Discord
- Exchangeable Image File Format
- Links here: Setting up your environment
- An additional link for C: Install MinGW-x64
- But more... (why not try vscode?)
- What is vscode?
- How could it empower your development? (a short demo on C/C++, Python (Jupyter), Haskell, Java)
- Python
- C/C++ from Microsoft
clangd
- Haskelly (created by UCL students)
- Haskell
- Install Language support for Java for Visual Studio Code
- Maven for Java
- Test Runner for Java
- Better Comments
- Error Lens
- Themes: One Dark Pro / vscode-icons
- Wakatime
- If you want to learn more tools: Trunk and Vim are waiting for you
This section is inspired by Welcome to Linux command line for you and me!
The following contents are only for Unix-like OS. Some of them are exclusively for Linux.
- What is shell and terminal emulator?
date
,cal
,tree
,wc
,echo
- Redirection and Pipes
man
page- Read the man page for man-page
- If you are using zsh, you can install
oh-my-zsh
via brew - Choose a theme (the default is good)
- Install some extensions
zsh-syntax-highlighting
zsh-autosuggestions
git
colored-man-page
z
cd
,ls
,rm
,mkdir
,touch
,tee
- Their advanced options and meanings
- File Permissions
chmod
- Soft Links and Hard Links
- What are them?
- How to create them?
tar
files- What are
tar
files? - Extraction
- Compression
- What are
- Using
sudo
command - Environment variables
PATH
printenv
- shell variables
- Create/Delete new environment variables ("permanent"/temporary)
- Sort files by size
- use
-S
options fromls
- use
sort
- use
- Some
!
trick- Repeat previous
n
lines - Repeat the closest line starts with
x
- Repeat the closest line includes
x
- Repeat previous
Read this section iff you have some basic Network knowledge.
You can read the first two sections of Introduction to the Domain Name System (DNS) before exploring the following topics.
ping
andtraceroute
- What is TTL?
- How does
traceroute
work?
- DNS and its lookup rules
- What happens when we visit a website?
- Recursive Lookup (from AUTHORITATIVE VS RECURSIVE DNS: WHAT YOU NEED TO KNOW)
dig
with example
- hosts file
- What is
hosts
? - Path
- Windows:
C:\Windows\System32\drivers\etc
- Mac:
/etc/hosts
- Windows:
- What is