Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS 235 – Data Structures Winter 2018 Instructor:

Similar presentations


Presentation on theme: "CS 235 – Data Structures Winter 2018 Instructor:"— Presentation transcript:

1 CS 235 – Data Structures Winter 2018 Instructor:
Introduction Winter 2018 Section 001, 8:00 – 9:15 am TTh (B092 JFSB) Section 002, 9:30 – 10:45 am TTh (C215 ESC) Section 003, 9:30 – 10:45 am TTh (C215 ESC) Section 004, 9:30 – 10:45 am TTh (C215 ESC) Instructor: Paul Roper Office: TMCB 3370, Office Hours: 9-10:50 am MWF

2 Monday, January 10, 2018 National Oysters Rockefeller Day
Introduction National Oysters Rockefeller Day Announcements… Koffman, Wolfgang: Objects, Abstraction, Data Structures and Design: Using C++ Learning Suite ONLY for BYU Grades students.cs.byu.edu/~cs235ta Required Pre-exam in Testing Center For Today… Syllabus Visual Studio For Next Time… C++ Primer, Part 1

3 students.cs.byu/~cs235ta Introduction

4 Tip #1: Don’t Get Behind Introduction If you find yourself struggling with the material, falling behind on assignments, facing personal problems, lacking motivation, or any experiencing any difficulty that effects your school work… Resolving problems sooner is always better than later. Talk with the professor at the first sign of problems. Attend all lectures and help sessions. Work with the TAs – especially in morning hours. Maximize deadlines met. Run to completion – avoid context switching (distractions). There is little that can be done to improve your grade if you wait until reading day.

5 CS 235 Syllabus

6 Learning Outcomes Data Computing Fundamentals
Introduction Data Computing Fundamentals Use the fundamental data types of computing (lists, stacks, queues, priority queues, sets, maps, trees, etc.). Implementing Fundamental Data Types Understand major techniques for implementing the fundamental data types (linked lists, binary search trees, hashing, heaps, etc.) and implement several of them. Select Data Structures Properly use and select data structures from language-provided data-structure libraries. Analysis Apply basic algorithm analysis. Recursion Understand recursion and write programs using recursion to solve problems. Usage of Algorithms Make informed decisions about which sorting and searching algorithms to use in specific circumstances. Program Writing Write programs that require ~500 lines of code. Learning Outcomes

7 CS 235 Prerequisites Introduction Students must have completed CS 142 (or an equivalent) with a passing grade before taking CS 235. We make the following assumptions in CS 235: You have previously taken and passed an introductory programming course. You know the C++ programming language. You understand the basic principles of object-oriented programming (classes, objects, methods, inheritance, etc.) If you have not satisfied these prerequisites, you will be dropped the course.

8 Organization and Grading
Introduction Weighted contribution to your final grade: Programming Labs: 50% Exams: 40% Pre-Exam: 5% Midterm Exam I: 10% Midterm Exam II: 10% Final Exam: 15% Attendance Quizzes: 10% All exams will be proctored in the Testing Center. Quizzes will be available on class website for the day of the class only – an attendance code given during class time. A = 93% C = 73% A- = 90% C- = 70% B+ = 87% D+ = 67% B = 83% D = 63% B- = 80% D- = 60% C+ = 77% E = below 60%

9 Programming Assignments (50%)
Introduction Programming assignments can be found on the CS 235 web site ( Programming assignments are submitted/graded via the Lab Submission tab on class website. Only complete zipped solutions accepted. A gcc C++ compiler running w/valgrind will be used for pass-off. Results returned via . Only submit completed labs - number of submissions may be limited. Late assignments are penalized 10% per school day, up to a maximum of 50%. TA assistance – not a welfare program.

10 Exams (40%) Introduction Non-graded pre-exam available during add/drop period in Testing Center. (5% awarded just by taking exam.) Midterm exams will be administered in the testing center and be available from Friday until closing on the following Tuesday (fee assessed on the last day). Any midterm exam taken after the scheduled exam days will be worth (at maximum) half credit unless prior arrangements have been made with the instructor. Final also in Testing Center – no makeup! You should plan at least 1-2 hours for each exam.

11 Attendance Quizzes (10%)
Introduction Attendance code word required to take quiz Quizzes consist of 4 questions from class discussion.

12 BYU Educational Responsibilities
Introduction Educational system today. There is no entitlement. The emotional and impetuous side of student brains develop earlier than their logical, rational side. In other words, students are wired to make poor decisions. Lab help sessions promote a TA welfare system. TA’s responsible for: Clarifying lab assignments. Working with students one-on-one when needed. Help with grading. Motivate students in a creative direction. TA’s are NOT responsible for: Debugging student programs.

13 TA Welfare System Students responsiblities: No Lab help sessions.
Introduction Students responsiblities: Students should take an active role in their learning and recognize they are accountable for their academic success. Be in class. Don't jeopardize your own training. Sweating a little. School is your brain gym. You have to work out your muscles, make them a little sore, if you're going to lift a heavier load later on. Complete the assigned work in a timely manner with attention to quality of work. Avoid making excuses for their behavior. Utilize college resources and seek help when needed. Work part time, if you can. No Lab help sessions.

14 Miscellaneous Introduction All ten programming assignments must be completed to receive and “A” or “A-” grade. Everyone who completes all ten programming assignments (regardless of their scores) and passes the final exam (non-normalized 70% or better) will pass the class with at least a “C-” grade. All assignments MUST BE COMPLETED, PASSED OFF AND SUBMITTED on or before the final day of class. CS Retake Policy Questions?

15 CS 235 Overview Part 1: Abstract Data Types Part 2: Containers
Introduction C++ Primer Part 1: Abstract Data Types Ch01: Introduction to Software Design Ch02: Program Correctness and Efficiency Ch03: Inheritance and Class Hierarchies 6 L1: Iterator L2: Iterator L3: Scheduler Part 2: Containers Ch04: Sequential Containers Ch05: Stacks Ch06: Queues and Deques L4: Linked List L5: Shunting Yard L6: Railroad Part 3: Recursion Ch07: Recursion 8 Part 4: Trees, Maps, Sets Ch08: Trees Ch09: Sets and Maps Part 5: Sorting, Search Ch10: Sorting Part 6: AVL Trees and Graphs Ch11: Self-Balancing Search Trees Ch12: Graphs

16 Visual Studio

17 Visual Studio

18 Why Use An IDE? Introduction “Real men (and women) use plain text editors to write code in assembly.” Machine Code Assembly C C++ Java Python Symbolic Debugger Industry needs skilled developers who know how to: Use breakpoints Single step Examine memory Symbolic debuggers highlight scope, keywords, vertical whitespace, outline modules, performance, variable watch, among others.

19 Visual Studio IDE Introduction The purpose of a typical programming assignment in a college course is to provide experience with a particular programming concept In contrast, an industrial software product is likely to be used over an extended period by individuals other than the creator(s) of the product It is created in response to an existing or anticipated need

20 Visual Studio Community 2017
Introduction Step 1: Go to website  us/downloads/download-visual-studio-vs#DownloadFamilies_2 Step 2: Find the panel titled  Visual Studio Community 2017 for Windows Desktop  and click on

21 Visual Studio Community 2017
Introduction Step 3: Run installation. (Note: You may be asked to allow installation to modify your computer.) Step 4: Select “Desktop development with C++”. Click “Install”.

22 Visual Studio Community 2017
Introduction Step 6: Reboot your computer. Step 7: Walk you though the installation process.

23 Visual Studio Community 2017
Introduction Step 6: Reboot your computer. : This will prompt you to login with a Microsoft account.  If you do not already have an account, then use a separate browser window to create one at this address   Once you have a Microsoft account setup, login in the original window with your account( ) and password. Step 5: The next window will ask whether you want to download Express 2013 for Windows Desktop or another version.  Select Express 2013 for Windows Desktop.on the left. Step 6: Find the wdexpress_full.exe file you just downloaded and run it to install Visual Studio Express 2013 for Windows Desktop on your computer.  It should walk you though the installation process.

24 Visual Studio Watch: https://www.youtube.com/watch?v=Rub-JsjMhWY
Introduction to Software Design Watch:

25 Visual Studio Basic Editing Code Navigation Debugging Code analysis
Introduction to Software Design Basic Editing Code Navigation Debugging Conditional Breakpoints Function Breakpoints Expression Evaluation Watch window Stepping Code analysis

26 The Software Life Cycle
Introduction The Software Life Cycle Section 1.1

27 Style /** Function to assign a grade based on the average
Introduction /** Function to assign a grade based on the average @param score The score the student achieved @param average The average for this exam @return The grade */ string assign_grade(double score, double average) { if (average - 5 <= score && score <= average + 5) return "C";

28 Cannot find or open the PDB file
Introduction Cannot find or open the PDB file No problem. You're running your code under the debugger, and the debugger is telling you that it doesn't have debugging information for the system libraries. If you really need that (usually for stack traces), you can download it from Microsoft's symbol servers, but for now you don't need to worry. Try go to Tools->Options->Debugging->Symbols and select checkbox "Microsoft Symbol Servers", Visual Studio will download PDBs automatically.

29 #include <stdio.h> #include <conio.h>
Introduction #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <direct.h> void PrintFullPath(char * partialPath) { char full[_MAX_PATH]; if (_fullpath(full, partialPath, _MAX_PATH) != NULL) printf("Full path is: %s\n", full); else printf("Invalid path\n"); } int main( void ) // Get current directory PrintFullPath( ".\\" );

30 Memory Leaks #define _CRTDBG_MAP_ALLOC #include <stdlib.h>
Introduction #define _CRTDBG_MAP_ALLOC #include <stdlib.h> #include <crtdbg.h> _CrtDumpMemoryLeaks(); return 0;

31 Visual Studio vs gcc Introduction A programming language is a specification (written in some report), not a software program. That specification can be implemented by many different software products, but should produce executables with the same observable behavior. MinGW (Windows), Xcode (macOS), gcc (Linux) Visual Studio Microsoft IDE Warnings / Errors _CrtDumpMemoryLea ks(); gcc Open source Command line Warnings / Errors gdb

32


Download ppt "CS 235 – Data Structures Winter 2018 Instructor:"

Similar presentations


Ads by Google