Course Summary Fall 2006 CS 101 Aaron Bloomfield

  • Slides: 35
Download presentation
Course Summary Fall 2006 CS 101 Aaron Bloomfield 1

Course Summary Fall 2006 CS 101 Aaron Bloomfield 1

Course Reflection 2

Course Reflection 2

Course goals o Objectives: Students who complete the course will: n Understand fundamentals of

Course goals o Objectives: Students who complete the course will: n Understand fundamentals of programming such as variables, conditional and iterative execution, methods, etc. n Understand fundamentals of object-oriented programming in Java, including defining classes, invoking methods, using class libraries, etc. n Be aware of the important topics and principles of software development. n Have the ability to write a computer program to solve specified problems. n Be able to use the Java SDK environment to create, debug and run simple Java programs. 3

Unstated course goals o Everybody needs to have a “base” level of programming to

Unstated course goals o Everybody needs to have a “base” level of programming to continue on in the CS courses (or as required by other departments) n CS 101 and 201 provide that “base” level 4

What was new this semester o o o Each of the homeworks and exams

What was new this semester o o o Each of the homeworks and exams are always new each semester n Because of the ‘fraternity file’ effect The course project n A new one was developed for this semester n And it was handled better than it was last semester n The visual diagrams to show what was going on Videos of lectures Clicker response system Using cs 101 e-mail for faster response 5

Changes on deck for next semester o o o o Will keep (and improve

Changes on deck for next semester o o o o Will keep (and improve upon) all the stuff from the last slide Study groups n The idea is a way for people to study and/or work together (not group assignments) n This is a bit difficult to implement unless you have very large lectures Textbook is changing! n This will also mean the slides will change as well Different clickers (the ones you use for CHEM 151) Won’t be using Code. Lab n Might use a similar system I want to talk about debugging more n We are considering a site license for the debugging version of JCreator Will (hopefully) have more TAs, and thus more TA office hours Might have forums/newsgroups on the website 6

What didn’t work this semester o o o Textbook issues during the first month

What didn’t work this semester o o o Textbook issues during the first month of the semester n One of the big reasons I’m changing books Clickers! Want to lower the amount of student frustration 7

What did work this semester o o o Videos of lectures Clickers, sort of

What did work this semester o o o Videos of lectures Clickers, sort of Using cs 101 e-mail for faster response Many things that were “behind the scenes” n TA organization and utilization n Grading system n Me delegating the work better to the TAs The marshmallow gun! 8

Did I push too hard this semester? o o o I pushed the class

Did I push too hard this semester? o o o I pushed the class hard this semester But did I push too hard? Consider: n I’ve gotten more “things are going great” comments than I have “things are too hard” comments (anecdotal) n Homeworks took about 6 hours, on average o The results from the survey questions for each HW n There were 9 HWs over about 16 weeks o That’s about 3. 5 hours (on average) on homeworks per week From lab 12, This course required 5. 2 hours per week outside of lectures n Other courses required 6. 2 hours I’m interested in your feedback on this! n But not today in lecture… 9 n Please send e-mail (anonymous or not) if you have comments…

The Big OOP Picture 10

The Big OOP Picture 10

The classes for the game o o o o o Ship (HW J 6)

The classes for the game o o o o o Ship (HW J 6) Cell (HW J 6) Descriptions (lab 9) Ship. List (HW J 7) Parser (Lab 10) AI (HW J 8) Human (provided in HW J 8) Map. Printer (lab 11) Board (HW J 9) Game (provided) 11

How a big OOP program interacts o o o Note how the classes interacted

How a big OOP program interacts o o o Note how the classes interacted in the game A lot of objects were created and manipulated n A Cell for each spot in the Board grid n Ships possible in each Cell n Etc. The way this game has objects interacting is how a big OOP program would work 12

“rowboat" Cell - ship - is. Hit = false +… Ship. List - int

“rowboat" Cell - ship - is. Hit = false +… Ship. List - int ship. Count = 0 - Ship[] list b Cell +… Board - ship - is. Hit = true +… (0, 0) - int NOT_SHOT_AT = 0 - int MISSED = 1 -… - int sizex = 8 - int sizey = 8 - Ship. List ships - Cell [][] cells Ship - length = 2 - name - int x. Position = 0 - int y. Position = 0 - int hits = 1 - boolean is. H = false +… Ship Cell - ship - is. Hit = false +… +… (7, 7) Cell Cell - ship - is. Hit = true +… - ship - is. Hit = false +… - length = 3 - name - int x. Position = 4 - int y. Position = 7 - int hits = 1 - boolean is. H = true +… “canoe" 13

Problem solving o o o To solve a problem in CS, you break it

Problem solving o o o To solve a problem in CS, you break it down into smaller and smaller pieces… A big program is broken down into packages n Which we haven’t really seen yet n Consider the game to be one package The packages are broken down into hierarchies n This uses inheritance n Our game didn’t use a hierarchy, as you did not know of inheritance at that point The hierarchies are broken down into classes n The game had 10 classes Each class is broken down into methods and variables n Some (such as Map. Printer) only had a few; others (such as Ship) had lots Each method is broken down into parts, etc. 14

The completed game o o o This could easily be made by multiple people

The completed game o o o This could easily be made by multiple people n Each person does a separate class n Not exactly equal, but it still lowers the workload Our (fully commented) code for the game was well over 1, 000 lines n Granted, we had very long comments However long yours was, it was a about a 1, 000 line program n Even if you had trouble getting parts working, and had to use our code n You still wrote all the parts, and saw how they interacted with the rest of the system 15

Review of Chapter 1 16

Review of Chapter 1 16

Demotivator winners! n Methodology – 1 st place vote counted for 3 points –

Demotivator winners! n Methodology – 1 st place vote counted for 3 points – 2 nd place vote counted for 2 points – 3 rd place vote counted for 1 point n Will buy two demotivators and hang them in my office… n The results were as of 11: 00 today n The results, with 186 of 198 precincts reporting… 17

Engineering software o Complexity of software grows as attempts are made to make it

Engineering software o Complexity of software grows as attempts are made to make it easier to use 18

Software engineering o Goal n Production of software that is effective and reliable, understandable,

Software engineering o Goal n Production of software that is effective and reliable, understandable, cost effective, adaptable, and reusable o o Makescorrectly Work Because Cost Design tosense software develop of the due and so long to and not that the fail lifetime maintain new greatfeatures costs many should involved and people not capabilities to will exceed have be involved expected can flexible be added components benefit that can be used in other software n Creation n Debugging n Maintenance n Enhancement Two-thirds of the cost is typically beyond creation 19

Principles of software engineering o Abstraction o Encapsulation o Modularity o Hierarchy Determine relevant

Principles of software engineering o Abstraction o Encapsulation o Modularity o Hierarchy Determine relevant Ranking orthe ordering of properties and features Separate Construct components a system from into objects whileand ignoring external and internal components packages nonessential aspectsdetails 20

Object-oriented design o o Purpose n Promote thinking about software in a way that

Object-oriented design o o Purpose n Promote thinking about software in a way that models the way we think and interact with the physical word o Including specialization Object n Properties or attributes n Behaviors 21

Programming o o Problem solving through the use of a computer system Maxim n

Programming o o Problem solving through the use of a computer system Maxim n You cannot make a computer do something if you do not know how to do it yourself 22

Problem Solving Process o What is it? n Analysis n Design n Implementation n

Problem Solving Process o What is it? n Analysis n Design n Implementation n Testing 23

Problem Solving Process o What is it? n Analysis n Design n Implementation n

Problem Solving Process o What is it? n Analysis n Design n Implementation n Testing Determine the inputs, outputs, and other components of the problem Description should be sufficiently specific to allow you to solve the problem 24

Problem Solving Process o What is it? n Analysis n Design n Implementation n

Problem Solving Process o What is it? n Analysis n Design n Implementation n Testing Describe the components and associated processes for solving the problem Straightforward and flexible Method – process Object – component and associated methods 25

Problem Solving Process o What is it? n Analysis n Design n Implementation n

Problem Solving Process o What is it? n Analysis n Design n Implementation n Testing Develop solutions for the components and use those components to produce an overall solution Straightforward and flexible 26

Problem Solving Process o What is it? n Analysis n Design n Implementation n

Problem Solving Process o What is it? n Analysis n Design n Implementation n Testing Test the components individually and collectively 27

Problem Solving Process 28

Problem Solving Process 28

Tips o Find out as much as you can o Reuse what has been

Tips o Find out as much as you can o Reuse what has been done before o Expect future reuse o Break complex problems into subproblems 29

Tips o Find out as much as you can o Reuse what has been

Tips o Find out as much as you can o Reuse what has been done before o Expect future reuse o Break complex problems into subproblems Consider Research can is require and generate questions Find out what knownsignificant about thetime problem Sketching apresenter solution andbecause then repeatedly its components The worthwhile the resultrefine is a better Talk effort to theis until the entire process is specified understanding Determine what attempts have succeeded and what attempts True of the problem makes it easier to solve have understanding failed 30

Tips o Find out as much as you can o Reuse what has been

Tips o Find out as much as you can o Reuse what has been done before o Expect future reuse o Break complex problems into subproblems Your Be open timetoisindirect valuable use of existing materials Correctness is probably even more valuable Use existing infrastructure that is known to work 31

Tips o Find out as much as you can o Reuse what has been

Tips o Find out as much as you can o Reuse what has been done before o Expect future reuse o Break complex problems into subproblems Make as few assumptions as necessary Maximizes the likelihood that your effort can be used in future situations 32

Tips o Find out as much as you can o Reuse what has been

Tips o Find out as much as you can o Reuse what has been done before o Expect future reuse o Break complex problems into subproblems Divide-and-conquer Solve subproblems and combine into an overall solution 33

And the winner, with 37 votes, is… 34

And the winner, with 37 votes, is… 34

Have a great holiday break! 35

Have a great holiday break! 35