CS/ENGRD 2110 Object-Oriented Programming and Data Structures Spring 2012 Thorsten Joachims

Similar documents
CS/ENGRD 2110 Object- Oriented Programming and Data Structures Fall 2012 Prof. Doug James

Announcements. Course Staff. Course Staff. Lectures 10/19/11. CS/ENGRD 2110 Fall Instructor. Administrative Assistant

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

Announcements. 1. Forms to return today after class:

Introduction to Data Structures

CS/ENGRD 2110 FALL 2018

Lecture 1. Course Overview, Python Basics

Welcome. Orientation to online CPS102 Computer Science 2 (Java 2)

CSE 114, Computer Science 1 Course Information. Spring 2017 Stony Brook University Instructor: Dr. Paul Fodor

Computer Science 210: Data Structures

CS/ENGRD 2110 Object-Oriented Programming and Data Structures Spring 2012 Thorsten Joachims. Lecture 25: Review and Open Problems

COMP251: Algorithms and Data Structures. Jérôme Waldispühl School of Computer Science McGill University

Lecture 1. Course Overview Types & Expressions

CS61BL. Lecture 1: Welcome to CS61BL! Intro to Java and OOP Testing Error-handling

Credit: The lecture slides are created based on previous lecture slides by Dan Zingaro.

COM S 211 Computers and Programming (also ENGRD 211)

CS/ENGRD 2110 SPRING 2018

CS/ENGRD 2110 SPRING 2019

CS/ENGRD 2110 SPRING 2019

Lecture 1. Course Overview, Python Basics

BOSTON UNIVERSITY Metropolitan College MET CS342 Data Structures with Java Dr. V.Shtern (Fall 2011) Course Syllabus

COMP 117: Internet-scale Distributed Systems Lessons from the World Wide Web

COMP-202A: Introduction to Computing 1

Lecture 1: Overview & Intro to Java

PC Applications IT102 estart Fall 2014

COMP250: Introduction to Computer Science. Jérôme Waldispühl & Carlos Oliver Gonzalez School of Computer Science McGill University

CS 241 Data Organization. August 21, 2018

CS 161: Object Oriented Problem Solving

CSE 332: Data Abstractions. Ruth Anderson Spring 2014 Lecture 1

CSCI455: Introduction to Programming System Design

CS/COE 1501 cs.pitt.edu/~bill/1501/ Introduction

CS/ENGRD 2110 FALL2017

Announcements. Course syllabus Tutorial/lab signup form (due 4pm today) Lecture 1 notes Homework 1 Initial assessment

CS111: Intro to Computer Science

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

CS 241 Data Organization using C

CS 240 Fall Mike Lam, Professor. Just-for-fun survey:

Introduction to Computer Systems

Cleveland State University

Welcome to CS 135 (Winter 2018)

Programming Languages CSCE

3D Graphics Programming Mira Costa High School - Class Syllabus,

Lecture 1: CSE 373. Data Structures and Algorithms

VE281 Data Structures and Algorithms. Introduction and Asymptotic Algorithm Analysis

COMP-202C: Foundations of Programming

CSC 1052 Algorithms & Data Structures II: Introduction

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

Computer Science II Data Structures

CS503 Advanced Programming I CS305 Computer Algorithms I

ECE Object-Oriented Programming using C++ and Java

CSE 417 Practical Algorithms. (a.k.a. Algorithms & Computational Complexity)

Introduction to Computation and Problem Solving

San José State University Computer Science Department CS49J, Section 3, Programming in Java, Fall 2015

Beijing Jiaotong University CS-23: C++ Programming Summer, 2019 Course Syllabus

Intensive Introduction to Computer Science. Course Overview Programming in Scratch

Introduction to Computer Systems

Welcome to CS 135 (Fall 2018) Themes of the course. Lectures. cs135/

Outline. Logistics. Logistics. Principles of Software (CSCI 2600) Spring Logistics csci2600/

Lecture 1: Welcome! CSE 373: Data Structures and Algorithms CSE WI - KASEY CHAMPION 1

CS 3110 Lecture 1 Course Overview

CS 113: Introduction to

CS 240 Fall 2015 Section 004. Alvin Chao, Professor

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

Who we are: Lecture 1: Overview & Java. Why CS 62? Sample Problems. CS 62 Fall 2016 Kim Bruce & Peter Mawhorter

Spring 2018 El Camino College E. Ambrosio. Course Syllabus

Introduction to System Programming Course 2015 Spring Euiseong Seo

CS 4349 Lecture August 21st, 2017

McGill University COMP-202A Introduction to Computing I Summer 2006 webct.mcgill.ca

CSCI 201L Syllabus Principles of Software Development Spring 2018

CSE 240 Introduction to Computer Architecture

Object-Oriented Programming for Managers

Preface A Brief History Pilot Test Results

Introduction to Prof. Clarkson Fall Today s music: Prelude from Final Fantasy VII by Nobuo Uematsu (remastered by Sean Schafianski)

AP Computer Science A Summer Assignment 2017

COMP-202 Unit 0: Course Details

COMP-202A: Introduction to Computing 1

Introduction to Prof. Clarkson Fall Today s music: Prelude from Final Fantasy VII by Nobuo Uematsu (remastered by Sean Schafianski)

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

CSC116: Introduction to Computing - Java

INF 315E Introduction to Databases School of Information Fall 2015

Data Structures and Algorithms

CSci 4211: Introduction to Computer Networks. Time: Monday and Wednesday 2:30 to 3:45 pm Location: Smith Hall 231 Fall 2018, 3 Credits

Introduction to Nate Foster Spring 2018

CSC116: Introduction to Computing - Java

Dr. Angela Guercio Dr. Natalia Dragan. Spring 2011

ISM 324: Information Systems Security Spring 2014

} Evaluate the following expressions: 1. int x = 5 / 2 + 2; 2. int x = / 2; 3. int x = 5 / ; 4. double x = 5 / 2.

CSCI 528: OBJECT ORIENTED PROGRAMMING, Fall 2015

CS/COE 1501

Programming 2. Outline (112) Lecture 0. Important Information. Lecture Protocol. Subject Overview. General Overview.

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

15-411/ Compiler Design

Introduction to Prof. Clarkson Fall Today s music: Prelude from Final Fantasy VII by Nobuo Uematsu (remastered by Sean Schafianski)

CS 161: Object Oriented Problem Solving

Project #1 rev 2 Computer Science 2334 Fall 2013 This project is individual work. Each student must complete this assignment independently.

COMP-202B: Foundations of Programming

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

TTh 9.25 AM AM Strain 322

Welcome to CS 241 Systems Programming at Illinois

Introduction to Computers & Their Use

Transcription:

CS/ENGRD 2110 Object-Oriented Programming and Data Structures Spring 2012 Thorsten Joachims Lecture 1: Overview http://courses.cs.cornell.edu/cs2110 1

Course Staff Instructor Thorsten Joachims (tj@cs.cornell.edu) Teaching Assistants Adith Swaminathan (adith@cs.cornell.edu) Konstaninos Mamouras (mamouras@cs.cornell.edu) 9 more TAs are TBD Consultants TBD 2

Course Staff Teaching Assistants Lead sections ( recitations, discussions ) starting next week Act as your main contact point Consultants In Upson 360, hours online Front line for answering questions consulting hours start next week More info? See website 3

What is wrong with this Program? public class Mystery { public static void main(string[] args) { int[] a = {7, 121, 12, 13, 9, 324, 1}; boolean d; do { d = false; for (int b = 1; b < a.length; b++) { if (a[b-1] > a[b]) { int c = a[b]; a[b] = a[b-1]; a[b-1] = c; d = true; } } } while (d); for (int e : a) { System.out.println(e); } } } Output: 1, 7, 9, 12, 13, 121, 324 4

Moore s Law From Lives and death of Moore s Law, Ilkka Tuomi, 2002 5

Grandmother s Law Brain takes about 0.1 second to recognize your grandmother About 1 second to add two integers (e.g. 3+4=7) About 10 seconds to think/write statement of code Your brain is not getting any faster! 6

Why the world need CS 2110! Real systems are large and complex. Year Operating System Millions of lines of code* 1993 Windows NT 3.1 6 1994 Windows NT 3.5 10 1996 Windows NT 4.0 16 2000 Windows 2000 29 2001 Windows XP 40 2005 Windows Vista 50 *source: Wikipedia Computer Science Managing Complexity Analyze highly complex situations Decompose problem into independent components Assure correctness of components Reuse prior work that is proven correct Spread work over multiple people 7

Sam Loyd s 8 Puzzle Goal: Given an initial configuration of tiles, find a sequence of moves that will lead to the sorted configuration. A particular configuration is called a state of the puzzle. 8

State Transition Diagram of 8-Puzzle State Transition Diagram: picture of adjacent states. A state Y is adjacent to state X if Y can be reached from X in one move. 9

State Transition Diagram for a 2x2 Puzzle 10

Graphs State Transition Diagram in previous slide is an example of a graph: a mathematical abstraction vertices (or nodes): the puzzle states edges (or arcs): connections between pairs of vertices vertices and edges may be labeled with some information (name, direction, weight, cost, ) Graphs: vocabulary/abstraction for problems Airline routes Roadmaps Social network etc. 11

Path Problems in Graphs Is there a path from node A to node B? Solve the 8-puzzle What is the shortest path from A to B? 8-puzzle (efficiently) Driving directions Network flow Friendship structure of facebook Eigenvectors Pagerank in Google 12

Course Objectives Concepts in modern programming languages recursive algorithms and data structures data abstraction, subtyping, generic programming frameworks and event-driven programming, graphical user interfaces Organizing large programs Building blocks: data structures and their algorithms arrays, lists, stacks, queues, trees, hashtables, graphs Algorithm analysis and designing for efficiency asymptotic complexity, induction Using Java, but not a course on Java! 14

Why you need CS 2110? Fun and intellectually interesting: cool math ideas meet engineering (and make a difference) Crucial to any engineering or science career Good programmers are 10x more productive Leverage knowledge in other fields, create new possibilities Where will you be in 10 years? Great job prospects with high salaries Computational Thinking: You ll learn to think in a more logical, structured way Computational thinking pervades almost every subject of inquiry in today s world 15

Are you ready for CS2110? CS2110 assumes you know Java You took CS1110 at Cornell You have completed CS1130 Or took a high school course and got a 4 or 5 on the CS AP exam CS2110 assumes you actually remember Java Go over online material of CS1130 classes, objects, fields, methods, constructors, static and instance variables, control structures, arrays, strings, exposure to inheritance Don t take CS1110 just because you are worried that your high school Java experience won t do We recommend against trying to skip directly into CS3110. Doing so requires permission from both Professor Joachims and Professor Joachims! 16

And how about CS2112? CS2112 is equivalent to CS2110 in terms of requirements prerequisites course material that is covered CS2112 is different in the following respects gives more depth in some areas is more project driven more challenging assignments includes a lab in addition to sections ( 4 credits) Students can easily switch between the two courses in the first 3 weeks. 17

Lectures Time and place Tuesday/Thursday 10:10-11am, Olin 155 Attendance is mandatory In-class quizzes ENGRD 2110 or CS 2110? Same course! We call it CS 2110 Non-engineers sign up for CS 2110 Engineers sign up for ENGRD 2110 Reading and examples will be posted online together with lecture notes 18

Sections Each section will be led by a TA Reinforces lecture material, help on homework Sometimes additional material Everybody needs to register for a section Section numbers are different for CS and ENGRD Like lecture, attendance is mandatory No permission needed to switch sections We recommend that you do NOT switch often You may attend more than one section No sections this week they start next week! 19

Consulting and Office Hours Office Hours Instructor (after class, Upson 4153) Teaching Assistants See webpage for times and locations Consulting Hours Google calendar on webpage In Upson 360 Front line for answering questions Consulting hours start next week 21

Resources Course web site http://courses.cs.cornell.edu/cs2110 Piazza Good place to ask questions Announcements Textbook Frank M. Carrano, Data Structures and Abstractions with Java, 3 rd ed., Prentice Hall Additional material on the Prentice Hall website Recorded Videonote Lectures Fall 2010 Warning: Different instructor, different content 22

Academic Excellence Workshops / Two-hour labs in which students work together in cooperative setting One credit S/U course based on attendance Time and location TBA See the website for more info http://www.engineering.cornell.edu/studentservices/learning/academic-excellenceworkshops 23

Obtaining Java See Resources on website We recommend Java 6 Need Java Development Kit (JDK), not just Java Runtime Environment (JRE) 24

Eclipse IDE: Interactive Development Environment We highly recommend use of Eclipse Helps you write/compile your code Helps with debugging Eclipse tutorial in section See Resources on website 25

Coursework Components Five assignments (43%) Two prelims (15% each) Final exam (20%) Course evaluation (1%) Survey (1%) Quizzes in class (5%) Submit assignment late: 5 points deduction per 24h late. Everybody has 5 free late days. Maximum 3 days late on each assignment For assignments and quizzes, lowest grade gets replaced by second-lowest grade. 26

Assignments Assignments may be done by teams of two students (except for A1) You may choose to do them by yourself A1 will be posted on Thursday Finding a partner Choose your own or contact your TA. Piazza may be helpful. Monogamy encouraged. However, you may change partners between assignments (but not within). Please read partner info and Code of Academic Integrity on website 27

Survey Soon available on CMS as a quiz Learn about course participants Understand better who you are Refine CS2110 content Participating accounts for 1% of overall grade Obviously not graded There are no wrong answers Deadline: next week Friday, Feb 3. 28

Academic Integrity See Academic Integrity Policy on website We use artificial intelligence tools to check each homework assignment The software is very accurate! It tests your code and also notices similarities between code written by different people Sure, you can fool this software but it s easier to just do the assignments Penalty ranges from negative points for the assignment to failing the course. 29

Welcome! We hope you have fun, and enjoy programming as much as we do. 30