150 likes | 237 Views
ECE230 Lectures Series. ECE230 Course Introduction. Ying Wu Electrical & Computer Engineering Northwestern University yingwu@ece.northwestern.edu. Course Personnel. Instructor: Ying Wu TA: Jia Wang (j-wang3@northwestern.edu)
E N D
ECE230 Lectures Series ECE230 Course Introduction Ying Wu Electrical & Computer Engineering Northwestern University yingwu@ece.northwestern.edu
Course Personnel • Instructor: Ying Wu • TA: Jia Wang (j-wang3@northwestern.edu) • TA: Lei Yang (l-yang@northwestern.edu)
Course Information • Lectures • M,T,W,F 1-1:50pm, Tech. LR4 • Tuesday meetings: TA sessions • Text • C++ How to Program, 3rd (or 4th) Edition, by H.M. Deitel and P.J. Deitel, Prentice Hall. • Course Web • http://www.courses.nwu.edu/ (NU Black board) using your ID • Grading • Machine Problems (MPs): 30% • Midterm exam: 30% • Final exam: 40%
Why should we study programming? • Think about your new role in 5 years • A graduate student • An engineer • A manager • … • Programming practice can • Implement your ideas • Motivate you to re-think your ideas • Make you solid, sharp and deep-thinking • Make you more cooperative
Eager to Learn C/C++? • We shall cover • C/C++ control structure • Function • Pointer and Array • Stream I/O and string operations • Dynamic memory allocation • Class • Classes with pointer data members • Link list • Sort and search See the course syllabus for a detailed schedule
We’ll focus on • Core C/C++ concepts • Such as: • Pointers and references • Call-by-value v.s. call-by-reference • Class • Copy constructor • … • Debugging skills
How do we learn it efficiently? • Do and Make your code Work! • In this course, you will build a working system: the MiniMatlab Project • Through each lecture, you will learn some useful stuff and make a small tool or library • The machine problems (i.e., MPs, or assignments) are progressive. You will start from scratch, but you may end up with hundreds of lines of code! • Last, you will put together the tools you’ve made and build a “big” working system
The MiniMatlab Project System Variable Database Command Line Interpreter Stream I/O Database management Arithmetic/Logic Unit Array/Matrix
Our Schedule A Command Line Partitioner C/C++ control structures A Command Line Interpreter Function, array Pointer, array, stream I/O, string functions A Programmable Calculator (C version) A Programmable Calculator (C++ version) C++ class (I) Class (II), Matrix, debugging skills A MiniMatlab (v1.0) Link list, pointers A MiniMatlab (v2.0)
The GOAL for Week-1/2 • Understand all C/C++ data types • Understand basic computer architecture and addressing mechanism • Use cin/cout to input/output • Grasp six C/C++ control structures • Understand array • Design by using flowcharts • Get a sense of the compiling process • DEBUG_1: debugging when you are coding • Do the MP#1: A Command Line Partitioner
The GOAL for Week-3/4 • Fully understand addressing • Understand pointers • Fully understand the use of functions • Fully understand call-by-value and call-by-reference • Fully understand arrays • DEBUG_2: Basic skills: dump results • Do the MP#2: A Command Line Interpreter
The GOAL for Week-5/6 • Understanding stream I/O • Get familiar with various standard string manipulation functions • Deeply understanding of pointer and reference • Be skillful using c/c++ control structures • Be skillful using function calls • DEBUG_3: Get more experience: breakpoints • Do the MP#3: A Programmable Calculator (C version)
The GOAL for Week-6/7 • Understand the mechanism and the concept of “Class” • Understand the different ways of thinking between C and C++ • Understand constructor/destructor • Understand copy constructor • Deeply understand pointers and references • DEBUG_4: Develop skills: tracing bugs • Do MP#4 and MP#5: A Programmable Calculator (C++ version)
The GOAL for Week-7/8 • Deeply understand the concept of Class • Understand DMA • Understand the tricks in “Classes with pointer data members” • Understand operator overloading • Advanced understanding of pointers • Understand my code of the CMatrix class • First crack of software integration • DEBUG_5: Develop skills: step and trace • Do MP#6: The MiniMatlab V1.0
The GOAL for Week-9/10 • Get skillful on using pointers • Understand link list • Understand the basic idea of sort and search • Get a first experience on software design • DEBUG_6: Develop skills for code diagnosing, bug tracing and trouble shooting • Do MP#7: the MiniMatlab V2.0