170 likes | 175 Views
This lecture provides an overview of the course and covers the basic structure of C programs. Topics include course materials, policies, program development cycle, and introduction to C programming.
E N D
EECE.2160ECE Application Programming Instructors: Dr. Michael Geiger & Peilong Li Spring 2016 Lecture 1: Course overview Basic C program structure
Lecture outline • Announcements/notes • Program 1 due Wednesday, 1/27 • 10 points: e-mail Dr. Geiger for shared Dropbox folder • 10 points: introduce yourself to your instructor • 30 points: complete simple C program • Today’s lecture • Course overview • Instructor information • Course materials • Course policies • Resources • Course outline • Introduction to C programming • Program development cycle • Basic program structure ECE Application Programming: Lecture 1
Course meeting times • Lectures: • Section 201: MWF 8-8:50, Kitson 305 • Section 202: MWF 12-12:50, Kitson 305 • You are welcome to attend either lecture • Please go to your assigned section for exams ECE Application Programming: Lecture 1
Course instructors • Dr. Michael Geiger (Section 202) • E-mail:Michael_Geiger@uml.edu • Phone: 978-934-3618 (x43618 on campus) • Office: 118A Perry Hall • Office hours: M 1-2:30, W 1-2:30, Th1:30-3 • Student questions are top priority during these hours • Will be in office at other times TBD • Available by appointment • Peilong Li (Section 201) • E-mail:Peilong_Li@student.uml.edu • Office hours: MWF 3-4, Ball 402 ECE Application Programming: Lecture 1
Course materials • Textbook: K.N. King, C Programming: A Modern Approach, 2nd edition, 2008, W.W. Norton. • ISBN: 978-0-393-97950-3 • Course tools:Need integrated development environment (IDE) that compiles/runs C code • Recommended IDEs (all free; links on web) • Windows: Microsoft Visual Studio Express (MS website) • Mac: Xcode (Mac App Store) • Linux: gcc/gdb (text-based; can run through terminal on Mac as well) ECE Application Programming: Lecture 1
Additional course materials • Course websites: http://mjgeiger.github.io/eece2160/sp16/index.htm http://mjgeiger.github.io/eece2160/sp16/schedule.htm • Will contain lecture slides, handouts, assignments • Discussion group through piazza.com: • Allow common questions to be answered for everyone • Do not post code to the discussion group • All course announcements will be posted here • Will use as class mailing list—please enroll ASAP ECE Application Programming: Lecture 1
Academic honesty • All assignments are to be done individuallyunless explicitly specified otherwise by the instructor • Any copied solutions, whether from another student or an outside source, are subject to penalty • You may discuss general topics or help one another with specific errors, but do not share assignment solutions • Must acknowledge assistance from classmate in submission ECE Application Programming: Lecture 1
Programming assignments • Will submit all code via shared Dropbox folder • Will not get confirmation unless you explicitly ask • Must e-mail Dr. Geiger if submitting late • Penalty after due date: -(2n-1) points per day • i.e., -1 after 1 day, -2 after 2 days, -4 after 3 days … • Assignments that are 8+ days late receive 0 • See grading policies (last three pages of today’s handout) for more details on: • Grading rubric • Common deductions • Regrade policy • Example grading ECE Application Programming: Lecture 1
Programming assignments: regrades • You are allowed one penalty-free resubmission per assignment • Each regrade after the first: 1 day late penalty • Must resubmit by regrade deadline, or late penalties will apply • Late penalty still applies if original submission late • “Original submission” first file submitted containing significant amount of relevant code • In other words, don’t turn in a virtually empty file just to avoid late penalties—it won’t count ECE Application Programming: Lecture 1
Grading and exam dates • Grading breakdown • Programming assignments: 60% • Exam 1: 10% • Exam 2: 15% • Exam 3: 15% • Exam dates • Exam 1: Wednesday, February 17 in class • Exam 2: Wednesday, March 30 in class • Exam 3: TBD (during finals; likely common to all sections) ECE Application Programming: Lecture 1
Tentative course outline • Basic C program structure and development • Working with data: data types, variables, operators, expressions • Basic console input/output • Control flow • Functions: basic modular programming, argument passing • Pointers, arrays, and strings • File & general input/output • Bitwise operators • Creating new data types: structures • Dynamic memory allocation ECE Application Programming: Lecture 1
Programming exercises • Note on course schedule: several days marked as “PE#” • Those classes will contain supervised, in-class programming exercises • We’ll write/complete short programs to illustrate previously covered concepts • If you have a laptop, feel free to bring it ECE Application Programming: Lecture 1
Course questions General notes/questions about the course: • How many of you have prior programming experience? • For those that do, can improve programming style, efficiency, potentially learn new items • For those that don’t, course assumes no prior programming experience • Fair warning for all of you: material builds on itself throughout course • Difficulty increases as course goes on • If (when) you get stuck, ask for help!!! ECE Application Programming: Lecture 1
Course questions (continued) • How many of you are taking this course only because it’s required? • Follow-up: how many of you hope you’ll never have to program again once you’re done with the course? • Both computer and electrical engineers commonly program in industry—some examples: • Automation of tasks • Circuit simulation • Test procedures • Programming skills highly sought by employers ECE Application Programming: Lecture 1
Program development • ... which is a good approach for your assignments, too! • Average student’s approach to programming • Read specification (assignment) • ... at least some of it, anyway ... • Attempt to write complete program • Find output error and fix related code • Repeat previous step until either • Code completely works ... • ... or code is such a mess that problem(s) can’t be fixed ECE Application Programming: Lecture 1
Program development (cont.) • A more structured approach to program development • Read specification • Identify requirements • What results should program produce? • How can I test correctness of those results? • Plan design that implements requirements • Using flowchart, pseudocode, etc. • Plan for tests as well • Translate design into actual code • Test program and fix errors ECE Application Programming: Lecture 1
Final notes • Next time: • Finish basic C program structure • Data in C • Data types • Constants • Variables • Reminders: • Sign up for the course discussion group on Piazza! • Program 1 due Wednesday, 1/27 • 10 points: e-mail Dr. Geiger for shared Dropbox folder • 10 points: introduce yourself to your instructor • 30 points: complete simple C program ECE Application Programming: Lecture 1