Documente Academic
Documente Profesional
Documente Cultură
$ cat welcome.c
#include <stdio.h>
int main(int argc, char *argv[]) Agenda
{
printf(“Welcome to COS 217\n");
printf("Introduction to Programming Systems\n\n");
printf("%s %d\n", ”Fall", 2019);
return 0; Course overview Getting started with C
} • Introductions • History of C
$ cat Makefile • Course goals • Building and running C
CC=gcc217 • Resources programs
welcome: welcome.o • Grading • Characteristics of C
• Policies • C details (if time)
$ make
• Schedule
gcc217 -c -o welcome.o welcome.c
gcc217 welcome.o -o welcome
$ ./welcome
Welcome to COS 217
Introduction to Programming Systems
Fall 2019
2
Introductions Agenda
Lead Instructor
• Jennifer Rexford jrex@cs.princeton.edu Course overview Getting started with C
• Introductions • History of C
Lead Preceptors
• Course goals • Building and running C
• Xiaoyan Li xiaoyan@cs.princeton.edu programs
• Resources
• Christopher Moretti cmoretti@cs.princeton.edu • Characteristics of C
• Grading
• Policies • C details (if time)
Graduate Student Preceptors
• Schedule
• Alberto Benmaman albertob@princeton.edu
• Greg Chan gc14@princeton.edu
• John Li johnli@princeton.edu
• Ethan Tseng eftseng@princeton.edu
• Josh Zhang jiashuoz@princeton.edu
3 4
Downward tours
1
9/12/19
Power Programmer!!!
8
9 10
Agenda Lectures
Lectures
• Describe material at conceptual (high) level
• Slides available via course website
Course overview Getting started with C
• Introductions • History of C
• Course goals • Building and running C
• Resources programs Etiquette
• Characteristics of C • Use electronic devices only for taking notes or annotating slides
• Grading
• Policies • C details (if time) (but consider taking notes by hand – research shows it works better!)
• Schedule • No SnapFaceNewsBookInstaGoo, please
iClicker
• Register in Blackboard (not with iClicker – they’ll charge you)
• Occasional questions in class, graded on participation
(with a generous allowance for not being able to attend)
11 12
2
9/12/19
14
Website Piazza
https://www.cs.princeton.edu/courses/archive/fall19/cos217/ Piazza
• Home page, schedule page, assignment page, policies page • http://piazza.com/princeton/fall2019/cos217
• Instructions provided in first precept
Piazza etiquette
• Study provided material before posting question
• Lecture slides, precept handouts, required readings
• Read / search all (recent) Piazza threads before posting question
• Don’t reveal your code!
• See course policies
15 16
Books Manuals
C Programming: A Modern Approach
(Second Edition) (required)
• King Manuals (for reference only, available online)
• C programming language and standard libraries • ARMv8 Instruction Set Overview
• ARM Architecture Reference Manual
ARM 64-bit Assembly Language (required) • Using as, the GNU Assembler
• Pyeatt & Ughetta
• Book or preprint will be made available later in the term
See also
The Practice of Programming (recommended) • Linux man command
• Kernighan & Pike
• “Programming in the large”
3
9/12/19
armlab01
armlab02 On-campus or
off-campus
19 20
Agenda Policies
Learning is a collaborative activity!
• Discussions with others that help you understand
concepts from class are encouraged
Course overview Getting started with C
• Introductions • History of C But programming assignments are graded!
• Course goals • Building and running C • Everything that gets submitted for a grade
• Resources programs must be exclusively your own work
• Grading • Characteristics of C • Don’t look at code from someone else, the web,
• Policies • C details (if time) Github, etc. – see the course “Policies” web page
• Schedule • Don’t reveal your code or design decisions to anyone except
course staff – see the course “Policies” web page
4
9/12/19
Course Schedule
27 28
29 30
5
9/12/19
31 32
33 34
MyProg.class
(bytecode)
35 36
6
9/12/19
37 38
Java C
Portability + - A.
Efficiency - +
Safety + - B.
C.
41
7
9/12/19
Course overview Getting started with C Remaining slides provide some details
• Introductions • History of C
• Course goals • Building and running C
• Resources programs
• Grading • Characteristics of C Use for future reference
• Policies • C details (if time)
• Schedule
Slides covered now, as time allows…
43 44
45 46
=, +=, -=, *=, /=, %=, =, +=, -=, *=, /=, %=,
Assignment ops <<=, >>=, >>>=, &=, ^=, |= <<=, >>=, &=, ^=, |=
8
9/12/19
* Essentially the same in the two languages * Essentially the same in the two languages
49 50
Summary Summary
53 54
9
9/12/19
Getting Started
55
10