Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
CS 200 - Programming I
Marc Renault
Department of Computer SciencesUniversity of Wisconsin – Madison
Spring 2019TopHat Sec 3 (AM) Join Code: 560900TopHat Sec 4 (PM) Join Code: 751425
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
CS 200 - Programming I:Spring 2019
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
Computer Science and Programming
Computer Science
Broad discipline that explores any and all areas ofcomputation.Includes: theory of computation, algorithms, computergraphics, language theory, systems, and human-computerinteraction.
Programming
Providing a set of instructions to a computer to automate aspecific task or solve a given problem.An application of computer science.Implementing algorithms.
1/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
Computer Science and Programming
Computer ScienceBroad discipline that explores any and all areas ofcomputation.Includes: theory of computation, algorithms, computergraphics, language theory, systems, and human-computerinteraction.
Programming
Providing a set of instructions to a computer to automate aspecific task or solve a given problem.An application of computer science.Implementing algorithms.
1/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
Computer Science and Programming
Computer ScienceBroad discipline that explores any and all areas ofcomputation.Includes: theory of computation, algorithms, computergraphics, language theory, systems, and human-computerinteraction.
ProgrammingProviding a set of instructions to a computer to automate aspecific task or solve a given problem.
An application of computer science.Implementing algorithms.
1/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
Computer Science and Programming
Computer ScienceBroad discipline that explores any and all areas ofcomputation.Includes: theory of computation, algorithms, computergraphics, language theory, systems, and human-computerinteraction.
ProgrammingProviding a set of instructions to a computer to automate aspecific task or solve a given problem.An application of computer science.
Implementing algorithms.
1/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
Computer Science and Programming
Computer ScienceBroad discipline that explores any and all areas ofcomputation.Includes: theory of computation, algorithms, computergraphics, language theory, systems, and human-computerinteraction.
ProgrammingProviding a set of instructions to a computer to automate aspecific task or solve a given problem.An application of computer science.Implementing algorithms.
1/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
CS 200 Emphasises Declarative and ProceduralKnowledge
Declarative KnowledgeKnowing that something is the case.
Knowing the CS jargon.Knowing the Java syntax.
Procedural KnowledgeKnowing how to do something.
Solving a problem systematically.Writing that solution in Java.
2/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
CS 200 Emphasises Declarative and ProceduralKnowledge
Declarative KnowledgeKnowing that something is the case.Knowing the CS jargon.Knowing the Java syntax.
Procedural KnowledgeKnowing how to do something.
Solving a problem systematically.Writing that solution in Java.
2/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
CS 200 Emphasises Declarative and ProceduralKnowledge
Declarative KnowledgeKnowing that something is the case.Knowing the CS jargon.Knowing the Java syntax.
Procedural KnowledgeKnowing how to do something.
Solving a problem systematically.Writing that solution in Java.
2/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
CS 200 Emphasises Declarative and ProceduralKnowledge
Declarative KnowledgeKnowing that something is the case.Knowing the CS jargon.Knowing the Java syntax.
Procedural KnowledgeKnowing how to do something.Solving a problem systematically.Writing that solution in Java.
2/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
About You
My current year in school is:a. Freshmanb. Sophomorec. Juniord. Seniore. Graduate Studentf. Other
3/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
About You
My primary reason for taking CS 200:a. I am very interested in the subject.b. I am curious to learn more about the subject.c. It fulfils a requirement for my CS major or certificate.d. It fulfils a requirement outside of the CS major or
certificate.e. It fits my schedule.f. I’ve heard good things about the course.
3/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
About You
I have daily access (outside of university labs) tocomputers with the following operating systems:
a. Windowsb. Macc. Linuxd. Othere. None
3/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
About You
My favourite Star Wars movie (from the trilogies) is:a. I - The Phantom Menaceb. II - Attack of the Clonesc. III - Revenge of the Sithd. IV - A New Hopee. V - The Empire Strikes Backf. VI - Return of the Jedig. VII - The Force Awakensh. VIII - The Last Jedii. N/A - Never seen them
3/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
CS 200 Programming ISpring 2019 Teamhttps://cs200-www.cs.wisc.edu/wp/contact/
Instructors
Jim Williamsjimw @cs.wisc.eduLectures 001 and 002Office: 6384 CSHours: T 11am - 12noon,2:30 pm - 3:30 pm, W 9:00am- 11:00am, or by appt.
Marc Renaultmrenault @cs.wisc.eduLectures 003 and 004Office: 6382 CSHours: T 9:30am - 11:30am,W 2:30pm - 4:30pm, or byappt.
4/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
CS 200 Programming ISpring 2019 Teamhttps://cs200-www.cs.wisc.edu/wp/contact/
Consultants (Teaching and Lab Assistants)https://cs200-www.cs.wisc.edu/wp/contact/
4/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
CS 200 Websitehttps://cs200-www.cs.wisc.edu/
5/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
Course Aimhttps://cs200-www.cs.wisc.edu/wp/syllabus/
OverallIntended for students who have no prior programmingexperience.Teach the process of incrementally developing smallprograms along with fundamental CS topics.Key topics: problem abstraction, edit-compile-run cycle,data types, control structures, basic testing and debugging,and good programming practices.
6/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
Course Aimhttps://cs200-www.cs.wisc.edu/wp/syllabus/
Specific Learning OutcomesDesign and implement a standalone program that caninteract with the user via prompts and or menus, accessand edit data stored in an array or list structure, and useand further process the data found in those structures.
Able to trace code to determine output or results.Able to implement a given program design and choosecorrect control structures for implementing algorithmsexpressed in pseudocode.
6/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
Course Aimhttps://cs200-www.cs.wisc.edu/wp/syllabus/
Specific Learning OutcomesDesign and implement a standalone program that caninteract with the user via prompts and or menus, accessand edit data stored in an array or list structure, and useand further process the data found in those structures.Able to trace code to determine output or results.
Able to implement a given program design and choosecorrect control structures for implementing algorithmsexpressed in pseudocode.
6/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
Course Aimhttps://cs200-www.cs.wisc.edu/wp/syllabus/
Specific Learning OutcomesDesign and implement a standalone program that caninteract with the user via prompts and or menus, accessand edit data stored in an array or list structure, and useand further process the data found in those structures.Able to trace code to determine output or results.Able to implement a given program design and choosecorrect control structures for implementing algorithmsexpressed in pseudocode.
6/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
Course Aimhttps://cs200-www.cs.wisc.edu/wp/syllabus/
Specific Learning OutcomesAble to interpret a variety of diagram types used to expressprogramming concepts and results: truth tables, memorymodel diagrams, control flow charts, class diagrams, objectdiagrams, and use-case diagrams.
List, describe, use the basic I/O operations for reading andwriting text files to and from the computer’s hard drive.
6/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
Course Aimhttps://cs200-www.cs.wisc.edu/wp/syllabus/
Specific Learning OutcomesAble to interpret a variety of diagram types used to expressprogramming concepts and results: truth tables, memorymodel diagrams, control flow charts, class diagrams, objectdiagrams, and use-case diagrams.List, describe, use the basic I/O operations for reading andwriting text files to and from the computer’s hard drive.
6/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
Getting Started
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
Getting Startedhttps://cs200-www.cs.wisc.edu/wp/
Checklist1 Best Course for you?2 zyBook Registration3 TopHat Registration4 Activate Piazza account5 Activate CS Account6 Find Team Lab7 Review the Syllabus8 By week 3: Exam conflicts and accommodations9 By week 3: Install Java 8 and Eclipse on your computer
7/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
1. Best Course for you?
New to ProgrammingCS 200 is intended for CS majors or those who areplanning on doing more CS courses.CS 301 is intended for non-CS majors and is taught usingPython.
Experience in ProgrammingTry the first assignment from CS 300(http://cs300-www.cs.wisc.edu/wp/).If you can do it without help, talk to CS 300 instructorabout enrolling.
8/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
1. Best Course for you?
New to ProgrammingCS 200 is intended for CS majors or those who areplanning on doing more CS courses.CS 301 is intended for non-CS majors and is taught usingPython.
Experience in ProgrammingTry the first assignment from CS 300(http://cs300-www.cs.wisc.edu/wp/).If you can do it without help, talk to CS 300 instructorabout enrolling.
8/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
2. zyBook Registration
Required:
COMP SCI 200: Programming IzyBooks.com, 2015.zyBook code:WISCCOMPSCI200Spring2019
9/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
2. zyBook RegistrationRequired:
COMP SCI 200: Programming IzyBooks.com, 2015.zyBook code:WISCCOMPSCI200Spring2019
Use zyBooks forTextbookParticipation activities (Before lecture - 5%)Challenge activities (After lecture - 5%)Programming Assignments (ZyLab activities)
9/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
2. zyBook RegistrationRequired:
COMP SCI 200: Programming IzyBooks.com, 2015.zyBook code:WISCCOMPSCI200Spring2019
Additional reference:
Liand, Daniel Y. Introduction to JavaProgramming, Brief Version, 11thEdition. Pearson, 2018.
9/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
3. TopHat Registration
Join Codes:Lecture 003 MWF (AM): 560900Lecture 004 MWF (PM): 751425
In-class participationFacility classroom participation.Participation grade (5%)Grade is calculated on a per class per week basis.
10/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
3. TopHat Registration
Join Codes:Lecture 003 MWF (AM): 560900Lecture 004 MWF (PM): 751425
In-class participationFacility classroom participation.Participation grade (5%)Grade is calculated on a per class per week basis.
10/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
4. Activate Piazza Account
Online question resourceOne discussion area for all sections.Interaction of students, consultants and instructors.First stop for getting questions answered.
RulesBe courteous.Don’t post code!Search first, post second.Read Piazza Expectations post.
11/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
4. Activate Piazza Account
Online question resourceOne discussion area for all sections.Interaction of students, consultants and instructors.First stop for getting questions answered.
RulesBe courteous.Don’t post code!Search first, post second.Read Piazza Expectations post.
11/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
5. Activate your CS Account
CS Account Key PointsAll registered CS 200 students are provided an account forthe CS lab.Needed to log into lab computers.The username and password can differ from your UWNetID.If you don’t have a CS account, you will get an email [email protected] with instructions to activate your CSaccount.1 day delay in activation.Some accounts may not be available until after the first dayof classes.
12/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
6. Prepare for Team Labs
Team LabsStart Week 2Review the previous week zyBooks chapter.Broken up into labs of 50 students with 1 consultant per 12to 14 students.Pair programming.Labs are designed to be interactive.
Marks are participation based:Arrive on time (within 5 minutes): 1 pointLeave on time (within 5 minutes): 1 pointParticipation: 3 points
13/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
6. Prepare for Team Labs
Team LabsStart Week 2Review the previous week zyBooks chapter.Broken up into labs of 50 students with 1 consultant per 12to 14 students.Pair programming.Labs are designed to be interactive.Marks are participation based:
Arrive on time (within 5 minutes): 1 pointLeave on time (within 5 minutes): 1 pointParticipation: 3 points
13/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
7. Review the SyllabusGrading
Participation (20%)zyBooks Participation Activities (5%)zyBooks Challenge Activities (5%)Team Labs (5%)TopHat Questions (5%)
80% rule (max of 80% all weeks or 80% from week 3 on)Exams (45%: max{0.45 · E3, 0.2 · E3+ 0.15 · E2+ 0.1 · E1})
Pre-exam 1 – Friday, Feb 15 in lectureExam 1 – Thursday, Feb 28 (5:30 pm to 7pm)E1 := max{Exam 1, 0.8 · Exam 1+ 0.2 · Pre-exam 1}Exam 2 (E2) – Thursday, Apr 11 (5:30pm to 7pm)Final Exam (E3) – Friday, May 10 (5:05pm to 7:05pm)
Programs (35%)Top 15 of 21 parts of ZyLabs (P1 - P7) (15%)2 multi-week assignments (BP1 & BP2) (20%)
14/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
7. Review the SyllabusGrading
Participation (20%)zyBooks Participation Activities (5%)zyBooks Challenge Activities (5%)Team Labs (5%)TopHat Questions (5%)80% rule (max of 80% all weeks or 80% from week 3 on)
Exams (45%: max{0.45 · E3, 0.2 · E3+ 0.15 · E2+ 0.1 · E1})Pre-exam 1 – Friday, Feb 15 in lectureExam 1 – Thursday, Feb 28 (5:30 pm to 7pm)E1 := max{Exam 1, 0.8 · Exam 1+ 0.2 · Pre-exam 1}Exam 2 (E2) – Thursday, Apr 11 (5:30pm to 7pm)Final Exam (E3) – Friday, May 10 (5:05pm to 7:05pm)
Programs (35%)Top 15 of 21 parts of ZyLabs (P1 - P7) (15%)2 multi-week assignments (BP1 & BP2) (20%)
14/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
7. Review the SyllabusGrading
Participation (20%)zyBooks Participation Activities (5%)zyBooks Challenge Activities (5%)Team Labs (5%)TopHat Questions (5%)80% rule (max of 80% all weeks or 80% from week 3 on)
Exams (45%: max{0.45 · E3, 0.2 · E3+ 0.15 · E2+ 0.1 · E1})Pre-exam 1 – Friday, Feb 15 in lectureExam 1 – Thursday, Feb 28 (5:30 pm to 7pm)E1 := max{Exam 1, 0.8 · Exam 1+ 0.2 · Pre-exam 1}Exam 2 (E2) – Thursday, Apr 11 (5:30pm to 7pm)Final Exam (E3) – Friday, May 10 (5:05pm to 7:05pm)
Programs (35%)Top 15 of 21 parts of ZyLabs (P1 - P7) (15%)2 multi-week assignments (BP1 & BP2) (20%)
14/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
7. Review the SyllabusGrading
Participation (20%)zyBooks Participation Activities (5%)zyBooks Challenge Activities (5%)Team Labs (5%)TopHat Questions (5%)80% rule (max of 80% all weeks or 80% from week 3 on)
Exams (45%: max{0.45 · E3, 0.2 · E3+ 0.15 · E2+ 0.1 · E1})Pre-exam 1 – Friday, Feb 15 in lectureExam 1 – Thursday, Feb 28 (5:30 pm to 7pm)E1 := max{Exam 1, 0.8 · Exam 1+ 0.2 · Pre-exam 1}Exam 2 (E2) – Thursday, Apr 11 (5:30pm to 7pm)Final Exam (E3) – Friday, May 10 (5:05pm to 7:05pm)
Programs (35%)Top 15 of 21 parts of ZyLabs (P1 - P7) (15%)2 multi-week assignments (BP1 & BP2) (20%)
14/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
7. Review the Syllabus
No Late Assignments Accepted80% rule for Participation items.In extreme circumstances, contact me ASAP and submitwhat has been done.
Academic IntegrityAcademic dishonesty or misconduct is taken very seriouslyby the university (see UW–Madison Academic Integritypolicy).It is academic misconduct to submit someone else’s workas your own.It is academic misconduct to help another student commitacademic misconduct.
14/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
7. Review the Syllabus
No Late Assignments Accepted80% rule for Participation items.In extreme circumstances, contact me ASAP and submitwhat has been done.
Academic IntegrityAcademic dishonesty or misconduct is taken very seriouslyby the university (see UW–Madison Academic Integritypolicy).It is academic misconduct to submit someone else’s workas your own.It is academic misconduct to help another student commitacademic misconduct.
14/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
The Rest (by week 3)
8. Determine exam conflicts and other accommodationsrequests.
Exam 1 – Thursday, Feb 28 (5:30 pm to 7pm)Exam 2 – Thursday, Apr 11 (5:30pm to 7pm)Final Exam – Friday, May 10 (5:05pm to 7:05pm)
9. Install Java 8 and Eclipse on your computer.https://cs200-www.cs.wisc.edu/wp/install-eclipse/
Consultants can help if you are having trouble with theinstallation.
15/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
The Rest (by week 3)
8. Determine exam conflicts and other accommodationsrequests.
Exam 1 – Thursday, Feb 28 (5:30 pm to 7pm)Exam 2 – Thursday, Apr 11 (5:30pm to 7pm)Final Exam – Friday, May 10 (5:05pm to 7:05pm)
9. Install Java 8 and Eclipse on your computer.https://cs200-www.cs.wisc.edu/wp/install-eclipse/
Consultants can help if you are having trouble with theinstallation.
15/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
Study Cycle
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
Study Cycle
16/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
zyBooks Programs, BP1 and BP2
Keys to SuccessStart early: try getting started the weekend before.
For BP1 and BP2 Milestones: bonus marks for earlysubmissions.
Focus on a systematic approach to the problem.Test your work!
Unlimited submissions before DeadlineFinal submission is highest mark closest to the deadline.30 minute delay between submissions.Not intended to be a test bench.
17/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
zyBooks Programs, BP1 and BP2
Keys to SuccessStart early: try getting started the weekend before.
For BP1 and BP2 Milestones: bonus marks for earlysubmissions.
Focus on a systematic approach to the problem.Test your work!
Unlimited submissions before DeadlineFinal submission is highest mark closest to the deadline.30 minute delay between submissions.Not intended to be a test bench.
17/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
Getting Help
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
Getting Helphttps://cs200-www.cs.wisc.edu/wp/help/
Help!Tips for Solving Programming ProblemsPiazza Online DiscussionConsultant Office Hours 1289 CS
MTWThF: noon to 5:30pmMTWTh: 5:30pm to 8:00pmMF: Appointments possible.
Instructor Office HoursCS Learning CenterDrop-in Tutoring (College of Engineering)
18/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
A couple more questions.
Which of the following is the best estimate for the amountof computer code that you have written prior to this class?
a. 0 lines (I have never written any code)b. 1 – 200 lines (I have written some code, but not a lot)c. 201 – 2,000 lines (I have written several small programs)d. 2,000 – 20,000 linese. > 20,000 (I have done a substantial amount of
programming)
19/19
CS 200 - Programming I: Spring 2019 Getting Started Study Cycle Getting Help
A couple more questions.
I am expecting to spend approximately this many hoursper week on this class:
a. Less than 4 hours/weekb. 4 – 8 hours/weekc. 8 – 12 hours/weekd. 12 – 16 hours/weeke. More than 16 hours/week
19/19
Appendix References
Appendix
Appendix References
References
Appendix References
Image Sources I
https://cs200-www.cs.wisc.edu/wp/
https://www.pearson.com/us/higher-education/program/Liang-Introduction-to-Java-Programming-Brief-Version-Plus-My-Programming-Lab-with-Pearson-e-Text-Access-Card-Package-11th-Edition/PGM1730772.html
https://tophat.com/
https://cs200-www.cs.wisc.edu/wp/
20/19
Appendix References
Image Sources II
https://piazza.com/
https://cs200-www.cs.wisc.edu/wp/syllabus/
https://cs200-www.cs.wisc.edu/wp/
https://cs200-www.cs.wisc.edu/wp/
https://cs200-www.cs.wisc.edu/wp/
https://brand.wisc.edu/web/logos/
21/19
Appendix References
Image Sources III
http://www.zybooks.com/
http://bigpicture.typepad.com/comments/images/2008/07/14/dont_panic.png
http://phdcomics.com/comics.php?f=1583
22/19