810:053 Intermediate Computing Dr' Schafer - PowerPoint PPT Presentation

1 / 26
About This Presentation
Title:

810:053 Intermediate Computing Dr' Schafer

Description:

Write code on your own! Think of simple problems on your own (or from the text) and solve them. ... questions or specific examples that raised your questions. ... – PowerPoint PPT presentation

Number of Views:24
Avg rating:3.0/5.0
Slides: 27
Provided by: BenSc
Category:

less

Transcript and Presenter's Notes

Title: 810:053 Intermediate Computing Dr' Schafer


1
810053Intermediate ComputingDr. Schafer
2
Getting to know you
  • Pull out a sheet of notebook paper and fold it in
    half the long way .
  • Using one of the markers I will pass around,
    write your first name and last initial (or the
    name you would like to be called).
  • While I come around and take your mug shot
    please begin to complete the info sheet that I
    will pass out.

3
What would be on my info sheet?
  • Name Dr. Ben Schafer
  • Hometown Ames originally.
  • Class This is my 14th year at UNI (5 as a
    student)
  • Previous programming experience? I probably use
    Java and Python the most.
  • Why are you TEACHING this class? I truly enjoy
    teaching the introductory classes and OOD
  • Other things about me you should know
  • My handwriting can be messy
  • My voice can get loud
  • I am teaching with two different languages this
    semester

4
Getting Started
  • I will hand you a syllabus.
  • Please make sure you read it by Wednesday and
    come prepared to ask questions.
  • But a few issues I want to highlight today.

5
Important times and places
  • Formal office hours
  • MWF 11-1150 (ITTC 316)
  • Th 1000-noon  (ITTC 316)
  • Having said that, I follow an open door policy
  • Time and Place  
  • MWF   1200-1250 AM, ITTC 322

6
Rooms you should know!
  • ITTC 322 Lectures
  • ITTC 305 The departmental office
  • ITTC 316 My office
  • ITTC 335 Small general purpose lab
  • Wright 339 and Wright 112 Open-lab most days of
    the week
  • Wright 206 CNS tech support

7
Grading
8
Scholastic Conduct
  • I take scholastic conduct SERIOUSLY!
  • You are responsible for being familiar with the
    universitys Academic Ethics Policies
    (http//www.uni.edu/pres/policies/301.shtml) and
    my comments on scholastic conduct in my course.
  • General rule
  • Discussing assignments is normally acceptable.
  • Copying code or answers is not. 
  • First and foremost, your final submission for any
    assignment should be your own individual,
    original work unless otherwise specified.

9
No Distractions!
  • Cell phones (turn them OFF)
  • Texting during class will result in a 0 for
    attendance/participation
  • Computers and PDAs

10
Guidelines for Success in this Course
  • Prepare for lecture! Read the text selections
    before the start of lecture and complete any
    class prep assignment.
  • Be on time. Class sessions will start promptly at
    1200.  I will collect assignments at that time
    and will often start with important
    announcements.
  • Try things from the book.  Although I may
    sometimes use the book's activities in lectures,
    you will gain more if you try them yourself on
    your time and at your pace. 

11
Guidelines for Success in this Course
  • Write code on your own! Think of simple problems
    on your own (or from the text) and solve them. 
    If you wonder "what if," TRY IT!
  • Make use of the office hours early! Don't wait
    until late in the term to seek help.
  • If you spend more than 15 minutes staring at the
    computer stuck on something, ask for help!  I am
    frequently in my office, and there are TAs
    available in the lab several hours a week.
  • Be specific in your questions when possible.
    Rather than asking for an explanation of a large
    or general topic, be prepared with specific
    questions or specific examples that raised your
    questions.

12
Guidelines for Success in this Course
  • Make sure that your code runs in the lab. This is
    especially important for those who complete
    portions of their work at home. Verify that code
    that runs off campus actually runs in the lab so
    there are no surprises at grading time.
  • Remember, programming takes practice.

13
How is this course different from your
introductory sequence?
  • CS I focuses on learning to code.
  • How do I put sequences of commands together to
    solve a problem?
  • Often focusing on procedural programming
  • Often focusing on writing code at the
    method/function level

14
How is this course different from your
introductory sequence?
  • CS II focuses on learning to deal with data.
  • How do I use different data structures/types to
    solve a problem
  • Probably introduced the concept of classes or
    libraries without discussing much detail of class
    design.
  • Even if you talked about classes, the discussion
    was limited to small programs with a very
    limited number of classes.

15
How is this course different from your
introductory sequence?
  • Intermediate Computing focuses on learning how to
    write larger and more complex programs
  • How do I use this concept of an object oriented
    language to craft complex yet flexible programs?
  • Going beyond just writing code, but writing
    good code
  • Its also a BIT of an introduction to the concept
    of software engineering.

16
What will we cover this semester?
  • The OO software development process
  • OO Analysis and Design
  • Modeling languages
  • Software reuse
  • Frameworks
  • Design Patterns
  • Testing and debugging
  • Graphical User Interfaces (GUIs)
  • Event-driven programming
  • Networks and sockets
  • Software Tools
  • Oh, yeah and how to do it all in Java

17
Introduction
  • Coding represents 15 to 20 percent of time to
    develop production software
  • Strategies for writing small programs are not
    effective for large programs
  • Virtually all real-world software is at least
    medium sized
  • Millions of lines of code
  • Dozens of programmers
  • Operating systems, database programs, e-commerce
    applications

18
Introduction (continued)
19
The Challenges of Software Development
  • Complexity How do you manage that much code?
  • Longevity and Evolution Lots of companies still
    working with and maintaining legacy code
  • High User Expectations End users are no longer
    experts

20
Managing these challenges
  • The creation of a methodology to formally define
    and organize the activities that are part of this
    software development process
  • The term software engineering was first used in
    the late 60s (but is still a hotly contested
    term) No universal agreement on exact steps in
    software development

21
Managing these challenges
  • Preparation required before writing code
  • Specify the problem
  • Design the overall structure of the solution
  • Select and analyze algorithms and data structures
  • After work completed
  • Testing
  • Documentation
  • Support
  • Maintenance

22
The Software Life Cycle (continued)
  • No universal agreement on exact steps in software
    development
  • Software life cycle
  • Problem specification
  • Program design
  • Selection of algorithms and data structures
  • Coding and debugging
  • Testing and verification
  • Documentation and support
  • Maintenance

23
The Software Life Cycle (continued)
24
(No Transcript)
25
What are the goals of any software development
process?
  • To produce a software system that is
  • Useful
  • Timely
  • Reliable
  • Maintainable
  • Reusable
  • User Friendly
  • Efficient

26
For next time
  • Read the syllabus and come prepared to ask
    questions
  • Read Chapter 1
Write a Comment
User Comments (0)
About PowerShow.com