Lecture notes
Lecture 1 (Introduction)
- Is computer science a science? Engineering? Why?
- Read Required Reading → Why social aspects matter in computer science problems
- HTML example of creativity and logic intertwined in computer science
- Standardization & Non-Standardization → e.g. standardized protocols, or mishaps with non-Standardization
- Steps of computational thinking, abstraction, problem solving, decomposition
- Level of abstractions (e.g. tutorial sheet question about a penguin)
- Applying decomposition to a problem
Lecture 2 (Hardware)
- Building blocks of computing → (logic gates)
- Transistors are made of basic gates (AND, OR, NOT)
- Combinational Circuits (and designing them from boolean expressions)
- e.g. Exclusive OR (XOR) → Level of complexity
- Abstraction in Hardware
- Converting units (e.g. binary and decimal) from and to another → won’t need a calculator
- Required reading on storage units
- ALU, opcodes, status → Don’t memorize opcodes
- Structure of CPU, Instruction Sets, Moore’s Law (number of transistors on computer doubles every 2 years)
- Control Unit, ALU, Registers, RAM
- Questions similar to tutorial sheet (calculate size of a hardware x years back in time applying Moore’s Law)
Lecture 3 & 4
BCS1110-3 Algorithms and Command Line & BCS1110-4 Command Line and Git
- Read through Tom’s lecture slide
- Ignore historical facts
- Don’t memorize command line, but understand what basic ones do
- No git commands required in the exam → but maybe need to explain what a git command does
Lecture 5
Exam material
Everything in lecture slides of Week 3 is required for the exam
BCS1110-5 Theory of Computation
- Formal theory of computation
- Why do we need it?
- Definitions of String, Language, Relationship, Alphabet, Character
- Finite Automata, design and recognition
- Know how to design an automata → few questions about this, look at tutorial sheets
- Deterministic Finite Automata
Lecture 6
BCS1110-5 Theory of Computation
- Design tabular automata out of a DFA (table of transitions and states)
- Design a automata from a language and then a tabular DFA from it
- Decipher existing DFA and design tabular DFA or language
- Regular language and Compliment of Regular Language (and relationship)
- Can you design a DFA for a regular language?
- Can you design a DFA for a complement of a regular language?
- Design NFA → BUT you can design a DFA instead
- You cannot design a NFA is a DFA is required!
- When does an NFA accept, what are Epsilon transitions
Lecture 7
Exam materials
You can ignore everything in Part 3 of the slides (71-83) But everything in part 4 is important (slides 85-90
- Definitions of network, Shannon’s model, DNS, DNS Spoofing
- Network topologies (point to point, star, mesh, bus)
- What the internet is, how it started (university network)
- Different types of IP addresses (e.g. static, dynamic, private, public)
- Client-Server model, recognize them and explain why they are (or not) client-server models
- TCP/IP protocol and layers and protocols within each layer
- HTTP, SMTP
- TCP protocol
- What protocols are in the transport layer, why do we need such layer?
Lecture 8
BCS1110-8 Practical Network Applications
- Go through lecture notes and look for the theory
Lecture 9
BCS1110-9 Information Security and Privacy
- Importance of security in computing and networks
- Encryption
- Difference between encryption and decryption
- Symmetric vs Asymmetric encryption
- Applications
- Misconceptions vs. Reality (don’t memorize)
- End-to-end encryption, password managers
- Recognize if a practice implemented by a website is good or not and explain
- Passwords
- Hashing, Multi-factor Auth, password Attacks and prevention
- Phishing and Dictionary Attacks
- Social engineering (look at Tom’s slides)
Demo exam paper
- 25 questions → multiple choice or open ended
- 2 hours to solve everything, some questions are harder or easier
- Properly motivate answers
- Name a type of algorithm that is not a program → “Baking a cake”
- Designing flowcharts (Tutorial sheet week 2)
- Explain the concept of closure properties of regular languages →
- Regular languages are ==closed under complements== (Complement of a Regular Language is still a Regular Language)
- The constraints and the space of the problem is still the same
- When designing DFAs think about Edge Cases
- JavaCraft Project
- Review project javacraft functions for exam (more abstract in the actual exam)
- ==Review JavaCraft Project FSA Submission==
- Review newly implemented blocks (Diamond, TNT, Iron Sword)