Presentation is loading. Please wait.

Presentation is loading. Please wait.

Digital Design versus Computer Programming How to learn and be successful IMPORTANCE OF PROJECTS IN THIS CLASS.

Similar presentations


Presentation on theme: "Digital Design versus Computer Programming How to learn and be successful IMPORTANCE OF PROJECTS IN THIS CLASS."— Presentation transcript:

1 Digital Design versus Computer Programming How to learn and be successful IMPORTANCE OF PROJECTS IN THIS CLASS

2 = Boo! > When I was young life of a student was really tough

3 I had to program in machine language Machine language 01000010 01101111 01101111 00100001 Specific to each machine, although often overlaps (e.g., all PCs read it the same way) First coded on punch cards I had to check each card that the holes were really punched – see the election problem. = Boo! > BUT PROGRAMMING IN MACHINE LANGUAGE IN MACHINE LANGUAGE TEACHES YOU ABOUT REGISTERS TEACHES YOU ABOUT REGISTERS AND COMPUTER ORGANIZATION

4 Assembly language Human-readable version of machine language, e.g. … In programming terms: 10110000 01100001 Again, not exactly inspiring dreams of teaching students = move al, 0x61 > BUT assembly level programming teaches you about register transfers

5 High-level languages “high” = more abstract (removed) from machine language More truly human-readable: IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. * ENVIRONMENT DIVISION. * DATA DIVISION. * PROCEDURE DIVISION. PARA-1. DISPLAY "Hello, world.". * EXIT PROGRAM. END PROGRAM HELLO-WORLD. Use of compiler to generate machine code > Programming in high level languages makes you more efficient and allows you to achieve the task faster but separates you from hardware

6 Examples of early high-level languages: –ALGOL –APL –BASIC –COBOL –FORTRAN –Lisp –PL/I –RPG >

7 What is the best way to learn programming? Complaints: "The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offence." - Edsger Dijkstra, “How Do We Tell Truths That Might Hurt?” >

8 Thankfully, we have lots of choices >

9

10

11 Side-by-side comparison #include using namespace std; int main() { int num = 0; int numSquared = 0; cout << "I will square a number\n"; cout << "Please type a number to be squared: "; cin >> num; numSquared = num * num; cout << "\nThe square of this num is "; cout << numSquared; cout << "\n\nPlease hit any key to exit"; cin >> num; return 0; } public class SquareThis { public double SquareThis(int someNum) { int answer; answer = someNum * someNum; return answer; } } C++ Java >

12 …by side comparison (define (square-this some- number) (* some-number some- number) ) (square-this 3 5) to JB when [switch1] [ab, thatway setpower 4 onfor 40] when [switch2] [ab, thisway setpower 4 onfor 40] launch [loop [if switch3 [c, thisway on ] if not switch3 [c, thatway on ]]] end Scheme > Yellow Brick Logo You should select a good language for your task

13 History of the Comp Science programming 1984 – 1998 = Pascal 1999 – 2003 = C++ 2004 - = Java “THE computer science language of the 1970s” ! > You should select a good language to learn the concepts rather than syntax only. Java and Lisp are better than C++

14 Now I am old and I have experience

15 And my advise is……. You should learn digital design by examples……. You should learn programming by examples……. You should build practical systems, never learn from book only …….

16 RobotC, Python and Robotics > Scheme, Lisp and Robotics

17 Verilog > VHDL Programming in VHDL or Verilog is more like hardware design than software design. On the other hand you get experience with programming environment, compilers, editors etc.

18 You should start programming and designing digital circuits when you are young, in a middle school or high school a debate between Einstein and Schroedinger Cat about quantum mechanics – an educational theatre.

19 Improvisational Theatre “What’s That? Schr ö dinger Cat” Professor Einstein Schr ö dinger Cat

20 2010 - OUR RECENT BIPED THEATRE KHR-1iSOBOT Lynxmotion Systems New version of Hahoe To be shown in 2010

21 Walking biped robot can express the fullness of human emotions: –body gestures, –dancing, –jumping, –gesticulating with hands. Emotions can be: –Emergent - Arushi –Programmed – Martin Lukac ISMVL –Mimicked – ULSI –Learned – Martin Lukac Reed-Muller Fighting KHR-1 robots

22 iSOBOT robot

23 The stage of Portland Cyber Theatre in FAB building

24 Marie Curie Emotional Robot Head You can work on these or other robots…..

25 Conclusions It teaches very useful skills Practical project is an important component of this class You cannot avoid using computers and programming when you are an engineer It teaches group work and design verification

26 What can you learn in 171 projects 1.Programming in Verilog or VHDL 2.Programming in Java, C++ or RobotC, related to hardware and robot design, in practical environment. 3.Building a digital circuit using FPGAs or PLDs. 4.Practically learning about interfacing and simple analog/digital circuits, motors, lights, etc. 5.Simulating digital circuits. 6.Designing conceptual digital systems, such as Sudoku Machine, or logic minimization machine.

27 Allan RavenHer own robot design Chu Tiffany and Crystal Epinger Digital lock Clor Josh, Jacquot Joshua and Morehouse Brandon Fan System Dhawan SidharthQuantum Circuit Synthesis Heisterkamp Cory, Penny Dustin,Climate Control Owens HughReversible Circuits Saelee Torn and Thao GeorgeFibonacci Sequence Tsai EdisonSudoku Computer Wolfe DevinBinary Calculator simulation Cross MatthewArm/hand design for a humanoid robot Yushi WangClifford Algebra in Quantum Circuits Projects in 2010 Summer class


Download ppt "Digital Design versus Computer Programming How to learn and be successful IMPORTANCE OF PROJECTS IN THIS CLASS."

Similar presentations


Ads by Google