3
Marco Alvarez Department of Computer Science and Statistics University of Rhode Island CSC 212: Data Structures and Abstractions Introduction Spring 2019 Welcome ! Lectures TR 3:30 - 4:45p @ Coastal Institute Auditorium Labs W 10 - 11:45a @ Library 166 W 12 - 1:45p @ Library 166 Discussion Sections M 5p - 6p @ TBA T 5p - 6p @ TBA Office Hours TBA 2 CSC 212? Review of basic principles of analysis of algorithms Introduction to fundamental data structures and their algorithms arrays, lists, stacks, queues, trees, hash tables, graphs Survey of classic algorithms for sorting and searching Introduction to C/C++ and programming tools 3 CSC 212 is NOT about learning a programming language Recommended Textbooks 4

Welcome ! CSC 212: Data Structures and Abstractionsmalvarez/courses/csc-212-s19/files/... · CSC 212? ‣Review of basic principles of analysis of algorithms ‣Introduction to fundamental

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Welcome ! CSC 212: Data Structures and Abstractionsmalvarez/courses/csc-212-s19/files/... · CSC 212? ‣Review of basic principles of analysis of algorithms ‣Introduction to fundamental

Marco AlvarezDepartment of Computer Science and Statistics

University of Rhode Island

CSC 212: Data Structures and AbstractionsIntroduction

Spring 2019

Welcome !‣ Lectures

✓ TR 3:30 - 4:45p @ Coastal Institute Auditorium

‣ Labs✓ W 10 - 11:45a @ Library 166✓ W 12 - 1:45p @ Library 166

‣ Discussion Sections✓ M 5p - 6p @ TBA✓ T 5p - 6p @ TBA

‣ Office Hours✓ TBA

!2

CSC 212?‣ Review of basic principles of analysis of algorithms

‣ Introduction to fundamental data structures and their algorithms✓ arrays, lists, stacks, queues, trees, hash tables, graphs

‣ Survey of classic algorithms for sorting and searching

‣ Introduction to C/C++ and programming tools

!3

CSC 212 is NOT about learning a programming language

Recommended Textbooks

!4

Page 2: Welcome ! CSC 212: Data Structures and Abstractionsmalvarez/courses/csc-212-s19/files/... · CSC 212? ‣Review of basic principles of analysis of algorithms ‣Introduction to fundamental

C++?

!5

Recommended Tools✓ although you are free to use any IDE on any platform, we will grade all assignments using g++ on a Linux machine

✓ CS50 IDE is strongly recommended !✓ alternatives:

✓ vim, g++, gdb (running on Linux)✓ VSCode

Learning C/C++‣ Read a book

‣ Enroll in a MOOC (massive open online course)

‣ Solve Challenges

!6

Kattis

Grading (subject to change)‣ Pre-Assesment

✓ Exam (first day of classes)✓ Students below certain threshold will be redirected to a micro-tutoring

program

‣ Assignments✓ ~6 programming assignments (25%)✓ ~10 weekly problem sets (5%)✓ lab attendance (5%)

‣ Exams✓ 2 midterm exams (35%)✓ 1 final exam (30%)

!7

All exams are based on lecture materials and problem sets

Programming Assignments‣ Discussions and collaboration are allowed, however you must write your own code

‣ All assignments are to be turned in on Gradescope by the due date✓ late submissions are NOT accepted

!8

Plagiarism?✓ just don’t do it✓ if you get caught (chances are very high), your name(s) will be immediately reported for further sanctions

Page 3: Welcome ! CSC 212: Data Structures and Abstractionsmalvarez/courses/csc-212-s19/files/... · CSC 212? ‣Review of basic principles of analysis of algorithms ‣Introduction to fundamental

What is expected from you?‣ I do not spend time taking attendance … but …

✓ students skipping lectures will (very) likely fail this class

‣ Organize your time✓ lectures, labs, problem sets/discussion sections, programming

assignments, exams

‣ Participate and think critically✓ ask questions (lectures, labs, discussion sections, office hours,

Piazza, …)

‣ Start assignments early✓ avoid copying/pasting or google’ing answers

!9

Need help?‣ Post questions on Piazza

✓ answer questions, share information

‣ Contact your TAs

‣ Come to Office Hours

!10

Setup

!11

Warming up‣ Adjacent elements sum

✓ find the maximum sum of any pair of adjacent elements in an array of integers

‣ Almost increasing sequence✓ indicate whether a sequence of integers can be made

strictly increasing by removing at most a single element

!12