ECE Application Programming

Slides:



Advertisements
Similar presentations
Microprocessor Systems Design I
Advertisements

CMSC 132: Object-Oriented Programming II
CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
COMP 110 Introduction to Programming Mr. Joshua Stough August 22, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307.
COMP 14 – 02: Introduction to Programming Andrew Leaver-Fay August 31, 2005 Monday/Wednesday 3-4:15 pm Peabody 217 Friday 3-3:50pm Peabody 217.
COP4020/CGS5426 Programming languages Syllabus. Instructor Xin Yuan Office: 168 LOV Office hours: T, H 10:00am – 11:30am Class website:
Introduction COMP104: Fundamentals and Methodology.
Course Introduction CSCI Software Engineering II Fall 2014 Bill Pine.
CS 140 Computer Programming (I) Second semester (3 credits) Imam Mohammad bin Saud Islamic University College of Computer Science and Information.
ECE Application Programming Instructors: Dr. Michael Geiger & Nasibeh Nasiri Fall 2015 Lecture 2: Basic C program structure Data in C: Data types,
Principles of Computer Science I Honors Section Note Set 1 CSE 1341 – H 1.
ECE 264 Object-Oriented Software Development Instructor: Dr. Honggang Wang Fall 2012 Lecture 2: Software Design Cycle.
SE-2030 Software Engineering Tools and Practices SE-2030 Dr. Mark L. Hornick 1.
CMSC 2021 CMSC 202 Computer Science II for Majors Spring 2002 Sections Ms. Susan Mitchell.
CMSC 2021 CMSC 202 Computer Science II for Majors Spring 2001 Sections Ms. Susan Mitchell.
CMSC 2021 CMSC 202 Computer Science II for Majors Spring 2003 Mr. Frey (0101 – 0104) Mr. Raouf (0201 – 0204)
CS151 Introduction to Digital Design Noura Alhakbani Prince Sultan University, College for Women.
CSc 120 Introduction to Computer Programing II
CMPT 201 Computer Science II for Engineers
ECE Application Programming
Microprocessor Systems Design I
Andy Wang Object Oriented Programming in C++ COP 3330
Component 1.6.
Computer Engineering Department Islamic University of Gaza
CS101 Computer Programming I
ECE Application Programming
Introduction to Eclipse
CSc 020: Programming Concepts and Methodology II
ECE Application Programming
ECE Application Programming
ECE Application Programming
EECE.2160 ECE Application Programming
CSc 2310 Principles of Programming (Java)
ECE Application Programming
Microprocessor Systems Design I
EECE.2160 ECE Application Programming
CSC215 Lecture Orientation.
Course Overview CSE8313 Object-Oriented Analysis and Design
Computer Science 102 Data Structures CSCI-UA
Programming COMP104: Fundamentals and Methodology Introduction.
Cpt S 471/571: Computational Genomics
Lecture 1: Introduction
Andy Wang Object Oriented Programming in C++ COP 3330
CS 1302 Programming Principles II
CSC2310 Principles of Computer Programming
Welcome to Intro to C/C++ CISC 192
MIS323 Business Telecommunications
Accelerated Introduction to Computer Science
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
First Semester 1439/1440 Welcome 
EECE.2160 ECE Application Programming
CS 2530 Intermediate Computing Dr. Schafer
CSCE 221 Professor Lupoli TAMU CSCE 221 Intro.
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
Computer Engineering Department Islamic University of Gaza
EECE.3220 Data Structures Instructor: Dr. Michael Geiger Spring 2017
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.4810/EECE.5730 Operating Systems
EECE.2160 ECE Application Programming
Course Overview CSE5319/7319 Software Architecture and Design
EECE.4810/EECE.5730 Operating Systems
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
Welcome to Intro to C/C++ CISC 192
ICS103 Programming in C 1: Overview of Computers And Programming
CS201 – Course Expectations
Presentation transcript:

16.216 ECE Application Programming Instructor: Dr. Michael Geiger Spring 2013 Lecture 1: Course overview; program development cycle

ECE Application Programming: Lecture 1 Lecture outline Course overview Instructor information Course materials Course policies Resources Course outline Introduction to C programming Program development cycle Development environments 5/23/2018 ECE Application Programming: Lecture 1

Course staff & meeting times Lectures: MWF 12:00-12:50, Ball 326 Instructor: Dr. Michael Geiger E-mail: Michael_Geiger@uml.edu Phone: 978-934-3618 (x3618 on campus) Office: 118A Perry Hall Office hours: TBD (tentatively MWTh) 5/23/2018 ECE Application Programming: Lecture 1

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: Will need access to C compiler Labs on campus (you may need instructor approval) Windows Microsoft Visual C++ Express (MS website) Full Visual Studio free at www.dreamspark.com Mac Xcode (Mac App Store) Linux gcc/gdb (text-based; can run through terminal on Mac as well) All platforms: NetBeans Used previously for Mac with some success Requires another compiler to be installed (Xcode for Mac works) 5/23/2018 ECE Application Programming: Lecture 1

Additional course materials Course website: http://mgeiger.eng.uml.edu/16216/sp13/index.htm Will contain lecture slides, handouts, assignments Discussion group through piazza.com: Allow common questions to be answered for everyone All course announcements will be posted here Will use as class mailing list—you must enroll by next Monday 5/23/2018 ECE Application Programming: Lecture 1

ECE Application Programming: Lecture 1 Course policies Prerequisite: 25.108 (Intro to Engineering II), ECE major Academic honesty All assignments are to be done individually unless 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 5/23/2018 ECE Application Programming: Lecture 1

Programming assignments Will submit all code via e-mail to Dr. Geiger Will not get confirmation unless you explicitly ask 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 5/23/2018 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 5/23/2018 ECE Application Programming: Lecture 1

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 20 Exam 2: Wednesday, March 27 Exam 3: Thursday, May 9, 8:00-11:00 AM 5/23/2018 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 & unformatted input/output Creating new data types: structures Bitwise operators Dynamic memory allocation 5/23/2018 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, bring it May have to do some design ahead of time 5/23/2018 ECE Application Programming: Lecture 1

C program development cycle Top down design Requirements: what is the program supposed to do? Translate basic requirements into formal specification Design: translate requirements into product Start with broad outline: what’s overall functionality we need? Break that down further: what pieces (data) are needed? What details are needed for each piece? How do pieces interact (functions)? Final result of this stage: design specification Can include Verbal description of design, both at high & low level Diagrams showing varying levels of detail about project e.g. Flow charts, UML, etc. 5/23/2018 ECE Application Programming: Lecture 1

C program development cycle (cont.) Programming: turn design into code Often works best as a “bottom up” process Start with small pieces—code sections, single function, etc. Put the pieces together as you go Requires good design to specify how they integrate Compile: convert code to object file Deal with compiler errors here (primarily syntax) Link: join all objects into executable file Deal with linker errors here (no main program, missing objects, etc.) Execute: actually run the program! May read input, generate output Verify correctness of code; if problems, edit program 5/23/2018 ECE Application Programming: Lecture 1

C program development cycle (cont.) Formal software engineering includes testing Test at several levels throughout process Unit testing: does a given piece function in the expected manner? Every time you debug an individual section of code Integration testing: do modules fit together? Multiple functions calling one another; compatibility among data structures; merging files from different parts of the program System testing: does whole system work together? Acceptance testing: user-designed tests with developer support to ensure product meets requirements Good idea to formulate testing plans in design stage As you determine design spec, think about how you’re going to test your software 5/23/2018 ECE Application Programming: Lecture 1

Development environments Can do previous tasks separately Typical in Unix applications—write makefiles to run compiler/linker appropriately; separate debugging An integrated development enviroment (IDE) bundles tools, usually in graphical environment Source code editor Compiler Build automation tools (linker, etc.) Debugger May have additional tools for GUI design, viewing class hierarchy Examples: Microsoft Visual Studio, Eclipse (Java + others), Xcode (Mac OS/iOS apps), NetBeans 5/23/2018 ECE Application Programming: Lecture 1

ECE Application Programming: Lecture 1 Assignment #1 Basic assignment to ensure you can write, run, and submit programs Write a short program that prints (each item on its own line): Your name Your major Your class (i.e. freshman, sophomore, etc.) The name and semester of this course Submit only your source (prog1_simple.c) file via e-mail to Michael_Geiger@uml.edu File name matters! 5/23/2018 ECE Application Programming: Lecture 1

ECE Application Programming: Lecture 1 Next time Basic C program structure Data representation in C NOTE: Program 1 due next Monday, 1/28 5/23/2018 ECE Application Programming: Lecture 1