1 / 17

Exploring Computer Science: An Easy Introduction to Programming

This course aims to provide a low-stress introduction to computer science and programming for students who want to explore the field without committing to a major course. It will cover basic programming skills and offer independent student exploration of different topics in computer science. The course will be pass/fail and focused on problem-solving through programming tasks and developing independent problem-solving skills. No exams will be given except for a pre-programming skills test for instructional assessment. The course will follow a schedule with different modules covering introductory discussion, following directions, problem representation, problem subtasking, implementation and testing, and indirection/programming. Homework assignments, exploration reports, and suggested readings will be provided.

ggammon
Download Presentation

Exploring Computer Science: An Easy Introduction to Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Computer Science Made Easy? J. Philip East Computer Science Department University of Northern Iowa east@cs.uni.edu Some students want to explore computer science but not commit to the intense introductory major course. Some students lack intellectual skills to succeed (in 1st attempt) in regularly-paced programming course. Let's discuss ideas for accomplishing both these goals in a single course.

  2. Course Goals • Computer Science Made Easy • Student difficulty in CS-I • Recruitment/diversity • Explore/examine skills needed for programming • (Am hoping to get feedback and suggestions from you)

  3. Exploring C.S. & Programming • One credit college course (6-9 week high school course?) • Course rationale/purpose • Provide exploration of computer science • Provide computer use skills • Be low stress • Develop pre-programming skills • Available to explorers and CS-I dropouts

  4. The Exploration Part • Introductory discussion • Define CS (solving problems via software development) • Discuss kinds of jobs to be had • Characterize programming (your favorite characterization?) • Independent student exploration • Students explore jobs, topics in CS • Sharing/discussing explorations

  5. Low Stress • Pass/Fail rather than graded • Grading scheme: • Scores: missing=0, fair=1, ok=2, good=3, excellent=4 • Must average "ok" to pass • Showing up and participating will be important • No exams (except possibly a pre-programming skills test that will be used to assess instruction, not students)

  6. Two Planning Approaches • Thinking in terms of programming tasks • Thinking about the independent skills • Obviously, some overlap • Goal of understanding learning & teaching implies focus on independent skills

  7. Programming-like Tasks • Directions (following & giving) • Abstraction (names/definitions; using syntax charts and FSAs--interpreting, defining, debugging; indirection) • Sequencing instructions (including various control structures) • Troubleshooting/debugging/diagnosing • Problem representation • Problem subtasking

  8. Independent/Basic Skills • Following directions (various contexts) • Being planful (includes most tasks on previous slide) • Problem representation (identify outcome(s), known data/resources, required/necessary tasks/interactions) • Problem subtasking (problem subdivision with representation) • Solution testing/debugging (requires observation, comparison with expectation, identifying problem, fixing) • Solution implementation--concretizing • Patterning is an underlying mechanism

  9. Following Directions • Subskills • Careful listening/reading • Interpreting • Seeking clarification • Practice with feedback/self-assessment • Lots of contexts

  10. Being Planful:Problem Representation • Varied contexts • Individual and group exercises may be used • Student success is measured by their personal formulation of the problem/scenario (outcome(s), known data/resources, required/necessary tasks/interactions) • Self-assessment and discussion of formulations

  11. Being Planful:Subtasking/Actual Planning • Build from prior tasks/contexts/problems • Formalized/explicit planning versus real-time implementation under observation • Require some formalization of plans (collection of subproblem representations) • Sequencing introduced here (problem selection important) • Discussion and self-assessment RE plans

  12. Implementation/Concretizing • Next step (but not part of "planful" skills) • Will follow from (some) planned problem solutions • Two possible approaches • Repeatedly implement and test a solution • Implement several solutions and, later, test them all

  13. Being Planful:Testing/Debugging • Will build on student or instructor supplied solutions • Involves: stating expectations, observing results, comparing the two, identifying problems, fixing the problems, and comparing with expectations, … • Comments RE process?

  14. (Oh, Yeah) Indirection • I like this too much to leave it out • Probably should be included anyway • Arrays, indexes, pointers, abstracted comments (from real life and from other notations)

  15. Testing these Skills • Requires • New contexts • Multiple items per skill • Careful selection of tasks to isolate skills • Relatively easy checking? • ?

  16. Schedule (≈1 week each) Intro & CS exploration Following directions Problem representation Subtasking Implementing & testing Indirection/programming Review/test/? Assignments Task homeworks Exploration report Suggestions? Plans for the Course

  17. Bibliography • Course descriptions • Theory • Predicting programming skill • www.cns.uni.edu/~east/scholarship/necc/cs_made_easy

More Related