INTRODUCTION
CS1021 Introduction to Computing
Prof Jeremy Jones
Rm 4.16 top floor South Leinster St (SLS) jones@scss.tcd.ie
CS1021 © 2018 jones@scss.tcd.ie School of Computer Science and Statistics, Trinity College Dublin 12-Nov-18
1
South Leinster St
INTRODUCTION
CS1021 and CS1022
CS1021 Introduction to Computing I (5 ECTS)
• Semester 1
• ICS, CSB and CSL
CS1022 Introduction to Computing II (5 ECTS)
• Semester 2
• ICS and CSB
5 ECTS module (out of 60 ECTS for each full year of your degree) ECTS European Credit Transfer and Accumulation System
5 ECTS means 5×25 or 125 hours of student effort expected
4 contact hours for 11 weeks = 44
leaves 81 or ≈ 6-7 hours of additional student effort expected per week CS1021 © 2018 jones@scss.tcd.ie School of Computer Science and Statistics, Trinity College Dublin 12-Nov-18
2
INTRODUCTION
You’ll learn how to write Assembly Language programs for an ARM CPU to solve a range of problems
Why bother?
it’s the best way to learn how computers really work you’ll learn that computers DON’T work by MAGIC
you’ll learn that computers execute very simple instructions and that their power comes from being able to execute these simple instructions incredibly quickly
my desktop, for example, can execute 2,000,000,000,000 floating point operations per sec (2 TFLOPS)
CS1021 © 2018 jones@scss.tcd.ie School of Computer Science and Statistics, Trinity College Dublin 12-Nov-18
3
INTRODUCTION
many layers of software between user and hardware
many layers of software between user and the hardware BUT REMEMBER
all software has to be converted into instructions that are executed by the hardware
• streaming video data across the network
• decompressing the video
• rendering the video •…
• CS1021/22 concentrates on the “low-level” software executed by the hardware
• “Mighty oaks from little acorns grow”
YouTube web page
browser (Chrome)
software libraries
operating system (Android)
hardware (ARM CPU)
CS1021 © 2018 jones@scss.tcd.ie School of Computer Science and Statistics, Trinity College Dublin 12-Nov-18
4
INTRODUCTION
Semester 1
12 weeks (10-Sep-18 to 30-Nov-18), week 7 is a study week
Lectures
Monday 14:00 in MacNeill (Hamilton H3) Tuesday 11:00 in LB01 (Lloyd Building)
Tutorials
Thursday 09:00 in Goldsmith Hall or Thursday 13:00 in LB04
No tutorials in week 1 or week 8 (used for a mid semester test) or week 12
Labs
Friday 10:00 or 11:00 in ICT2/LG35/LG36 (O’Reilly Institute) labs start in Week 3
Check Blackboard for which Tutorial and Lab you should attend:
http://mymodule.tcd.ie
CS1021 © 2018 jones@scss.tcd.ie School of Computer Science and Statistics, Trinity College Dublin 12-Nov-18
5
INTRODUCTION
CS1021 Website
• https://www.scss.tcd.ie/Jeremy.Jones/CS1021/CS1021.htm
• ALL lecture notes, tutorial questions and lab exercises will be available on this page
6
• lab submissions via Blackboard
CS1021 © 2018 jones@scss.tcd.ie School of Computer Science and Statistics, Trinity College Dublin 12-Nov-18
INTRODUCTION
Assessment
Paired Labs
Lab1 – week 3 Lab2 – week 4 Lab3 – week 5 Lab4 – week 6
40%
Individual Labs
Lab5 – week 9 Lab6 – week 11
Mid-Year test
1 hour – week 8
20%
Practical Exam (Dec 2018)
1.5 hours – during exam period
40%
pass mark 40% Supplemental (Aug 2019)
100% exam
CS1021 © 2018 jones@scss.tcd.ie School of Computer Science and Statistics, Trinity College Dublin 12-Nov-18
7
INTRODUCTION
Laptops/tablets/phones
Laptops/tablets/mobile phones may NOT be used during lectures
they are a distraction for you and other members of the class
there are exceptions (eg if you are registered with the College Disability
Service and require the use of a laptop, just let me know)
you will need your laptop/tablet/phone during tutorials and labs for referring to course material, documentation etc.
lecture notes very readable on a mobile phone
CS1021 © 2018 jones@scss.tcd.ie School of Computer Science and Statistics, Trinity College Dublin 12-Nov-18
8
INTRODUCTION
Attendance and Deadlines
• attendance at ALL lectures, tutorials and labs is compulsory (attendance will be taken during tutorials and labs)
• you MUST attend your own tutorial and lab sessions
• zero marks for late coursework without explanation – email Andrew Collins ancollin@scss.tcd.ie, the CS1021 Teaching Assistant (TA) if you are going to miss a tutorial or lab deadline
• inform your tutor if you are going to miss a deadline or are absent from College for more than a couple of days
CS1021 © 2018 jones@scss.tcd.ie School of Computer Science and Statistics, Trinity College Dublin 12-Nov-18
9
INTRODUCTION
Recipe for Success
• attend ALL lectures, tutorials and labs
• keep up to date by working through lecture notes, tutorials and labs in your own time and if you don’t understand something seek help from classmates, demonstrators, TA or me
• do ALL the tutorials and labs YOURSELF
• take pride in the lab answers you submit
• what you learn is cumulative, keep up to date and don’t get left behind
• learning to program takes TIME and PRACTICE, it cannot be done the day before the exam (think 10,000 hours per Malcom Gladwell “Outliers: The Story of Success”)
• AND don’t wait to be told that …
• you haven’t been attending lectures, tutorials or labs
• you haven’t handed in coursework
CS1021 © 2018 jones@scss.tcd.ie School of Computer Science and Statistics, Trinity College Dublin 12-Nov-18
10
INTRODUCTION
CS1021 Learning Outcomes
At the end of the module you will be able to:
• describe the basic characteristics, structure and operation of a computer system
• represent and interpret information stored in binary form (integers, text, …)
• design, write, test and document assembly language programs to solve simple problems
• translate high-level programming language constructs into their assembly language equivalents
• evaluate the efficiency of simple algorithms
• make use of appropriate documentation and reference material
CS1021 © 2018 jones@scss.tcd.ie School of Computer Science and Statistics, Trinity College Dublin 12-Nov-18
11
INTRODUCTION
Syllabus
• binary arithmetic
• ARM architecture
• fetch-decode-execute cycle
• arithmetic instructions
• condition codes and program flow
• bit manipulation
• accessing memory
• problem solving, algorithm and program development
• Keil uVision5 integrated development environment (IDE) CS1021 © 2018 jones@scss.tcd.ie School of Computer Science and Statistics, Trinity College Dublin 12-Nov-18
12
INTRODUCTION
• assembly language first developed in 1947 by Kathleen Booth (née Britten) at Birkbeck College, University of London
• removed the need for programmers to program using binary codes
• replaced by high-level programming languages (eg Java used in CS1010)
• now mostly used when optimising programs for speed
CS1021 © 2018 jones@scss.tcd.ie School of Computer Science and Statistics, Trinity College Dublin 12-Nov-18
13
INTRODUCTION
ARM Holdings plc
• Founded 1990, Cambridge England
• ARM Holdings do not manufacture their own CPUs, but licences its designs to other
manufacturers (Qualcomm, Samsung, Huawei, NXP Semiconductors, …)
• known for their low power, cost effective CPUs
• range of CPUs from those suitable for low cost IoT devices (ARM7TDMI) to supercomputers (Fujitsu A64FX)
• ARM is the most widely used instruction set architecture
• 15 billion ARM CPUs produced in 2015 (Intel circa 400 million)
• ARM CPUs used in more than 85% of the world’s mobile devices
• ARM Holdings is a very successful company
CS1021 © 2018 jones@scss.tcd.ie School of Computer Science and Statistics, Trinity College Dublin 12-Nov-18
14
INTRODUCTION
Keil uVision5 Integrated Development Environment (IDE)
• use in SCSS labs, but free download from Keil website to run on own laptop/desktop
• integrated editor, assembler, simulator and debugger
CS1021 © 2018 jones@scss.tcd.ie School of Computer Science and Statistics, Trinity College Dublin 12-Nov-18
15
INTRODUCTION
Keil uVision5 …
• can connect laptop/desktop to an ARM based Developer Kit via two USB cables so software can be downloaded and executed on the developer board rather than being simulated on the PC
Embedded Artists LPC2468 Developer’s Kit based on a NXP LPC2468 microcontroller
• ARM7TDMI-S 32-bit CPU
• Flash memory (512KiB)
• RAM (96KiB)
• 10/100 Ethernet
• USB 2.0
• A/D and D/A converters •…
CS1021 © 2018 jones@scss.tcd.ie School of Computer Science and Statistics, Trinity College Dublin 12-Nov-18
16
INTRODUCTION
Embedded Artists LPC2468 Developer’s Kit in LG35/36 Lab
• Note the two USB cables and the addition of a QVGA touch-screen LCD board
• CS1021 will mostly use the uVision 5 simulator
• CS1022 will mostly use the LPC2468 Developer’s Kit CS1021 © 2018 jones@scss.tcd.ie School of Computer Science and Statistics, Trinity College Dublin 12-Nov-18
17
INTRODUCTION
Keil uVision5 Quick Demonstration
CS1021 © 2018 jones@scss.tcd.ie School of Computer Science and Statistics, Trinity College Dublin 12-Nov-18
18