CS 140e. Opera&ng Systems from the Ground Up

Size: px
Start display at page:

Download "CS 140e. Opera&ng Systems from the Ground Up"

Transcription

1 CS 140e Opera&ng Systems from the Ground Up

2 CS 140e Goals Learn OS fundamentals. Disks, File systems, I/O Threads & Processes Scheduling Virtual Memory Protection & Security Interrupts Concurrency & Synchronization Build an OS from scratch. Learn embedded development fundamentals. Write low-level embedded sobware and drivers.

3 About CS 140e: Why? Brand new Opera&ng Systems course! All course material is new. Not based off any existing course. expect rough edges. Everything is real. No virtual machines. All software runs on Raspberry Pi 3. A bofom-up, from scratch approach. You write vast majority of software. A modern approach. Multicore, 64-bit ARMv8 platform. Modern programming languages and tools.

4 About CS 140e: Why?

5 Who We Are Jennifer Lin Your TA!

6 Who We Are Dawson Engler Professor, Instructor

7 Who We Are Sergio Benitez Ph.D., Instructor

8 Who You Are Have you implemented any opera1ng system mechanisms such as virtual memory support, processes, or threads? 4% 4% 43% 50% Yes, Many Yes, Several Yes, A Few No

9 Who You Are Have you implemented any bare metal so>ware such as bootloaders or device drivers? 4% 11% 71% 14% Yes, Many Yes, Several Yes, A Few No

10 Who You Are Do you have any experience with embedded so>ware development? 14% 32% 11% Yes, A Lot Yes, Some Yes, A Little No 43%

11 Administrivia Lectures Mondays and Wednesday, 3:00pm - 4:20pm ( ) Focus on theoretical/conceptual OS concepts Labs (op&onal but encouraged) Mondays and Wednesday, 5:30pm - 6:30pm (Gates 463a) Focus on assignments. Course Website: hfps://cs140e.stanford.edu News, assignments, policies, etc. Still a work in progress. Q&A on Piazza (see course website for link) Office Hours TBA.

12 Assignments and Exams Midterm and Final Exam Focus primarily on lecture material. Open notes. Anything written/printed is allowed. 5 Heavy (!!) Programming Assignments Budget about hours per week per assignment. First assignment out on Wednesday. Writing component: answer questions. Individual, but collaboration on ideas is encouraged. All code must be your own. Please don t cheat. Start early. Don t procrastinate! Late Policy: 100 penalized hours per assignment Does not apply to last assignment. Score capped at max(0, n)% for n hours late

13 Assignment Schedule Assignment 0: Ge^ng Started Set-up Raspberry Pi. Write first program. Out on Wednesday. Due Monday. Assignment 1: The Shell Write a bash-like shell that runs on your machine and Pi. Write a shell command that loads program over UART: bootloader. Assignment 2: File System Write SD card driver and FAT32 file system. Assignment 3: Spawn Load and execute programs from SD card in separate processes. Assignment 4: Preemp&ve Mul&core Mul&tasking Run multiple programs at once on multiple cores.

14 Grading Grading Breakdown 55% assignments 20% midterm 25% final exam (+/-) 5% participation We hope to gives lots of As!

15 Who You Are In which programming languages do you feel comfortable and confident wri1ng so>ware? C, C++, Java, Python, JavaScript

16

17 Rust! In which programming languages do you feel comfortable and confident wri1ng so>ware? C, C++, Java, Python, JavaScript

18 Rust! Memory-safe without a GC. No data races, guaranteed! Minimal runtime. Static, strong types. Package manager.

19 C: Undefined Behavior int main(int argc, char **argv) { unsigned long a[1]; a[2] = 0x7ffff7b36cebUL; return 0;

20 C: Undefined Behavior stack int main(int argc, char **argv) { unsigned long a[1]; a[2] = 0x7ffff7b36cebUL; return 0; ret sp a[0] addresses

21 C: Undefined Behavior stack int main(int argc, char **argv) { unsigned long a[1]; a[2] = 0x7ffff7b36cebUL; return 0; ret 0x7ffff7.. sp a[0] addresses

22 C: Undefined Behavior stack int main(int argc, char **argv) { unsigned long a[1]; a[2] = 0x7ffff7b36cebUL; return 0; ret 0x7ffff7.. sp a[0] addresses undef: Error:.netrc file is readable by others. undef: Remove password or make file unreadable by others.

23 Aliasing is Hard! int main() { std::vector<std::string> v; v.push_back("hello, "); std::string &x = v[0]; v.push_back(" world!"); std::cout << x; Rusty Types for Solid Safety (PLAS 16)

24 Aliasing is Hard! int main() { std::vector<std::string> v; v.push_back("hello, "); v std::string &x = v[0]; v[0] v.push_back(" world!"); std::cout << x; Rusty Types for Solid Safety (PLAS 16)

25 Aliasing is Hard! int main() { std::vector<std::string> v; v.push_back("hello, "); v std::string &x = v[0]; v[0] v.push_back(" world!"); x std::cout << x; Rusty Types for Solid Safety (PLAS 16)

26 Aliasing is Hard! int main() { std::vector<std::string> v; v.push_back("hello, "); v std::string &x = v[0]; v[0] v.push_back(" world!"); x std::cout << x; Rusty Types for Solid Safety (PLAS 16)

27 Aliasing is Hard! int main() { std::vector<std::string> v; v.push_back("hello, "); v std::string &x = v[0]; v[0] v.push_back(" world!"); x std::cout << x; Rusty Types for Solid Safety (PLAS 16)

28 Aliasing is Hard! int main() { std::vector<std::string> v; v.push_back("hello, "); v std::string &x = v[0]; v[0] v[0] v[1] v.push_back(" world!"); x std::cout << x; Rusty Types for Solid Safety (PLAS 16)

29 Aliasing is Hard! int main() { std::vector<std::string> v; v.push_back("hello, "); v std::string &x = v[0]; v[0] v[0] v[1] v.push_back(" world!"); x std::cout << x; Rusty Types for Solid Safety (PLAS 16)

30 Aliasing is Hard! int main() { std::vector<std::string> v; v.push_back("hello, "); v std::string &x = v[0]; v[0] v.push_back(" world!"); x std::cout << x; Rusty Types for Solid Safety (PLAS 16)

31 Restricted Aliasing C++ int main() { vector<string> v; v.push_back("hello, "); string &x = v[0]; v.push_back(" world!"); Rust fn main() { let mut v = Vec::new(); v.push("hello, "); let x = &v[0]; v.push(" world!"); cout << x; println!("{", x); Rusty Types for Solid Safety (PLAS 16)

32 Restricted Aliasing fn main() { let mut v = Vec::new(); v.push("hello, "); v let x = &v[0]; v[0] v.push(" world!"); println!("{", x); Rusty Types for Solid Safety (PLAS 16)

33 Restricted Aliasing fn main() { let mut v = Vec::new(); v.push("hello, "); v let x = &v[0]; v[0] v.push(" world!"); x println!("{", x); Rusty Types for Solid Safety (PLAS 16)

34 Restricted Aliasing fn main() { let mut v = Vec::new(); v.push("hello, "); v let x = &v[0]; v[0] v.push(" world!"); x println!("{", x); Rusty Types for Solid Safety (PLAS 16)

35 Restricted Aliasing fn main() { let mut v = Vec::new(); v.push("hello, "); let x = &v[0]; v.push(" world!"); v[0] breaks invariant => statically disallowed v x println!("{", x); Rusty Types for Solid Safety (PLAS 16)

CS 326: Operating Systems. Lecture 1

CS 326: Operating Systems. Lecture 1 CS 326: Operating Systems Lecture 1 Welcome to CS 326! Glad to have you all in class! Lecture Information: Time: T, Th 9:55 11:40am Lab: M 4:45 6:20pm Room: LS G12 Course website: http://www.cs.usfca.edu/~mmalensek/cs326

More information

CS 161 Computer Security

CS 161 Computer Security Raluca Popa Spring 2018 CS 161 Computer Security Homework 1 Due: Monday, January 29th, at 11:59pm Instructions. This homework is due Monday, January 29th, at 11:59pm. No late homeworks will be accepted

More information

CS 241 Data Organization. August 21, 2018

CS 241 Data Organization. August 21, 2018 CS 241 Data Organization August 21, 2018 Contact Info Instructor: Dr. Marie Vasek Contact: Private message me on the course Piazza page. Office: Room 2120 of Farris Web site: www.cs.unm.edu/~vasek/cs241/

More information

Introduction to Data Structures

Introduction to Data Structures 15-121 Introduction to Data Structures Lecture #1 Introduction 28 August 2019 Margaret Reid-Miller Today Course Administration Overview of Course A (very basic) Java introduction Course website: www.cs.cmu.edu/~mrmiller/15-121

More information

Aaron Turon! Mozilla Research

Aaron Turon! Mozilla Research Aaron Turon Mozilla Research C/C++ ML/Haskell Rust Safe systems programming Why Mozilla? Browsers need control. Browsers need safety. Servo: Next-generation browser built in Rust. C++ What is control?

More information

CS120 Computer Science I. Instructor: Jia Song

CS120 Computer Science I. Instructor: Jia Song CS120 Computer Science I Instructor: Jia Song Instructor Contact Information Instructor: Dr. Jia Song Email: jsong@uidaho.edu (Preferred) Phone: (208) 885-1710 Office: JEB 240 (CSDS Security Lab) JEB 340

More information

COSE212: Programming Languages. Lecture 0 Course Overview

COSE212: Programming Languages. Lecture 0 Course Overview COSE212: Programming Languages Lecture 0 Course Overview Hakjoo Oh 2017 Fall Hakjoo Oh COSE212 2017 Fall, Lecture 0 September 4, 2017 1 / 9 Basic nformation nstructor: Hakjoo Oh TAs: Position: Assistant

More information

Overloading Functions & Command Line Use in C++ CS 16: Solving Problems with Computers I Lecture #6

Overloading Functions & Command Line Use in C++ CS 16: Solving Problems with Computers I Lecture #6 Overloading Functions & Command Line Use in C++ CS 16: Solving Problems with Computers I Lecture #6 Ziad Matni Dept. of Computer Science, UCSB A reminder about Labs Announcements Please make sure you READ

More information

Welcome to CSE 160! Introduction to parallel computation. Scott B. Baden

Welcome to CSE 160! Introduction to parallel computation. Scott B. Baden Welcome to CSE 160! Introduction to parallel computation Scott B. Baden Welcome to Parallel Computation! Your instructor is Scott B. Baden 4 Office hours week 1: Thursday after class 4 baden+160@eng.ucsd.edu

More information

About Me. Office Hours: Tu 4-5, W 1-2, or by appointment Office: 346A IST Bldg

About Me. Office Hours: Tu 4-5, W 1-2, or by appointment Office: 346A IST Bldg 1 About Me Trent Jaeger (PhD, University of Michigan) Associate Professor, CSE -- after 9 years at IBM Research Research: Operating System Security Example Projects L4 Microkernel -- minimal, high performance

More information

Welcome! COMS 4118 Opera3ng Systems I Spring 2018

Welcome! COMS 4118 Opera3ng Systems I Spring 2018 Welcome! COMS 4118 Opera3ng Systems I Spring 2018 Teaching staff 5 Teaching Assistants (TAs) John Hui jzh2106@columbia.edu (Head TA) JiaYan Hu jh3541@columbia.edu Mert Ussakli mu2228@columbia.edu Kundan

More information

CMSC433 - Programming Language Technologies and Paradigms. Introduction

CMSC433 - Programming Language Technologies and Paradigms. Introduction CMSC433 - Programming Language Technologies and Paradigms Introduction Course Goal To help you become a better programmer Introduce advanced programming technologies Deconstruct relevant programming problems

More information

Welcome to Computer Organization and Design Logic CS 64: Computer Organization and Design Logic Lecture #1 Winter 2018

Welcome to Computer Organization and Design Logic CS 64: Computer Organization and Design Logic Lecture #1 Winter 2018 Welcome to Computer Organization and Design Logic CS 64: Computer Organization and Design Logic Lecture #1 Winter 2018 Ziad Matni Dept. of Computer Science, UCSB A Word About Registration for CS64 FOR

More information

CMPUT 391 Database Management Systems. Fall Semester 2006, Section A1, Dr. Jörg Sander. Introduction

CMPUT 391 Database Management Systems. Fall Semester 2006, Section A1, Dr. Jörg Sander. Introduction CMPUT 391 Database Management Systems Fall Semester 2006, Section A1, Dr. Jörg Sander Introduction University of Alberta 1 Objectives of Lecture 1 Get a rough initial idea about the content of the course:

More information

CS240: Programming in C

CS240: Programming in C CS240: Programming in C Lecture 1: Class overview. Cristina Nita-Rotaru Lecture 1/ Fall 2013 1 WELCOME to CS240 Cristina Nita-Rotaru Lecture 1/ Fall 2013 2 240 Team Instructor: Cristina Nita-Rotaru Special

More information

Today. An Animated Introduction to Programming. Prerequisites. Computer programming

Today. An Animated Introduction to Programming. Prerequisites. Computer programming Today 1 2 3 4 Computer programming What is this course about? We re making several assumptions about you as a student. In particular, we assume that you have: Never taken a programming course before. Have

More information

Syllabus CSCI 405 Operating Systems Fall 2018

Syllabus CSCI 405 Operating Systems Fall 2018 Syllabus CSCI 405 Operating Systems Fall 2018 1.0 General Information Class Time: Monday/Wednesday/Friday 11:00 AM - 11:50 AM Class Location: 317 Thompson Instructor: Dr. Deepti Joshi; Office: 224 Thompson;

More information

CS 564: DATABASE MANAGEMENT SYSTEMS. Spring 2018

CS 564: DATABASE MANAGEMENT SYSTEMS. Spring 2018 CS 564: DATABASE MANAGEMENT SYSTEMS Spring 2018 DATA IS EVERYWHERE! Our world is increasingly data driven scientific discoveries online services (social networks, online retailers) decision making Databases

More information

CIS*1500 Introduction to Programming

CIS*1500 Introduction to Programming CIS*1500 Introduction to Programming CIS*1500 Learning to program The basic constructs of programming Programming in the C language Solving real problems Not just about coding! About me??? Some basic things...

More information

CSC209. Software Tools and Systems Programming. https://mcs.utm.utoronto.ca/~209

CSC209. Software Tools and Systems Programming. https://mcs.utm.utoronto.ca/~209 CSC209 Software Tools and Systems Programming https://mcs.utm.utoronto.ca/~209 What is this Course About? Software Tools Using them Building them Systems Programming Quirks of C The file system System

More information

CS 241 Data Organization using C

CS 241 Data Organization using C CS 241 Data Organization using C Fall 2018 Instructor Name: Dr. Marie Vasek Contact: Private message me on the course Piazza page. Office: Farris 2120 Office Hours: Tuesday 2-4pm and Thursday 9:30-11am

More information

TA hours and labs start today. First lab is out and due next Wednesday, 1/31. Getting started lab is also out

TA hours and labs start today. First lab is out and due next Wednesday, 1/31. Getting started lab is also out Announcements TA hours and labs start today. First lab is out and due next Wednesday, 1/31. Getting started lab is also out Get you setup for project/lab work. We ll check it with the first lab. Stars

More information

Welcome to Solving Problems with Computers I

Welcome to Solving Problems with Computers I Welcome to Solving Problems with Computers I CS 16: Solving Problems with Computers I Lecture #1 Ziad Matni Dept. of Computer Science, UCSB Image from agorolabs on slideshare.com A Word About Registration

More information

TTh 9.25 AM AM Strain 322

TTh 9.25 AM AM Strain 322 TTh 9.25 AM - 10.40 AM Strain 322 1 Questions v What is your definition of client/server programming? Be specific. v What would you like to learn in this course? 2 Aims and Objectives v Or, what will you

More information

Operating Systems CMPSC 473. Introduction January 15, Lecture 1 Instructor: Trent Jaeger

Operating Systems CMPSC 473. Introduction January 15, Lecture 1 Instructor: Trent Jaeger Operating Systems CMPSC 473 Introduction January 15, 2008 - Lecture 1 Instructor: Trent Jaeger About Me Trent Jaeger (PhD, University of Michigan) Associate Professor, CSE -- after 9 years at IBM Research

More information

CPS 310 first midterm exam, 10/6/2014

CPS 310 first midterm exam, 10/6/2014 CPS 310 first midterm exam, 10/6/2014 Your name please: Part 1. More fun with fork and exec* What is the output generated by this program? Please assume that each executed print statement completes, e.g.,

More information

CS 4349 Lecture August 21st, 2017

CS 4349 Lecture August 21st, 2017 CS 4349 Lecture August 21st, 2017 Main topics for #lecture include #administrivia, #algorithms, #asymptotic_notation. Welcome and Administrivia Hi, I m Kyle! Welcome to CS 4349. This a class about algorithms.

More information

Operating Systems, Spring 2015 Course Syllabus

Operating Systems, Spring 2015 Course Syllabus Operating Systems, Spring 2015 Course Syllabus Instructor: Dr. Rafael Ubal Email: ubal@ece.neu.edu Office: 140 The Fenway, 3rd floor (see detailed directions below) Phone: 617-373-3895 Office hours: Wednesday

More information

EECS 482 Introduction to Operating Systems

EECS 482 Introduction to Operating Systems EECS 482 Introduction to Operating Systems Winter 2018 Baris Kasikci barisk@umich.edu (Thanks, Harsha Madhyastha for the slides!) 1 About Me Prof. Kasikci (Prof. K.), Prof. Baris (Prof. Barish) Assistant

More information

CSE 333 Lecture smart pointers

CSE 333 Lecture smart pointers CSE 333 Lecture 14 -- smart pointers Hal Perkins Department of Computer Science & Engineering University of Washington Administrivia Midterm Friday - Review in sections this week - Closed book; topic list

More information

WELCOME TO CS 16! Problem Solving with Computers-I

WELCOME TO CS 16! Problem Solving with Computers-I WELCOME TO CS 16! Problem Solving with Computers-I 2 Instructor/TAs Lawton Nichols I m just a PhD Student, so you don t have to call me professor Office hours: Tuesday, Thursday: 3:30pm 4:30pm in the TA

More information

CS 3813/718 Fall Python Programming. Professor Liang Huang.

CS 3813/718 Fall Python Programming. Professor Liang Huang. CS 3813/718 Fall 2012 Python Programming Professor Liang Huang huang@cs.qc.cuny.edu http://vision.cs.qc.cuny.edu/huang/python-2012f/ Logistics Lectures: TTh 9:25-10:40 am SB B-141 Personnel Instructor

More information

Computers and programming languages introduction

Computers and programming languages introduction Computers and programming languages introduction Eugeniy E. Mikhailov The College of William & Mary Lecture 01 Eugeniy Mikhailov (W&M) Practical Computing Lecture 01 1 / 19 Class goals and structure Primary

More information

Memory Safety (cont d) Software Security

Memory Safety (cont d) Software Security Memory Safety (cont d) Software Security CS 161: Computer Security Prof. Raluca Ada Popa January 17, 2016 Some slides credit to David Wagner and Nick Weaver Announcements Discussion sections and office

More information

CS61C Machine Structures. Lecture 3 Introduction to the C Programming Language. 1/23/2006 John Wawrzynek. www-inst.eecs.berkeley.

CS61C Machine Structures. Lecture 3 Introduction to the C Programming Language. 1/23/2006 John Wawrzynek. www-inst.eecs.berkeley. CS61C Machine Structures Lecture 3 Introduction to the C Programming Language 1/23/2006 John Wawrzynek (www.cs.berkeley.edu/~johnw) www-inst.eecs.berkeley.edu/~cs61c/ CS 61C L03 Introduction to C (1) Administrivia

More information

CPSC 213. Introduction to Computer Systems. Introduction. Unit 0

CPSC 213. Introduction to Computer Systems. Introduction. Unit 0 CPSC 213 Introduction to Computer Systems Unit Introduction 1 Overview of the course Hardware context of a single executing program hardware context is CPU and Main Memory develop CPU architecture to implement

More information

Operating Systems CS 571

Operating Systems CS 571 Operating Systems CS 571 Prof. Sanjeev Setia Fall 2003 1 Prerequisites Overview Computer Architecture (CS 365) Data structures and programming (CS 310) (C++/C/Java progamming) Textbooks Modern Operating

More information

Call-by-Type Functions in C++ Command-Line Arguments in C++ CS 16: Solving Problems with Computers I Lecture #5

Call-by-Type Functions in C++ Command-Line Arguments in C++ CS 16: Solving Problems with Computers I Lecture #5 Call-by-Type Functions in C++ Command-Line Arguments in C++ CS 16: Solving Problems with Computers I Lecture #5 Ziad Matni Dept. of Computer Science, UCSB Administrative CHANGED T.A. OFFICE/OPEN LAB HOURS!

More information

Recitation 14: Proxy Lab Part 2

Recitation 14: Proxy Lab Part 2 Recitation 14: Proxy Lab Part 2 Instructor: TA(s) 1 Outline Proxylab Threading Threads and Synchronization 2 ProxyLab ProxyLab is due in 1 week. No grace days Late days allowed (-15%) Make sure to submit

More information

Alterna(ve Architectures

Alterna(ve Architectures Alterna(ve Architectures COMS W4118 Prof. Kaustubh R. Joshi krj@cs.columbia.edu hep://www.cs.columbia.edu/~krj/os References: Opera(ng Systems Concepts (9e), Linux Kernel Development, previous W4118s Copyright

More information

CSC209. Software Tools and Systems Programming. https://mcs.utm.utoronto.ca/~209

CSC209. Software Tools and Systems Programming. https://mcs.utm.utoronto.ca/~209 CSC209 Software Tools and Systems Programming https://mcs.utm.utoronto.ca/~209 What is this Course About? Software Tools Using them Building them Systems Programming Quirks of C The file system System

More information

Computer Science 210: Data Structures

Computer Science 210: Data Structures Computer Science 210: Data Structures Welcome to Data Structures! Data structures are fundamental building blocks of algorithms and programs Csci 210 is a study of data structures design efficiency implementation

More information

CS61C Machine Structures. Lecture 1 Introduction. 8/27/2006 John Wawrzynek (Warzneck)

CS61C Machine Structures. Lecture 1 Introduction. 8/27/2006 John Wawrzynek (Warzneck) CS61C Machine Structures Lecture 1 Introduction 8/27/2006 John Wawrzynek (Warzneck) (http://www.cs.berkeley.edu/~johnw/) http://www-inst.eecs.berkeley.edu/~cs61c/ CS 61C L01 Introduction (1) What are Machine

More information

CSCC69H3. Operating Systems Sina Meraji U of T

CSCC69H3. Operating Systems Sina Meraji U of T CSCC69H3 Operating Systems Sina Meraji U of T Khrabrov Alexey Khrabrov Alexey Xu Talia Logistics Instructor: Sina Meraji Email: sina.mrj@gmail.com Office hours: Thu 16-17 pm(by appointment) TAs: KC, kc.udonsi@mail.utoronto.ca

More information

CSE 333 Lecture smart pointers

CSE 333 Lecture smart pointers CSE 333 Lecture 14 -- smart pointers Hal Perkins Paul G. Allen School of Computer Science & Engineering University of Washington Administrivia New exercise out today, due Wednesday morning Exam Friday

More information

CSC 443: Web Programming

CSC 443: Web Programming 1 CSC 443: Web Programming Haidar Harmanani Department of Computer Science and Mathematics Lebanese American University Byblos, 1401 2010 Lebanon Today 2 Course information Course Objectives A Tiny assignment

More information

CSci 5103 Operating Systems. Jon Weissman. Administrivia

CSci 5103 Operating Systems. Jon Weissman. Administrivia CSci 5103 Operating Systems Jon Weissman Administrivia Greetings Welcome to CSci 5103! me: Jon Weissman, Professor CS office hours M 1-2pm, 4-225F KH or when I am around interests: distributed and parallel

More information

CS 318 Principles of Operating Systems

CS 318 Principles of Operating Systems CS 318 Principles of Operating Systems Fall 2017 Lecture 5: Thread Ryan Huang Administrivia HW1 solution released on Piazza resources Lab 0 grading - In progress - Cheating policy Lab 1 review session

More information

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1, 2, and 3, Spring 2018

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1, 2, and 3, Spring 2018 San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1, 2, and 3, Spring 2018 Course and Contact Information Instructor: Suneuy Kim Office

More information

CS 3110 Lecture 1 Course Overview

CS 3110 Lecture 1 Course Overview CS 3110 Lecture 1 Course Overview Ramin Zabih Cornell University CS Fall 2010 www.cs.cornell.edu/courses/cs3110 Course staff Professor: Ramin Zabih Graduate TA s: Joyce Chen, Brian Liu, Dane Wallinga Undergraduate

More information

Introduction to Information Technology ITP 101x (4 Units)

Introduction to Information Technology ITP 101x (4 Units) Objective Concepts Introduction to Information Technology ITP 101x (4 Units) Upon completing this course, students will: - Understand the fundamentals of information technology - Learn core concepts of

More information

CSCI 136 Data Structures & Advanced Programming. Fall 2018 Instructors Bill Lenhart & Bill Jannen

CSCI 136 Data Structures & Advanced Programming. Fall 2018 Instructors Bill Lenhart & Bill Jannen CSCI 136 Data Structures & Advanced Programming Fall 2018 Instructors Bill Lenhart & Bill Jannen Administrative Details Class roster: Who s here? And who s trying to get in? Handout: Class syllabus Lecture

More information

BOOLEAN EXPRESSIONS CONTROL FLOW (IF-ELSE) INPUT/OUTPUT. Problem Solving with Computers-I

BOOLEAN EXPRESSIONS CONTROL FLOW (IF-ELSE) INPUT/OUTPUT. Problem Solving with Computers-I BOOLEAN EXPRESSIONS CONTROL FLOW (IF-ELSE) INPUT/OUTPUT Problem Solving with Computers-I Announcements HW02: Complete (individually)using dark pencil or pen, turn in during lab section next Wednesday Please

More information

CS 61: Systems programming and machine organization. Prof. Stephen Chong November 15, 2010

CS 61: Systems programming and machine organization. Prof. Stephen Chong November 15, 2010 CS 61: Systems programming and machine organization Prof. Stephen Chong November 15, 2010 CS 61 Fall 2011, Tuesdays and Thursdays 2:30pm 4pm Prereqs: CS 50 (or C programming experience) An introduction

More information

C Compilation Model. Comp-206 : Introduction to Software Systems Lecture 9. Alexandre Denault Computer Science McGill University Fall 2006

C Compilation Model. Comp-206 : Introduction to Software Systems Lecture 9. Alexandre Denault Computer Science McGill University Fall 2006 C Compilation Model Comp-206 : Introduction to Software Systems Lecture 9 Alexandre Denault Computer Science McGill University Fall 2006 Midterm Date: Thursday, October 19th, 2006 Time: from 16h00 to 17h30

More information

Distributed Systems. COS 418: Distributed Systems Lecture 1. Mike Freedman. Backrub (Google) Google The Cloud is not amorphous

Distributed Systems. COS 418: Distributed Systems Lecture 1. Mike Freedman. Backrub (Google) Google The Cloud is not amorphous Distributed Systems COS 418: Distributed Systems Lecture 1 Mike Freedman Backrub (Google) 1997 2 Google 2012 The Cloud is not amorphous 3 4 1 Google Microsoft Facebook 5 6 7 8 2 100,000s of physical servers

More information

CS 253: Intro to Systems Programming 1/21

CS 253: Intro to Systems Programming 1/21 1/21 Topics Intro to Team-Based Learning (TBL) Syllabus and class logistics What is Systems? 2/21 Team-Based Learning Evidence-based instructional practice proven to increase student motivation and comprehension.

More information

CS 0449 Intro to Systems Software Fall Term: 2181

CS 0449 Intro to Systems Software Fall Term: 2181 CS 0449 Intro to Systems Software Fall Term: 2181 Class Recitation Recitation Recitation Time: 11:00am 12:15pm 03:00pm 03:50pm 10:00am 10:50am 09:00am 09:50am Days: TH T W F Number 19730 20024 19731 27127

More information

CS111: Intro to Computer Science

CS111: Intro to Computer Science CS111: Intro to Computer Science Redesigned last semester to use Java, an object-oriented programming language CS111 is expected to be difficult and challenging Grades last semester (of students who took

More information

CS 3305 Intro to Threads. Lecture 6

CS 3305 Intro to Threads. Lecture 6 CS 3305 Intro to Threads Lecture 6 Introduction Multiple applications run concurrently! This means that there are multiple processes running on a computer Introduction Applications often need to perform

More information

CS 152 Computer Architecture and Engineering Lecture 1 Single Cycle Design

CS 152 Computer Architecture and Engineering Lecture 1 Single Cycle Design CS 152 Computer Architecture and Engineering Lecture 1 Single Cycle Design 2014-1-21 John Lazzaro (not a prof - John is always OK) TA: Eric Love www-inst.eecs.berkeley.edu/~cs152/ Play: 1 Today s lecture

More information

Introduction to Computer Systems

Introduction to Computer Systems Introduction to Computer Systems Web Page http://pdinda.org/ics Syllabus See the web page for more information. Class discussions are on Piazza We will make only minimal use of Canvas (grade reports, perhaps

More information

CS2013 Course Syllabus Spring 2017 Lecture: Friday 8:00 A.M. 9:40 A.M. Lab: Friday 9:40 A.M. 12:00 Noon

CS2013 Course Syllabus Spring 2017 Lecture: Friday 8:00 A.M. 9:40 A.M. Lab: Friday 9:40 A.M. 12:00 Noon CS2013 Course Syllabus Spring 2017 Lecture: Friday 8:00 A.M. 9:40 A.M. Lab: Friday 9:40 A.M. 12:00 Noon Instructor Course name Credits Contact hours Text book Course Information Course Goals Jungsoo (Sue)

More information

Distributed Systems Intro and Course Overview

Distributed Systems Intro and Course Overview Distributed Systems Intro and Course Overview COS 418: Distributed Systems Lecture 1 Wyatt Lloyd Distributed Systems, What? 1) Multiple computers 2) Connected by a network 3) Doing something together Distributed

More information

ECE Object-Oriented Programming using C++ and Java

ECE Object-Oriented Programming using C++ and Java 1 ECE 30862 - Object-Oriented Programming using C++ and Java Instructor Information Name: Sam Midkiff Website: https://engineering.purdue.edu/~smidkiff Office: EE 310 Office hours: Tuesday, 2:30 to 4:00

More information

CS31 Discussion 1E. Jie(Jay) Wang Week1 Sept. 30

CS31 Discussion 1E. Jie(Jay) Wang Week1 Sept. 30 CS31 Discussion 1E Jie(Jay) Wang Week1 Sept. 30 About me Jie Wang E-mail: holawj@gmail.com Office hour: Wednesday 3:30 5:30 BH2432 Thursday 12:30 1:30 BH2432 Slides of discussion will be uploaded to the

More information

CPSC 213. Introduction to Computer Systems. About the Course. Course Policies. Reading. Introduction. Unit 0

CPSC 213. Introduction to Computer Systems. About the Course. Course Policies. Reading. Introduction. Unit 0 About the Course it's all on the web page... http://www.ugrad.cs.ubc.ca/~cs213/winter1t1/ - news, admin details, schedule and readings CPSC 213 - lecture slides (always posted before class) - 213 Companion

More information

San José State University Department of Computer Science CS151, Section 04 Object Oriented Design Spring 2018

San José State University Department of Computer Science CS151, Section 04 Object Oriented Design Spring 2018 San José State University Department of Computer Science CS151, Section 04 Object Oriented Design Spring 2018 Course and Contact Information Instructor: Vidya Rangasayee Office Location: MH 213 Telephone:

More information

CS 378 (Spring 2003) Linux Kernel Programming. Yongguang Zhang. Copyright 2003, Yongguang Zhang

CS 378 (Spring 2003) Linux Kernel Programming. Yongguang Zhang. Copyright 2003, Yongguang Zhang Department of Computer Sciences THE UNIVERSITY OF TEXAS AT AUSTIN CS 378 (Spring 2003) Linux Kernel Programming Yongguang Zhang (ygz@cs.utexas.edu) Copyright 2003, Yongguang Zhang Read Me First Everything

More information

Physics 2660: Fundamentals of Scientific Computing. Lecture 7 Instructor: Prof. Chris Neu

Physics 2660: Fundamentals of Scientific Computing. Lecture 7 Instructor: Prof. Chris Neu Physics 2660: Fundamentals of Scientific Computing Lecture 7 Instructor: Prof. Chris Neu (chris.neu@virginia.edu) Reminder HW06 due Thursday 15 March electronically by noon HW grades are starting to appear!

More information

Menu. Class 1: Introduction. Staff. Course Structure and Expectations. Contacting Us. Contacting You

Menu. Class 1: Introduction. Staff. Course Structure and Expectations. Contacting Us. Contacting You Fall 2006 Class 1: Introduction CS333: Computer University of Virginia Computer Science Michele Co Menu Course Structure Course Goals First Assignment Course Admin (add class/change section) 2 Course Structure

More information

Languages and Compilers

Languages and Compilers Languages and Compilers Nate Nystrom Amanj Sherwany usi-compilers@googlegroups.com http://usi-pl.github.io/lc/sp2015 University of Lugano About me 2009 2010 Assistant Professor 1998 1999 compiler engineer

More information

CS457/557 Functional Languages

CS457/557 Functional Languages CS457/557 Functional Languages Spring 2018 Lecture 1: Course Introduction Andrew Tolmach Portland State University (with thanks to Mark P. Jones) 1 Goals of this course Introduce the beautiful ideas of

More information

CMPS 182: Introduction to Database Management Systems. Instructor: David Martin TA: Avi Kaushik. Syllabus

CMPS 182: Introduction to Database Management Systems. Instructor: David Martin TA: Avi Kaushik. Syllabus CMPS 182: Introduction to Database Management Systems Instructor: David Martin TA: Avi Kaushik Syllabus Course Content Relational database features & operations Data definition, queries and update Indexes,

More information

CS510 Operating System Foundations. Jonathan Walpole

CS510 Operating System Foundations. Jonathan Walpole CS510 Operating System Foundations Jonathan Walpole Course Overview Who am I? Jonathan Walpole Professor at PSU since 2004, OGI 1989 2004 Research Interests: Operating System Design, Parallel and Distributed

More information

CPSC 457: Principles of Operating Systems Assignment 2 due June 9, 2015

CPSC 457: Principles of Operating Systems Assignment 2 due June 9, 2015 CPSC 457: Principles of Operating Systems Assignment 2 due June 9, 2015 Assignment Objectives This is an individual assignment. You must submit your own work. This assignment has two objectives: (1) reviewing

More information

Introduction to Computer Systems

Introduction to Computer Systems Introduction to Computer Systems Today: Welcome to EECS 213 Lecture topics and assignments Next time: Bits & bytes and some Boolean algebra Fabián E. Bustamante, Spring 2010 Welcome to Intro. to Computer

More information

Computer Systems Organization

Computer Systems Organization Carnegie Mellon Computer Systems Organization Shuai Mu Slides are based on Tiger Wang s and Jinyang Li s class Why study CSO? The path of your next few years graduation interview programmer The path of

More information

CSC369 Lecture 5. Larry Zhang, October 19,2015

CSC369 Lecture 5. Larry Zhang, October 19,2015 CSC369 Lecture 5 Larry Zhang, October 19,2015 1 Describe your A1 experience using the feedback form 2 Announcements Assignment 2 out later this week, due November 11 Midterm next week in lecture: 9:10AM

More information

Chris Riesbeck, Fall Introduction to Computer Systems

Chris Riesbeck, Fall Introduction to Computer Systems Chris Riesbeck, Fall 2011 Introduction to Computer Systems Welcome to Intro. to Computer Systems Everything you need to know http://www.cs.northwestern.edu/academics/courses/213/ Instructor: Chris Riesbeck

More information

SWE3004: Operating Systems. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

SWE3004: Operating Systems. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University SWE3004: Operating Systems Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Introduction Schedule 16:30 17:45 (Monday), 13:30 14:45 (Wednesday) Lecture

More information

CSC 111 Introduction to Computer Science (Section C)

CSC 111 Introduction to Computer Science (Section C) CSC 111 Introduction to Computer Science (Section C) Course Description: (4h) Lecture and laboratory. Rigorous introduction to the process of algorithmic problem solving and programming in a modern programming

More information

Lecture 6: Buffer Overflow. CS 436/636/736 Spring Nitesh Saxena

Lecture 6: Buffer Overflow. CS 436/636/736 Spring Nitesh Saxena Lecture 6: Buffer Overflow CS 436/636/736 Spring 2016 Nitesh Saxena *Adopted from a previous lecture by Aleph One (Smashing the Stack for Fun and Profit) HW3 submitted Course Admin Being graded Solution

More information

Lecture 1: CSE 373. Data Structures and Algorithms

Lecture 1: CSE 373. Data Structures and Algorithms Lecture 1: CSE 373 Data Structures and Algorithms Thanks to Kasey Champion, Ben Jones, Adam Blank, Michael Lee, Evan McCarty, Whitaker Brand, Stuart Reges, Zora Fung, Justin Hsia, and many others for sample

More information

COMP322 - Introduction to C++ Lecture 01 - Introduction

COMP322 - Introduction to C++ Lecture 01 - Introduction COMP322 - Introduction to C++ Lecture 01 - Introduction Robert D. Vincent School of Computer Science 6 January 2010 What this course is Crash course in C++ Only 14 lectures Single-credit course What this

More information

CMPE012 Computer Engineering 12 (and Lab) Computing Systems and Assembly Language Programming. Summer 2009

CMPE012 Computer Engineering 12 (and Lab) Computing Systems and Assembly Language Programming. Summer 2009 CMPE012 Computer Engineering 12 (and Lab) Computing Systems and Assembly Language Programming Summer 2009 About these notes Originally by Cyrus Bazeghi Overhauled by Andrea Di Blas Modified by me (Alexandra

More information

San José State University Department of Computer Science CS151, Object Oriented Design, Section 04, Fall, 2016 (42968)

San José State University Department of Computer Science CS151, Object Oriented Design, Section 04, Fall, 2016 (42968) San José State University Department of Computer Science CS151, Object Oriented Design, Section 04, Fall, 2016 (42968) Course and Contact Information Instructor: Office Location: Vidya Rangasayee MH229

More information

CSE 374 Programming Concepts & Tools

CSE 374 Programming Concepts & Tools CSE 374 Programming Concepts & Tools Hal Perkins Fall 2017 Lecture 22 Shared-Memory Concurrency 1 Administrivia HW7 due Thursday night, 11 pm (+ late days if you still have any & want to use them) Course

More information

CSC209H Lecture 1. Dan Zingaro. January 7, 2015

CSC209H Lecture 1. Dan Zingaro. January 7, 2015 CSC209H Lecture 1 Dan Zingaro January 7, 2015 Welcome! Welcome to CSC209 Comments or questions during class? Let me know! Topics: shell and Unix, pipes and filters, C programming, processes, system calls,

More information

CSC 015: FUNDAMENTALS OF COMPUTER SCIENCE I

CSC 015: FUNDAMENTALS OF COMPUTER SCIENCE I CSC 015: FUNDAMENTALS OF COMPUTER SCIENCE I Lecture 1: Class Introduction DR. BO TANG ASSISTANT PROFESSOR HOFSTRA UNIVERSITY 1 9/7/16 CSC15 - Python OUTLINE What is Computer Science? What is this Class

More information

COMP 322: Fundamentals of Parallel Programming

COMP 322: Fundamentals of Parallel Programming COMP 322: Fundamentals of Parallel Programming! Lecture 1: The What and Why of Parallel Programming; Task Creation & Termination (async, finish) Vivek Sarkar Department of Computer Science, Rice University

More information

61A LECTURE 1 FUNCTIONS, VALUES. Steven Tang and Eric Tzeng June 24, 2013

61A LECTURE 1 FUNCTIONS, VALUES. Steven Tang and Eric Tzeng June 24, 2013 61A LECTURE 1 FUNCTIONS, VALUES Steven Tang and Eric Tzeng June 24, 2013 Welcome to CS61A! The Course Staff - Lecturers Steven Tang Graduated L&S CS from Cal Back for a PhD in Education Eric Tzeng Graduated

More information

Advanced Programming Concepts. CIS 15 : Spring 2007

Advanced Programming Concepts. CIS 15 : Spring 2007 Advanced Programming Concepts CIS 15 : Spring 2007 Mondays and Thursdays 12:15 pm to 1:30 pm 232 Ingersoll Extension Instructor: Chipp Jansen (not Tennenbaum as listed) E-mail: chipp@sci.brooklyn.cuny.edu

More information

Valeria Martinovic, 330 Latimer. Concurrent enrollment in Chem 1A or a C- in Chem 1A. Tuesday April 28th - 7:00-9:00pm

Valeria Martinovic, 330 Latimer. Concurrent enrollment in Chem 1A or a C- in Chem 1A. Tuesday April 28th - 7:00-9:00pm Welcome to Chemistry 1AL at UC Berkeley Instructor: Course Information: Valeria Martinovic, valmt_1999@berkeley.edu, 330 Latimer Wednesday Lecture, 6-7 pm in 1 Pimentel Friday Lecture, 12-1 pm in 1 Pimentel

More information

Parameters and Objects

Parameters and Objects Parameters and Objects CS + ENGLISH Enrich your computer science skills with the understanding of human experiences, critical thinking, and creativity taught in English. More info: english.stanford.edu/csenglish

More information

Internet Web Technologies ITP 104 (2 Units)

Internet Web Technologies ITP 104 (2 Units) Internet Web Technologies ITP 104 (2 Units) Spring 2011 Objective This course is intended to teach the basics involved in publishing content on the World Wide Web. This includes the language of the Web

More information

CSC 172 Data Structures and Algorithms. Fall 2017 TuTh 3:25 pm 4:40 pm Aug 30- Dec 22 Hoyt Auditorium

CSC 172 Data Structures and Algorithms. Fall 2017 TuTh 3:25 pm 4:40 pm Aug 30- Dec 22 Hoyt Auditorium CSC 172 Data Structures and Algorithms Fall 2017 TuTh 3:25 pm 4:40 pm Aug 30- Dec 22 Hoyt Auditorium Agenda Administrative aspects Brief overview of the course Hello world in Java CSC 172, Fall 2017, UR

More information

Introduction to Computer Systems

Introduction to Computer Systems CS-213 Introduction to Computer Systems Yan Chen Topics: Staff, text, and policies Lecture topics and assignments Lab rationale CS 213 F 06 Teaching staff Instructor TA Prof. Yan Chen (Thu 2-4pm, Tech

More information

Intensive Introduction to Computer Science. Course Overview Programming in Scratch

Intensive Introduction to Computer Science. Course Overview Programming in Scratch Unit 1, Part 1 Intensive Introduction to Computer Science Course Overview Programming in Scratch Computer Science S-111 Harvard University David G. Sullivan, Ph.D. Welcome to CS S-111! Computer science

More information

CSC 261/461 Database Systems. Fall 2017 MW 12:30 pm 1:45 pm CSB 601

CSC 261/461 Database Systems. Fall 2017 MW 12:30 pm 1:45 pm CSB 601 CSC 261/461 Database Systems Fall 2017 MW 12:30 pm 1:45 pm CSB 601 Agenda Administrative aspects Brief overview of the course Introduction to databases and SQL ADMINISTRATIVE ASPECTS Teaching Staff Instructor:

More information