Sei sulla pagina 1di 21

EECE.

2160
ECE Application Programming

Instructors:
Dr. Michael Geiger & Dr. Lin Li
Spring 2019

Lecture 1:
Course overview
Program basics
Lecture outline
 Announcements/notes
 Chapter 1 exercises due Monday, 1/28
 Program 1 due Wednesday, 1/30
 10 points: register for access to the course textbook
 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
 Introduction to C programming
 Basic C program

10/22/2019 ECE Application Programming: Lecture 1 2


Course instructors
 Dr. Lin Li (Section 201)
 E-mail: Lin_Li@uml.edu
 Office: 402 Ball Hall (desk #17)
 Office hours: MW 9:30-11 AM
 Dr. Michael Geiger (Section 202)
 E-mail: Michael_Geiger@uml.edu
 Phone: 978-934-3618 (x43618 on campus)
 Office: 301A Ball Hall
 Office hours: MWF 1-1:50 PM, TTh by appointment
 Additional instructional support
 Tutoring through CLASS center
 Grader TBD

10/22/2019 ECE Application Programming: Lecture 1 3


Course materials
 Required Textbook: Programming in C with zyLabs,
EECE.2160, Spring 2019
 Electronic textbook + IDE for writing programs
 10% of grade assigned to exercises from text
 To access text:
 Sign in or create account @ learn.zybooks.com
 Enter zyBook code: UMLEECE2160GeigerSpring2019
 Subscribe ($77 this term; lasts until 5/25/19)
 Textbook registration requires you to supply
 student.uml.edu e-mail address
 Section in which you are enrolled

 May want to use other IDE (Visual Studio, xCode)


 Directions on use to be posted to web

10/22/2019 ECE Application Programming: Lecture 1 4


Additional course materials
 Course websites:
http://mjgeiger.github.io/eece2160/sp19/index.htm
http://mjgeiger.github.io/eece2160/sp19/schedule.htm
 Will contain lecture slides, handouts, assignments
 Discussion group through Blackboard
 Do not post code to the discussion group
 All course announcements will be posted on
Blackboard as well

10/22/2019 ECE Application Programming: Lecture 1 5


Grading and exam dates
 Grading breakdown
 Programming assignments: 50%
 No programs will be dropped
 Textbook activities: 10%
 Participation activities: 5%
 Challenge activities: 5%
 Lowest of first 2 exams: 10%
 Highest of first 2 exams: 15%
 Exam 3: 15%
 Exam dates
 Exam 1: Friday, February 22 in class
 Exam 2: Monday, April 1 in class
 Exam 3: Date/time TBD (during finals; common exam)

10/22/2019 ECE Application Programming: Lecture 1 6


Academic honesty
 All assignments are to be done individually
 Don’t share code with one another
 Don’t write programs together
 Any copied solutions, whether from another
student or an outside source, are subject to
penalty

10/22/2019 ECE Application Programming: Lecture 1 7


Textbook activities
 Activities associated with each lecture
 Must be completed within 3 days of lecture
 Activities completed >3 days after lecture: 0 credit
 No extensions given for these activities
 Two activity types
 Participation activity: may retry until correct
 Challenge activity: problems may change if
incorrect certain number of times

10/22/2019 ECE Application Programming: Lecture 1 8


Programming assignments
 Will submit all code through textbook IDE
 Brief “submission” to Blackboard for style grading

 Penalty after due date: -(2n-1) points per day


 i.e., -1 after 1 day, -2 after 2 days, -4 after 3 days …

 Grading generally split as follows:


 60%: Code compiles & generates correct output
 Output correctness auto-graded within textbook IDE
 40%: Programming style
 Instructor/grader will examine code and grade accordingly

 May resubmit each program once for regrade

10/22/2019 ECE Application Programming: Lecture 1 9


Course “rules”
A couple of unofficial rules:
1. Please address your instructor appropriately
 For example, “Dr. Li” or “Professor Geiger”

2. Please don’t talk when I’m talking


 Doing so distracts your classmates and me
 If you have a question, please raise your hand
and ask—I want questions during lecture!

10/22/2019 ECE Application Programming: Lecture 1 10


Course questions
General notes/questions about the course:
1. How many of you have prior programming
experience?
 If so, hopefully you become a better programmer
 If not, don’t worry—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!!!

10/22/2019 ECE Application Programming: Lecture 1 11


Course questions (continued)
2. 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

10/22/2019 ECE Application Programming: Lecture 1 12


Our first C program
#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}

10/22/2019 ECE Application Programming: Lecture 1 13


10/22/2019 ECE Application Programming: Lecture 1 14
Our first C program
# indicates pre-processor directive

include is the directive

stdio.h is the name of the file to "insert" into


our program. The <> means it is part of the C
development system

#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}

10/22/2019 ECE Application Programming: Lecture 1 15


Our first C program

main is the name of the primary (or main) procedure. All


ANSI C programs must have a main routine named main

The () indicates that main is the name of a procedure.


All procedure references must be followed with ()

#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}

10/22/2019 ECE Application Programming: Lecture 1 16


Our first C program

{ } enclose a "block". A block is zero or more C statements.


Note that code inside a block is typically indented for
readability—knowing what code is inside the current block is
quite useful.

#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}

10/22/2019 ECE Application Programming: Lecture 1 17


Our first C program
printf() is a "built-in" function (which is actually defined in
stdio.h).

"Hello World!" is the string to


print.
More formally, this is called the
#include <stdio.h> control string or control specifier.
int main()
{
printf("Hello World!\n");
return 0;
}
Every statement must end with a ";". Preprocessing
directives do not end with a ";" (but must end with a return).

10/22/2019 ECE Application Programming: Lecture 1 18


Our first C program
The \n is an escape character used by the printf
function; inserting this character in the control string causes
a “newline” to be printed—it’s as if you hit the “Enter” key

#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}

10/22/2019 ECE Application Programming: Lecture 1 19


Our first C program
The int tells the compiler our main() program will return
an integer to the operating system; the return tells what
integer value to return. This keyword could be void,
indicating that the program returns nothing to the OS.

#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}

10/22/2019 ECE Application Programming: Lecture 1 20


Final notes
 Next time:
 Continue basic C program structure
 IDE demonstrations
 zyBooks IDE
 Visual Studio

 Reminders:
 Chapter 1 exercises due Monday, 1/28
 Program 1 due Wednesday, 1/30
 10 points: register for access to the course textbook
 10 points: introduce yourself to your instructor
 30 points: complete simple C program

10/22/2019 ECE Application Programming: Lecture 1 21

Potrebbero piacerti anche