EECE.3220 Data Structures Instructor: Dr. Michael Geiger Spring 2017

Slides:



Advertisements
Similar presentations
Introduction to Computer Programming in C
Advertisements

7/3/2015Data Structures and Algorithms1 Dick Steflik Fall 2012.
CSCE 110 PROGRAMMING FUNDAMENTALS WITH C++
Computer Science 102 Data Structures and Algorithms V Fall 2009 Lecture 1: administrative details Professor: Evan Korth New York University 1.
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: 
Data Structures Lecture 1: Introduction Azhar Maqsood NUST Institute of Information Technology (NIIT)
Course: Object Oriented Programming - Abstract Data Types Unit1: IntroductionSlide Number 1 Introduction Course: Object Oriented Programming Abstract Data.
Summary of what we learned yesterday Basics of C++ Format of a program Syntax of literals, keywords, symbols, variables Simple data types and arithmetic.
Computer Science 102 Data Structures and Algorithms CSCI-UA.0102 Fall 2012 Lecture 1: administrative details Professor: Evan Korth New York University.
COMP2012 Object-Oriented Programming and Data Structures Fall 2015.
Principles of Computer Science I Honors Section Note Set 1 CSE 1341 – H 1.
Introduction to ECE 2401 Data Structure Fall 2005 Chapter 0 Chen, Chang-Sheng
ICS202 Data Structures King Fahd University of Petroleum & Minerals College of Computer Science & Engineering Information & Computer Science Department.
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.
BIT 143: Programming – Data Structures It is assumed that you will also be present for the slideshow for the first day of class. Between that slideshow.
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.
Principles of Imperative Computation Lecture 1 January 15 th, 2012.
CMPT 238 Data Structures Instructor: Tina Tian. General Information Office: RLC 203A Office Hour: Tue and Fri 12:30 - 2:00PM.
Data Structures Dr. Abd El-Aziz Ahmed Assistant Professor Institute of Statistical Studies and Research, Cairo University Springer 2015 DS.
Lecture 1 Data Structures Aamir Zia. Introduction Course outline Rules and regulations Course contents Good Programming Practices Data Types and Data.
CMPT 201 Computer Science II for Engineers
CSCE 210 Data Structures and Algorithms
Course Overview - Database Systems
Andy Wang Object Oriented Programming in C++ COP 3330
COMP9024: Data Structures and Algorithms
INTERMEDIATE PROGRAMMING WITH JAVA
CSc 020: Programming Concepts and Methodology II
ECE Application Programming
ECE Application Programming
ECE Application Programming
Key Ideas from day 1 slides
Welcome to Visual Programming using C#
March 27 – Course introductions; Adts; Stacks and Queues
CMPT 238 Data Structures Instructor: Tina Tian.
Computer Science 102 Data Structures CSCI-UA
September 27 – Course introductions; Adts; Stacks and Queues
Lecture 1: Introduction
Course Overview - Database Systems
Andy Wang Object Oriented Programming in C++ COP 3330
Introduction CSE 373 Data Structures.
Data Structures: Introductory lecture
COMP2012H Object-Oriented Programming and Data Structures
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
Administrivia- Introduction
CSCE 221 Professor Lupoli TAMU CSCE 221 Intro.
Summary of what we learned yesterday
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
Principles of Imperative Computation
EECE.2160 ECE Application Programming
Administrivia- Introduction
COP3530- Data Structures Introduction
Dr. David Matuszek Spring, 2003
EECE.4810/EECE.5730 Operating Systems
EECE.4810/EECE.5730 Operating Systems
EECE.2160 ECE Application Programming
Instructor: Dr. Michael Geiger Spring 2017 Lecture 12: Exam 1 Preview
EECE.2160 ECE Application Programming
EECE.3220 Data Structures Instructor: Dr. Michael Geiger Spring 2019
EECE.3220 Data Structures Instructor: Dr. Michael Geiger Spring 2019
Instructor: Dr. Michael Geiger Spring 2019 Lecture 34: Exam 3 Preview
EECE.2160 ECE Application Programming
Instructor: Dr. Michael Geiger Spring 2017 Lecture 30: Sorting & heaps
CS Computer Science II: Data Structures and Abstraction Fall 2009
Instructor: Dr. Michael Geiger Spring 2017 Lecture 33: Hash tables
CMPT 238 Data Structures Instructor: Tina Tian.
Presentation transcript:

EECE.3220 Data Structures Instructor: Dr. Michael Geiger Spring 2017 Lecture 1: Course overview Going from C to C++

Data Structures: Lecture 1 Lecture outline Course overview Instructor information Course materials Course policies Resources Course outline Going from C to C++ Introductory look at basic differences 5/2/2019 Data Structures: Lecture 1

Course meeting time, instructor info Lectures: MWF 3-3:50, Ball 208 Instructor: Dr. Michael Geiger E-mail: Michael_Geiger@uml.edu Phone: 978-934-3618 (x43618 on campus) Office: 301A Ball Hall Office hours: MWF 1-1:50 PM; TTh by appointment 5/2/2019 Data Structures: Lecture 1

Data Structures: Lecture 1 Course materials Textbook: Larry Nyhoff, ADTs, Data Structures, and Problem Solving with C++, 2nd edition, 2005, Pearson/Prentice Hall. ISBN: 0-13-140909-3 Course tools: Need IDE that compiles/runs C++ code Recommended IDEs (all free; links on web) Windows: Visual Studio Community (MS website) Mac: Xcode (Mac App Store) Linux: g++/gdb (text-based; can run through terminal on Mac as well) 5/2/2019 Data Structures: Lecture 1

Additional course materials Course websites: http://mjgeiger.github.io/eece3220/sp19/index.htm http://mjgeiger.github.io/eece3220/sp19/schedule.htm Will contain lecture slides, handouts, assignments Course Blackboard site Will post announcements/email class Assignments to be submitted here May use discussion board feature Login via https://lowell.umassonline.net/ 5/2/2019 Data Structures: Lecture 1

Data Structures: Lecture 1 Grading and exam dates Grading breakdown Programming assignments/homework: 55% Exam 1: 15% Exam 2: 15% Exam 3: 15% Exam dates tentative Would like to share 2 hour block with OS Conflicts from 2-3 PM M, W, or F? Exam 1: Week 5 (W 2/20 or F 2/22) Exam 2: Week 10 (M 3/25 or W 3/27) Exam 3: TBD (during finals) 5/2/2019 Data Structures: Lecture 1

Programming assignments Will submit all code via Blackboard Penalty after due date: -(2n-1) points per day i.e., -1 after 1 day, -2 after 2 days, -4 after 3 days … Assignments that are 8+ days late receive 0 Will be allowed one penalty-free resubmission per assignment 5/2/2019 Data Structures: Lecture 1

Data Structures: Lecture 1 Academic honesty All assignments are to be done individually Don’t share code Don’t write programs together Any copied solutions, whether from another student or an outside source, are subject to penalty 5/2/2019 Data Structures: Lecture 1

Data Structures: Lecture 1 Course “rules” A couple of unofficial rules: Please call me “Dr. Geiger” or “Prof. Geiger” Not “Michael,” “Mike,” or “Geiger” Please don’t talk when I’m talking Doing so distracts your classmates and me If you have a question, please raise your hand and ask—I want questions during lecture! 5/2/2019 Data Structures: Lecture 1

Tentative outline: what you should learn Fundamentals of C++ programming Differences between C and C++ (I/O, structs, argument passing) Object-oriented programming: classes, composition, inheritance Analyzing algorithmic complexity How fast is a particular algorithm/data structure, both on average and in the worst case? Specific types of algorithms: sorting, recursive structure traversal How to design and use various data structures Linked lists Stacks Queues Binary trees Heaps Priority queues Hash tables 5/2/2019 Data Structures: Lecture 1

What you’ll really learn … ? http://xkcd.com/844 5/2/2019 Data Structures: Lecture 1

Data Structures: Lecture 1 C vs. C++: the basics C is a procedural language Based around functions (or procedures)—a series of steps to be carried out when called For a function to operate on data, data must be passed as arguments C++ is an object-oriented language Objects contain attributes (data members) and behaviors (member functions) Function calls (most of them) associated with specific object  no need to pass object to function 5/2/2019 Data Structures: Lecture 1

Why object-oriented programming? Object orientation Natural way of thinking about world (& computer programs) Object-oriented design (OOD) Models real-world objects in software Models communication among objects Encapsulates attributes and operations (behaviors) Information hiding Communication through well-defined interfaces Object-oriented programming (OOP) Programmers create user-defined types called classes Contain data members (attributes) and member functions (behaviors) Object: specific instance of a given class 5/2/2019 Data Structures: Lecture 1

Why procedural programming? If C++ is so great, why learn C in the first place? C best suited for system-level programming C language easiest HLL for accessing hardware Hardware support for procedural programming Call/return instructions System stack (or other argument-passing methods) 5/2/2019 Data Structures: Lecture 1

C vs. C++: simple data types Most simple data types are the same From EECE.2160: int, double, float, char Other matching types (rarely used in EECE.2160) unsigned: Non-negative whole numbers Basic int is signed—can be + or – unsigned is short for “unsigned int” short: 16-bit integer Saves space vs. int; has smaller range of values One additional simple type in C++: bool Models boolean (true/false) data Can set variables of type bool equal to true or false Recall that non-boolean data true if nonzero 5/2/2019 Data Structures: Lecture 1

Data Structures: Lecture 1 C vs. C++: similarities Most programming constructs are the same Variable declarations Arithmetic operators (+, -, *, /, %) Boolean operators (&&, ||, !) Relational operators (<, >, <=, >=, ==, !=) Bitwise operators (&, |, ^, >>, <<) Control structures (if/else, switch) Loops (while, do-while, for) Non-member functions Arrays and pointers Structures 5/2/2019 Data Structures: Lecture 1

C vs. C++: major differences Input/output Use redirection operators, not functions Formatting done through use of manipulators Object-oriented programming Use of objects means different ways of organizing and interacting with data Most function calls operate on single object that isn’t passed to function 5/2/2019 Data Structures: Lecture 1

Data Structures: Lecture 1 Final notes Next time: more on going from C to C++ Input and output in C++ Structures in C++ 5/2/2019 Data Structures: Lecture 1