Title: AC1101 Introduction to Software Design
1AC1101Introduction to Software Design
2This weeks sessions at 9am
- Today Introduction to the course
- Tuesday Working together
- Wednesday Managing your study
- Thursday First practicals
- Friday The course in miniature
3What is Applied Computing?
- Applied Computing is about the design and
implementation of original and imaginative
solutions to meet the needs of users, and about
communicating these solutions in a professional
way.
4Applied Computing in AC1101
- Design
- Implementation
- Needs of users
- Communicating
- Professionalism
- ENJOYMENT
5What You Will Learn in Practice
- Establishing requirements
- User-centred approach
- Software design
- Problem solving
- Computer programming
- in the C programming language
- Reporting communicating
- Documenting
6Skills
- Programming through problem solving
- Program development tools
- Practical skills in Windows environment
- Simple structured design methods
- Problem solving strategies
- Working independently
- Communicating your plans, results etc
- written, oral, visual
7A Typical Week ...
- 5 one hour sessions ... one a day, 9-10am
- We talk to you (introduce topics on Monday)
- You do things (on your own in groups)
- We all discuss things solve problems
- A WORKSHOP approach
- Professional issues
- 1 laboratory session of 2 hours
- Computing clinic support
8Software Development Performance Curve
High
Coding Rate
Syntax Errors
Low
Low
High
Knowledge
9Support Mechanisms
- Talk to staff and lab tutors!
- Ask questions during sessions
- Individually
- Course meeting Fridays at 9am
- e-mail forum AC-1_at_computing
- Computing clinic
- Course web site via the Course Guide
10Succeeding in AC1101
- Coursework 40
- Class Examination
- Week 12 (i.e. term 2)
- Degree Examination 60
- Summer term
- Pass both Coursework and Exam
- (Pass 40)
- EXEMPTION from the AC1101Degree Exam
- 60 in Coursework
- 60 in Class Exam
11Coursework Deliverables
- Lab reports, including Requirements Design for
project (25)(all this term) - Fully developed project in term 2 (15)
- A PORTFOLIO OF WORK
- ALL DELIVERABLES DUE AT START OF LECTURE ON
TUESDAY OF THE WEEK SHOWN IN THE COURSE GUIDE
12What is a Portfolio?
- Your Log book
- Diary of effort
- Rough notes/ sketches
- Lab reports
- Code listings (documented!)
- Project software and report
- Presentation (e.g. poster, handout)
13Handing in Deliverables ...
- Reports and program listings should be printed.
Submit coursework on 3.5 inch disk as well. - Programs must include your C source code, the
compiled working (or not!) program (.exe file)
and any data files that are needed to run the
program - Reports must be Word files
- All work must have a dated, signed cover sheet
- Hand work in at Tuesday lecture session
- All work must be marked with your NAME the
deliverable number (e.g. AC1101.3a) - All files must be in a directory with the number
of the deliverable (e.g. AC1101.3)
14A Note on Viruses ...
15Practical Work Organisation ...
- Tutors
- Lab sessions on Thursday afternoon
- 2 - 4 pm or 4 - 6 pm in the East West labs in
the MicroCentre - Timetable of bookings for the lab
- First come, first served at other times
165 things to do this week (1)
- Make sure you can login to OUR system and can use
e-mail to read and write messages - Start looking at C programming textbooks
- Buy something to use as your log book
- Buy some 3.5 inch disks
- Carefully read the AC 1101 Course Guide and
Applied Computing in First Year - Get to know people in the class
17AC1101TuesdayWorking together
18Today working together
- University vs. School differences
- Brainstorming
- Working with others
- What do you expect of us
- What do we expect from you
19School vs University
- What are the major differences?
- Subtle differences?
- Similarities?
- Talk to your neighbour for 5 minutes make notes
- Lets discuss
20Brainstorming
- A way of getting loads of ideas quickly
- Great for starting a project off
- How to do it
- Everyone shouts out ideas
- ALL ideas accepted without judgement
- Someone writes them where everyone can see them
- Discuss/refine
21Why do people go to University?
22Working with others (1)
- Getting it right
- How do you expect people to behave in class?
- What is unreasonable behaviour in a computer
lab? - Discuss make notes
23Working with others (2)
- Some discussion ideas
- Playing computer games
- Food and drink
- Mobile phones
- Keeping clean/ hygiene and awkward stuff
- Internet behaviour
- Locking machines
- Cheating
- Basic manners
24Working with others (3)
- What do you do if someone is not behaving
reasonably? - For serious abuses there is behave_at_computing
- Or talk to a member of staff
25Working with others (4)
- What should you expect of staff?
- What should staff be able to expect of you?
- Talk to your neighbours for 5 minutes lets
discuss that, too.
26What do we expect from you?
- WE will help you to get maximum benefit from this
course and provide support for you to learn
effectively
- YOU are responsible for and in control of your
learning - YOU take full notes at lectures and review them
- YOU study independently
- YOU hand in deliverables - and on time
- If you get stuck - YOU seek help
- YOU read your e-mail at least ONCE A DAY and
reply when appropriate - YOU take a full part in activities
27AC1101WednesdayManaging you study
28Today
- Note taking
- Time management
- Log book
- Plagiarism cheating
29When you go to lectures
- Handouts sometimes
- Access to overhead slides
- Things to do then
- Listen
- Take part in discussions
- TAKE NOTES
- Review them later
30Note taking - exercise
- Notes of presentation are on your handout
- Listen to the presentation and make your own
notes - After, review and compare your neighbours notes
31Structure Diagrams
32Structure diagrams
- What are they used for
- What do they look like
- How are they created in Word 2002
33Structure diagrams What are they used for?
- Method to create the general layout of your
program (without coding) - To break down a general problem into smaller
chunks (Top-down design) - Write down functions that the program should
fulfil (in a hierarchical manner) - Main program -gt Collection of chunks of
functions - Most simple chunks
- Input - Processing - Output
34Structure diagrams What do they look like?
Update
Chequebook
35Structure diagramsCreating them in Word 2002
- Open new Word file
- From Menu select Insert Diagram
- Diagram Gallery
- Inserting boxes
- Select Insert Shape from the menu and select what
you want to add - Set cursor in box to which you want to add
another box
36Time management
37Log book
- Log-book collection of your thoughts, work etc.
- Serves two main purposes
- Recording the development of your ideas.
- A diary of effort.
- A Log-book hand-out is provided.
38Recording the development of ideas
- Can think of it as a sketch book for software
development. - No strict format.
- Should contain
- Rough work
- Ideas and designs
- Programming notes
- Anything else YOU think is relevant
39A diary of effort
- The start of the Log-book should contain a record
how much time you spend on AC1101. - Calculate how much time you have available per
week for AC1101. - Note how much time you spend and what you did.
This should include lectures, labs, tutorials,
assignments personal study.
40Plagiarism cheating
- What is your own work?
- When is it OK to use other peoples work
- from books and the internet
- from other students
- What is plagiarism?
- Discuss with your neighbour
- take notes
41Example 1a Program produced by student a
- void main()
-
- int score, big, joe, ron, cash, joecash
- score0
- big10
- joe3000
- ron1000
- joecashjoe
- /if statements below/
-
- if(scoregtbig)
- printf(Jackpot!\n) /simple statement/
- if(joegtron)
-
- joecash
- printf(You loose Ron.\n)
- /compound statement/
-
- /if statements taken from Waite, M, Prate, S,
Martin D (1987) C Primer Plus. Howard W. Sams
Company Indianapolis, USA. pp. 165/
42Example 1b Program produced by student b
- void main()
-
- int scores, bigger, joe, ron, cash, joescash
- scores0
- bigger10
- joe3000
- ron1000
- joescashjoe
-
- /if statements below/
-
- if(scoregtbig)
- printf(Jackpot!\n) /simple statement/
-
- if(joegtron)
-
- joecash
- printf(You loose Ron.\n)
- /compound statement/
43Example 2a C-code snippet produced by student c
- /
- Wind Chill for exposed human skin, expressed
as a function of wind - speed in Miles per Hour and temperature in
degrees Fahrenheit. -
- Public domain from numerous published
references. - /
- include ltmath.hgt
-
- double wind_chill(int wind_speed, int temp)
-
- if (4 gt wind_speed)
- return (double)temp
- else
-
- return (((10.45 (6.686112 sqrt((double)
wind_speed)) - - (.447041 wind_speed)) / 22.034 (temp -
91.4)) 91.4) -
-
44Example 2b C-Code snippet produced by student d
- /
- Wind Chill for exposed human skin, expressed
as a function of wind - speed in Miles per Hour and temperature in
degrees Fahrenheit. -
- /
- include ltmath.hgt
-
- double WindChill(int WindSpeed, int temp)
-
- if (4 gt WindSpeed)
- return (double)temp
- else
-
- return (((10.45 (6.686112 sqrt((double)
WindSpeed)) - - (.447041 WindSpeed)) / 22.034 (temp -
91.4)) 91.4) -
-
45Example 3a C-code snippet produced by student e
- Student e writes
- This C- code snippet was created by myself and
my pal Bill Smith -
-
- printf(This code was done by me!\n)
- printf(Dont doubt that.\n)
-
46Example 3b C-code snippet produced by student
Bill Smith
-
- printf(This code was done by me!\n)
- printf(Dont doubt that.\n)
47AC1101Thursday First practical
sessionPersonal safety (DUSA)
48Today
- Looking at resources in more detail
- Internet
- Books
- This afternoons practical session
- Personal safety on campus
49Looking at internet resources in more detail
- Internet - who has accessed the internet?
- What is a search engine?
- A program that receives your search request,
compares it to the entries in the index, and
returns results to you - Applied computing website.
- http//www.computing.dundee.ac.uk
- What information could be found here?
- University website.
- http//www.dundee.ac.uk
50Looking at resources in more detail
- Applied computing internet resource
- http//www.dundee.ac.uk
- What information can be found here?
51Applied computing website. Information for
students
- Information for students
- Course guides
- Timetables
- Student handbook
- And a lot more.
52AC1101 Course Guide
- What is in the AC1101 course guide
- Course information
- Lecture slides
- Assignments information
- And a lot more.lets have a look.
53University website. Resources for students
- Got to the http//www.dundee.ac.uk and click on
the link to Current Students - Resources for current students
- Transferable skills
- Support services
- Financial information
- And a lot more.
54Internet search engines
- There are many search engines.
- A widely used search engine is Google as it is
(usually) quick and not as commercial as some
others (http//www.google.com/). - There are many others including
- AltaVista (http//www.altavista.com/),
- Lycos (http//www.lycos.com/),
- Webcrawler (http//www.webcrawler.com/),
- Yahoo (http//www.yahoo.com/),
55What is out there?
- There are many web sites with information on
software development and c programming. - Detailed descriptions.
- How to do this guides.
- Example code.
- Internet resources are of distinctly VARYING
quality. - There are a huge number of possibly useful
websites. - Cannot guarantee that the information is always
correct. - Example code may not always run correctly.
56Finding an internet resource.
- Lets try to find a Hello world program.
- What would you type into the search engine?
- C program hello world
- Compare results using Google and Altavista.
57Books
- The library
- There are a large selection of books on Software
Development and c programming - Recommended book list
- See the AC1101 Course guide!
58Exercises
- Grab someone as a team
- Find a book on C programming in the library
(after the lecture!) - In this afternoons lab
- Browse and become familiar with the Applied
Computing web pages. - Create a text document and send it as a zipped
attachment. - Use internet search engines to compile a list of
useful resources. - A lab sheet will be provided with detailed
instructions.
59AC1101FridayThe course in miniature
60Cryptography
- We have to produce a computer program to encipher
text messages using a monoalphabetic substitution
cipher - Given the plaintext phrase
- the quick brown fox
- the program will produce the ciphertext
- aoq ebmlz ushfp whg
- The translation uses this conversion table
- cipherabdfgjk
- lmnoqstuvwxyz
- Each character in the plaintext is replaced by
the character in the row above or below it in the
table
61And finally