ECE 551 (Hilton/Lipp): Introduction
ECE 551D Introduction to Programming, Data Structures, and Algorithms in C++
Introduction
1
ECE 551D Introduction to Programming, Data Structures, and - - PowerPoint PPT Presentation
ECE 551D Introduction to Programming, Data Structures, and Algorithms in C++ Introduction ECE 551 (Hilton/Lipp): Introduction 1 Course Overview Programming Ability Now Programming Ability In December ECE 551 (Hilton/Lipp):
ECE 551 (Hilton/Lipp): Introduction
Introduction
1
ECE 551 (Hilton/Lipp): Introduction
2
Programming Ability Now Programming Ability In December
ECE 551 (Hilton/Lipp): Introduction
3
ECE 551 (Hilton/Lipp): Introduction
4
ECE 551 (Hilton/Lipp): Introduction
advising undergrads, sleeping…
5
ECE 551 (Hilton/Lipp): Introduction
it right
6
ECE 551 (Hilton/Lipp): Introduction
7
Programming (in C) C++ Classes References Templates Inheritance Polymorphism Dynamic Dispatch Data Structures ADTs Linked Lists BSTs Hash Tables Stacks Queues Maps Sets Graphs Priority Queues Heaps Other Topics Sorting Multiple/Virtual Inheritance Object Layout Concurrency Reading Code Algorithms -> Code Pointers Arrays Strings Recursion Big O Dynamic Allocation Professional Tools Linux Emacs git valgrind make gcc
ECE 551 (Hilton/Lipp): Introduction
(*) vim is acceptable, but we won't help you with it
8
ECE 551 (Hilton/Lipp): Introduction
9
I was really mad at command line at first. But when I begin to look for jobs, these are the tools currently used by real
course open lots of doors for me. Plus the programming experience and problem solving skills, getting an offer becomes fairly easy.
ECE 551 (Hilton/Lipp): Introduction
10
ECE 551 (Hilton/Lipp): Introduction
11
Read Chapter [first time] (1 hour)
??? ???
Attempt Reading Quiz (30 minutes) Re-read Chapter Deeply (2 hours) Work Practice Problems (~2 hours)
??? ??? ??? ???
Class-time: Do Problems (75 minutes)
??? ???
Catch up if behind on problems (??? minutes)
Lets say 105 min
ECE 551 (Hilton/Lipp): Introduction
webpage
12
ECE 551 (Hilton/Lipp): Introduction
13
ECE 551 (Hilton/Lipp): Introduction
14
Image from staples.com
ECE 551 (Hilton/Lipp): Introduction
15
ECE 551 (Hilton/Lipp): Introduction
16
Read
??? ???
Reading Quiz Basics of Material?
??? ??? Problem ??? ??? Problem ??? ??? Problem ??? ??? Problem
Next Chapter Fail? Repeat
ECE 551 (Hilton/Lipp): Introduction
17
ECE 551 (Hilton/Lipp): Introduction
18
Value Axis
0.25 0.5 0.75 1
Category Axis
24 48 72 96 120 144 Grade Multiplier
97.3% 91.7% 76.9% 50% 23.1% 8.3%
Grade = %correct * 1/(1+e0.05*(Hours_Late - 96))
Hours Late Timeliness Factor
ECE 551 (Hilton/Lipp): Introduction
19
ECE 551 (Hilton/Lipp): Introduction
20
ECE 551 (Hilton/Lipp): Introduction
21
ECE 551 (Hilton/Lipp): Introduction
22
ECE 551 (Hilton/Lipp): Introduction
23
ECE 551 (Hilton/Lipp): Introduction
24
ECE 551 (Hilton/Lipp): Introduction
25
ECE 551 (Hilton/Lipp): Introduction
26
ECE 551 (Hilton/Lipp): Introduction
27
ECE 551 (Hilton/Lipp): Introduction
28
#include <stdio.h> #include <stdlib.h> int main(void) { printf(“Hello World\n”); return EXIT_SUCCESS; }
ECE 551 (Hilton/Lipp): Introduction
29
ECE 551 (Hilton/Lipp): Introduction
30
ECE 551 (Hilton/Lipp): Introduction
31
ECE 551 (Hilton/Lipp): Introduction
32
(3) Generalize your steps from (2) (2) Write down exactly what you just did (1) Work an instance yourself (5) Translate to Code (4) Test your steps
This is hard part…
ECE 551 (Hilton/Lipp): Introduction
33
(3) Generalize your steps from (2) (2) Write down exactly what you just did (1) Work an instance yourself (5) Just start writing some code Figuring out these patterns is rough
ECE 551 (Hilton/Lipp): Introduction
34
ECE 551 (Hilton/Lipp): Introduction
35
ECE 551 (Hilton/Lipp): Introduction
36
ECE 551 (Hilton/Lipp): Introduction
37
ECE 551 (Hilton/Lipp): Introduction
38
ECE 551 (Hilton/Lipp): Introduction
real exam would be easier”
I tried”
would do fine.”
[for this class].”
39
ECE 551 (Hilton/Lipp): Introduction
40
ECE 551 (Hilton/Lipp): Introduction
program”
41
ECE 551 (Hilton/Lipp): Introduction
42
ECE 551 (Hilton/Lipp): Introduction
tonight
43
ECE 551 (Hilton/Lipp): Introduction
44
ECE 551 (Hilton/Lipp): Introduction
right!
45
ECE 551 (Hilton/Lipp): Introduction
46
ECE 551 (Hilton/Lipp): Introduction
Panama NIO radiation overdoes,…
trading error for Knight Capital Group, Ariane 5 explosion, phone system failure, Mariner 1, east coast blackout of 2003, 1998 Mars orbiter,…
software dependent
47
ECE 551 (Hilton/Lipp): Introduction
48
ECE 551 (Hilton/Lipp): Introduction
49
ECE 551 (Hilton/Lipp): Introduction
50
ECE 551 (Hilton/Lipp): Introduction
51
ECE 551 (Hilton/Lipp): Introduction
52
Foundation problems? Deal breaker!
ECE 551 (Hilton/Lipp): Introduction
53
Foundation is good? Going to pick based
meet your needs: kitchen, living room, layout...
ECE 551 (Hilton/Lipp): Introduction
54
Programming/Coding Skills
ECE 551 (Hilton/Lipp): Introduction
55
Programming/Coding Skills Technical Depth
ECE 551 (Hilton/Lipp): Introduction
56
Programming/Coding Skills Hi, I’m a competent coder. Please Hire Me!
ECE 551 (Hilton/Lipp): Introduction
57
550, 552, 554, 559, 652, … 581, 582, 681, Vector Spaces, Text Analy, … 651 553 (various)
ECE 551 (Hilton/Lipp): Introduction
architecture knowledge would have been lost
58
ECE 551 (Hilton/Lipp): Introduction
59
Programming/Coding Skills (551) 550 552 652 553 Indep Study 559 Perf/Opt
ECE 551 (Hilton/Lipp): Introduction
60
ECE 551 (Hilton/Lipp): Introduction
61
ECE 551 (Hilton/Lipp): Introduction
62
ECE 551 (Hilton/Lipp): Introduction
63
ECE 551 (Hilton/Lipp): Introduction
64
ECE 551 (Hilton/Lipp): Introduction
65
ECE 551 (Hilton/Lipp): Introduction
world? Soooo painful
muscle memory
66
ECE 551 (Hilton/Lipp): Introduction
67
ECE 551 (Hilton/Lipp): Introduction
68
ECE 551 (Hilton/Lipp): Introduction
69
ECE 551 (Hilton/Lipp): Introduction
70
0% 100% 50% Time Percent Complete Hey I’m writing lots of code! Oh wait, none of this compiles.... Testing the code... Almost there... Just have to confirm it works! Investigating what is wrong.... Quick Fix! Oh no! The error was more complex than I thought! I have to throw all this code away and start over Re-implementing... I’ll get it right this time!
ECE 551 (Hilton/Lipp): Introduction
71
0% 100% 50% Time Percent Complete
ECE 551 (Hilton/Lipp): Introduction
72
0% 100% 50% Time Percent Complete But I was almost done! I should get at least a B on this assignment!
ECE 551 (Hilton/Lipp): Introduction
73
0% 100% 50% Time Percent Complete I’m so close to done... I can put this off until the day before its due
ECE 551 (Hilton/Lipp): Introduction
74
0% 100% 50% Time Percent Complete You never know which bug is the last one. Best you can do: have fixed all the ones you can find.
ECE 551 (Hilton/Lipp): Introduction
75
0% 100% 50% Time Percent Complete
ECE 551 (Hilton/Lipp): Introduction
76
ECE 551 (Hilton/Lipp): Introduction
77
ECE 551 (Hilton/Lipp): Introduction
it is
78
ECE 551 (Hilton/Lipp): Introduction
79
ECE 551 (Hilton/Lipp): Introduction
advice?”
80
Be awesome.
ECE 551 (Hilton/Lipp): Introduction
the skills/knowledge themselves
such as “Tell me about a major class project”
81
ECE 551 (Hilton/Lipp): Introduction
82