LectureNotes01x - Lyle School of Engineering

Download Report

Transcript LectureNotes01x - Lyle School of Engineering

CSE 1341-Honors
Principles of CS I
Professor Mark Fontenot
Southern Methodist University
Overview
Introductions
Administrative Material – Syllabus & Outline
What we’re going to cover in this class
Step 1…
Course Staff
Professor Mark Fontenot
SIC 351
[email protected]
214-768-2854
John Howard – TA
[email protected]
Office Hours
Official
Tuesday: 9:30 – 10:30
Friday: 9:00 – 10:00
Electronic
Send me email any time
Please Identify yourself and what class you are in
General Open Door Policy…
If my office door is open, feel free to come in and see if
I’m available
Who are you?
Class Introductions…
Getting Assistance
Please (please please) ask questions in class
Office Hours
CSE Help Desk
Located in the SIC
Staffed throughout the day by CSE department TAs.
Schedule forthcoming… Stay tuned!
Course Evaluation
Homework/Quizz
es
10%
Participation
5%
Exams
25%
Interdisciplinary
Project
30%
Programming
Projects
30%
Exams
3 Exams throughout the semester
Will be taken in-class or take-home
Think of them as check-points to make sure we’re all
on the same page.
No comprehensive final!
Make-ups not allowed unless you talk to the prof first.
Homework/Quizzes
Commonly assigned
Practice something we’ve learned
or
Questions over class preparation material (such as
reading, etc)
Some may be done right on Blackboard
Programming Projects
Opportunity to use something we’ve learned and put it
into practice
Implement and test complete programs
Will be completed in and out of class (depending on
how long it takes you)
Complete solutions will be zipped and submitted to
Blackboard
Interdisciplinary
Project
ME, CSE and EE first-year class
Based on Lego NXT platform
Engineering in Action!
Project Kick-off – Mid-September!
Attendance
You’ve got to come to class!
Your grade will reflect your attendance
Participating is required and essential
Don’t surf the net, do Sudoku puzzles, or txt at
inappropriate times
Act like an adult…
Academic Ethics
Pillar of higher education: the work you produce
should be your own.
SMU Honor Code Applies to all classes
If an assignment is to be done individually (i.e. exams),
it is expected that they will be completed in that
manner
If an assignment is collaborative, then you may work
with your team members as much as you want (i.e.
robotics project)
Inappropriate Collaboration
Penalties
1st Occurrence – Zero on Assignment
2nd Occurrence
F in course
Honor Council
We reserve the right to modify these penalties on a
case-by-case basis.
Can you talk to your
classmates?
Yes, yes, and yes!
Discuss concepts, ideas, and theories.
Study for exams
Review reading material together
Work on in-class assignments as appropriate
You know what’s right and what’s wrong…
The Class…
What should you know?
How to use a computer
Navigate the file system
Files
Folders
How to zip and unzip files
Basic skills with Productivity Suite (i.e. Microsoft Office)
How to look things up on the web (i.e. Google)
Not expected to know anything about programming or Java. If you
do, super! If not, don’t worry!
What’s this course about?
Fundamentally, this course is all about solving
problems using a computer
Talk to/command computer using a programming
language
Java in our case
You’re going to develop a set of skills which you will be
able to use to solve problems using a computer
…go go gadget
for loop…
What do you need for this
class?
Patience… Sometimes things don’t go as expected.
The textbook
Binder for handouts
A computer.
Laptop would be optimal but not required.
Mac, PC, Linux
Software
Java 1.5 SDK or higher
Netbeans Development environment
What do you need for this
class?
Software
Java 1.5 SDK or higher
Netbeans Development environment
Text editor
Notepad (PC)
TextEdit (Mac)
gEdit (Linux)
Hundreds of others to choose from…
Links to Bookmark
Blackboard – http://courses.smu.edu
All handouts, assignments, etc. posted here.
You’ll upload completed assignments here
Some quizzes/homework may be completed directly in
Blackboard
How To Think Like A Computer Scientist –
http://www.greenteapress.com/thinkapjava/thinkapjava.pdf
Title is a joke mostly
Succinct explanation of concepts
Will use in conjunction with textbook you bought
Let’s Start…
How a computer scientist solves a problem…
What is Computer Science?
Study of computation
What is possible with a computer
How to solve problems “efficiently” using a computer
What does efficiently mean?
Tons of sub-disciplines
Database Systems
Security Engineering
Networking
Others?
What’s really the problem?
Figuring out the problem – vitally important
Why?
Design a Solution - Algorithms
An algorithm is
Sequence of steps
Solves a problem
Finishes after a finite number of
steps (in a finite amount of time)
Algorithm Primitives
Make a decision
If the lid is on the jar
Unscrew and remove the lid
If turning right
engage right turn signal
Else if turning left
engage left turn signal
Do something multiple times
For each piece of bread
scoop peanut butter
spread on piece of bread
Implement your solution
This is where Java (or other programming languages)
enter the scene
Translate your solution/algo to source code
Syntax vs. Semantics
Syntax – rules of the programming language your using
Semantics – what to write - how to use the rules to your
advantage
public class Solution {
public static void main (String [] args) {
System.out.println(“Solving the problem”);
//Other stuff
}
}
Testing the Implementation
Verify
Validate
Can’t ever test all possible scenarios (ask Microsoft!)
Very complex area – you can get a PhD in Software
Testing
Maintenance
Add new features
Enhance old features
Fix bugs discovered by users
Piece of software will spend the majority of its live in
this stage…
To Do List:
Read Ch1 of Head First Java and Ch1 of TLACS
Make sure you complete the survey on Blackboard
Install the Java SDK and Netbeans on your personal
computer
Read your email 