Principles of Imperative Computation

Slides:



Advertisements
Similar presentations
Lecture 1: Overview CMSC 201 Computer Science 1 (Prof. Chang version)
Advertisements

COMP171 Data Structures and Algorithms Spring 2009.
CMPT 225 Data Structures and Programming. Course information Lecturer: Jan Manuch (Jano), TASC TAs: Osama Saleh,
CSCE 210 Data Structures and Algorithms
COMP171 Data Structures and Algorithms Spring 2009.
CMSC 132: Object-Oriented Programming II
CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
COMP171 Data Structures and Algorithm Qiang Yang Lecture 1 ( Fall 2006)
CSCE 3110 Data Structures and Algorithm Analysis.
Data Structures & Agorithms Lecture-1: Introduction.
Computer Science 102 Data Structures and Algorithms V Fall 2009 Lecture 1: administrative details Professor: Evan Korth New York University 1.
© 2004 Goodrich, Tamassia CS2210 Data Structures and Algorithms Lecture 1: Course Overview Instructor: Olga Veksler.
Teaching Teaching Discrete Mathematics and Algorithms & Data Structures Online G.MirkowskaPJIIT.
CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1.
Data Structures and Programming.  Today:  Administrivia  Introduction to 225, Stacks  Course website: 
Lecture 1 Page 1 CS 111 Summer 2015 Introduction CS 111 Operating System Principles.
CIS 068 Welcome to CIS 068 ! Software Design & Data Structures In JAVA Instructor: Rolf Lakaemper Peer Teacher: Aubrey Jones TA: Michael Broscius.
Welcome to CIS 2168 ! Software Design, Data Structures and Algorithms
Data Structures (Second Part) Lecture 1 Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang University.
CSE 3358 NOTE SET 1 Data Structures and Algorithms.
Computer Science 102 Data Structures and Algorithms CSCI-UA.0102 Fall 2012 Lecture 1: administrative details Professor: Evan Korth New York University.
Review for Final Andy Wang Data Structures, Algorithms, and Generic Programming.
CSE 3358 NOTE SET 1 Data Structures and Algorithms.
Introduction to ECE 2401 Data Structure Fall 2005 Chapter 0 Chen, Chang-Sheng
Welcome to CIS 2168 ! Data Structures and Algorithms
CIS 068 Welcome to CIS 068 ! Software Design & Data Structures In JAVA Instructor: Rolf Lakaemper.
Lecture 1: Overview CMSC 201 Computer Science 1. Course Info This is the first course in the CMSC intro sequence, followed by 202 CS majors must pass.
Course Review Fundamental Structures of Computer Science Margaret Reid-Miller 29 April 2004.
CMSC 2021 CMSC 202 Computer Science II for Majors Spring 2002 Sections Ms. Susan Mitchell.
CMSC 2021 CMSC 202 Computer Science II for Majors Spring 2001 Sections Ms. Susan Mitchell.
King Saud University1 CSC 112 Java Programming I Introduction.
Course Info Instructor U.T. Nguyen Office: CSEB Office hours: Tuesday, 14:30-15:30 Thursday, 12:00-12:45 By.
Data Structures and Algorithms in Java AlaaEddin 2012.
COMP 103 wrapping up and some exam tips 2015-T2 Lecture 32 Marcus Frean School of Engineering and Computer Science, Victoria University of Wellington 
Principles of Imperative Computation Lecture 1 January 15 th, 2012.
Data Structures By Dr. Mehedi Masud ِAssociate Professor, Computer Science Dept. College of Computers and Information Systems Taif University 1.
CMPT 238 Data Structures Instructor: Tina Tian. General Information Office: RLC 203A Office Hour: Tue and Fri 12:30 - 2:00PM.
COMP9024: Data Structures and Algorithms Course Outline Hui Wu Session 1, 2016
CS140 – Computer Programming 1 Course Overview First Semester – Fall /1438 – 2016/2017 CS140 - Computer Programming 11.
CS16: Introduction to Algorithms and Data Structures
CSc 120 Introduction to Computer Programing II
CSCE 210 Data Structures and Algorithms
RAIK 283 Data Structures and Algorithms
電腦圖學 Computer Graphic with Programming
Course Information EECS 2031 – Section A Fall 2017.
Computer Engineering Department Islamic University of Gaza
CS101 Computer Programming I
COMP9024: Data Structures and Algorithms
CSc 020: Programming Concepts and Methodology II
Introduction to Programming
Midterm Review.
March 27 – Course introductions; Adts; Stacks and Queues
COMPSCI 330 Design and Analysis of Algorithms
CS5040: Data Structures and Algorithms
Introduction of ECE665 Computer Algorithms
Computer Science 102 Data Structures CSCI-UA
September 27 – Course introductions; Adts; Stacks and Queues
CS 201 – Data Structures and Discrete Mathematics I
CS 201 – Data Structures and Discrete Mathematics I
INTRODUCTION TO INFORMATION SYSTEMS AND TECHNOLOGY (NET 201)
Introduction CSE 373 Data Structures.
Welcome to CS 1301! Principles of Programming I.
COP 3502.
CMPT 438 Algorithms Instructor: Tina Tian.
CS 111 Digital Image Processing
Computer Engineering Department Islamic University of Gaza
EECE.3220 Data Structures Instructor: Dr. Michael Geiger Spring 2017
CSCE156: Introduction to Computer Science II
CS201 – Course Expectations
CMPT 238 Data Structures Instructor: Tina Tian.
Presentation transcript:

15-122 Principles of Imperative Computation Lecture 1 January 8 , 2018

Course Information Saquib Razak Tamim Jabban (TA) Course CAs: Office: 1018 Office Hours: TBD Email: srazak@cmu.edu Tamim Jabban (TA) Office: 1005 Email: tjabban@cmu.edu Course CAs: Maimoon Siddiqui Julian Sam Mohammed Nahin Course website http://www.qatar.cmu.edu/~srazak/courses/15122-s18/

Overview Goals of This Course Interactions Assessment Lectures, Recitations, Office Hours Assessment Labs, Quizzes, Homeworks, Exams A Mysterious Function

Goals Computational Thinking Programming Algorithms

Programming Skills Program design in the small Transforming algorithmic ideas to code Unit testing Specifying, writing, debugging, (re)factoring code Some familiarity with Unix tools

Algorithmic Ideas Asymptotic complexity Divide-and-conquer time/space/amortized worst case/average case important classes: O(1), O(log n), O(n log n), O(nk), O(2n) Divide-and-conquer Self-adjusting data structures Randomness Fundamental Data structures

Computational Thinking Assertions and invariants Specification vs. implementation Logical vs. operational reasoning Abstraction and interfaces Reasoning about resource bounds

Programming Language C0: a small safe subset* of C int, bool, char, string, arrays, pointers, structs Essential algorithmic and programming ideas Relatively close to machine (imperative) Sound reasoning with contracts Transition to C near end of course

Concrete Algorithms Basic arithmetic Binary search, sorting Stacks and queues, priority queues (heaps) Binary trees, dictionaries, maps, sets, tries Hashing, hash tables Graph traversal, minimum spanning tree

Role in Curriculum 15-122 Principles of Imperative Computation 15-210 Fundamental Alg’s & Data Struct’s 15-150 Principles of Functional Programming 15-213 Introduction to Computer Systems 15-214 Principles of Software Systems

Overview Goals of This Course Interactions Assessment Lectures, Recitations, Office Hours Assessment Quizzes, Homeworks, Exams A Mysterious Function

Lectures Mon, Wed 1:30pm – 2:50pm (1190) Please be here, please be active Ask and answer questions, pay attention Lecture notes after lecture No Computers, Laptops, cellphones, etc. No surfing, email, games… If you want to work on your homework, do so elsewhere

Recitations and Labs Tue, Thu 1:30pm – 2:20pm (50 minutes, 2035) Reinforce lecture material Problem solving How-to on programming and tool support

Unix/Tools Tutorial Tuesday, 1:30pm – 2:50pm, Room 2035 Get set up using the C0 tools with Linux at unix.qatar.cmu.edu

Online communication Autolab for homework and grades Piazza for announcements, questions, and communication with course staff. Get help, help each other! Cluster Linux machines and SSH to shared machines for assignments

Overview Goals of This Course Interactions Assessment Lectures, Recitations, Office Hours Assessment Quizzes, Homeworks, Exams, Labs A Mysterious Function

Assessment 25% - Midterms (two of them – 12.5% each) 25% - Final 45% - Homework ~10 programming ~12 written theory 5% - Quizzes and Labs Pop Quizzes whenever we feel like it Labs during recitation – Check the schedule!

Midterm Test functional understanding of material On Tuesdays – check schedule (80 mins) Closed book, closed laptop, 1 sheet of notes Total of 2 * 125 = 250 pts

Final Testing cumulative mastery of material Three hours during final exam period Closed book, closed laptop, 1 sheet of notes Total of 250 points

Assignments Weekly assignment (see on-line schedule) Apply material in problem solving context 13 written and 11 programming Total of 450 points Written homework due on Mondays Programming homework due on Thursdays – Check the schedule Four Late days for programming assignments only (1 day per assignment max)

Academic integrity Quizzes, exams, homework must be your own OK: discussion of course material, practice problems, study sessions, going over handed-back homework in groups Not OK: copying or discussing answers, looking at or copying code (even parts) Not OK: talking through the assignment as you code with a classmate University policy will be applied rigorously!

Overview Goals of This Course Interactions Assessment Lectures, Recitations, Office Hours Assessment Quizzes, Homeworks, Exams A Mysterious Function

Bug Report! C0 Python int f (int x, int y) { int r = 1; while (y > 1) { if (y % 2 == 1){ r = x * r; } x = x * x; y = y / 2; return r * x; def f (x, y): r = 1 while (y > 1) : if (y % 2 == 1): r = x * r x = x * x y = y / 2 return r * x