Link Search Menu Expand Document

How to Succeed in DS 1

If you took the advice of the Essentials of Time Management section that I recommended from the Effective Strategies for Remote Learning, then you might have already created study blocks for this course. If not, please add them to your calendar.

A typical course expects that you will engage with the course material about 3-4 hours for per unit each week. Since this course is 4 units, you should expect to spend about 12-16 hours per week working on this course. Here’s the rough weekly breakdown of where your time might go:

  • 3 hours of lecture
  • 1-2 hours reviewing lecture concepts / practice (it’s crucial to ensure that you are following along and catch unclear concepts early); best to schedule the review right after the lecture or on the same day as the lecture, so that you can write down the questions while the content is still fresh.
  • 2-4 hours reading the book and working on participation/homework activities, preparing for quizzes; we recommend adding these review/study blocks to your calendar and treating them as an appointment.
  • 1 hour of scheduled lab to work with mentors and/or your lab partner
  • 2-4 hours outside of lab to finish the lab; make sure you work on it a few days before the deadline, so that you have enough time to get help if you get stuck.
  • 1-2 hours participating on Piazza / debugging / attending office hours (see the posted schedule)

Roadmap

In our course, each week covers roughly 1 chapter, and we have the following course activities: PAs (Participation Activities), HW (Homework), LAs (Lab Activities).

DayDueRecommended Activity
  Async activity: Read the book, and work on/finish PA
Tue9AM, PAsLecture 1: Synchronous activities.
  Async activity: Work on/finish related LA and HW
Wed9AM, LAsGuided tutoring lab sessions: in small groups, students work on the LA (starting and/or finishing), resolving any lingering questions, reviewing materials with mentors. In weeks 6 through 10, students work on the projects in pairs.
  Async activity: Work on/finish related LA and HW
Thu Lecture 2: Synchronous activities
  Async activity: Review concepts, work on/finish related HW and LA
Sat9AM, HW 
  Async activity: Read the book, review concepts, and work on/finish PA and LA

General Guidelines on How to Succeed in a Computing Course

In short: read carefully, practice your understanding of concepts on lots of examples, constantly review the material, seek help when lost, have patience, and enjoy the process.

  • Read the syllabus and keep track of deadlines
    • labs and homeworks are usually due on specific days at a specific time
    • begin working on the assignments as soon as they are posted and try to finish it before the due date – this way you will have time to ask for help before the assignment is due.
    • begin working on the lab as soon as it is posted (on Tuesday 9AM) and try to finish it before Friday – this way you will have time to ask for help before the assignment is due next week.
  • Read the book
    • the book shows diagrams, step-by-step visualizations and explanations
    • do the practice problems to verify that you are understanding the concepts
  • Do the homework yourself
    • instead of just trying to answer the homework question, practice the concepts behind the question
    • begin working on the homework as soon as it is posted and try to finish it early so that you have time to ask for help during lecture/open labs/office hours before the assignment is due.
  • Attend lectures
    • take notes and/or run the code from lecture after class to review the concepts we covered
    • review the previous lecture before the next class, write down questions
    • ask for additional examples if something is unclear during the lecture
  • Ask questions in class and during open labs/office hours or post them on Piazza
    • come to the TAs’ and/or professor’s office hours, even if just to say “Hi” and to see who else is there and what questions they have :-)
    • attend open labs, even if just to work on the assignments in the lab
    • if something is unclear, make sure to clarify it right away – concepts build on one another, so if you don’t (for example) understand how to write a function or correctly pass arguments into it, it will make it difficult to write helper functions and correctly use them.
    • follow the Piazza guidelines to make sure you are using it effectively (e.g., check if someone already asked that question and then respond with a follow-up)
    • follow the Piazza guidelines to phrase your questions in a way that makes it easy to respond
  • Attend labs
    • carefully listen to the demo/explanations by the TAs
    • attempt to do most of the lab yourself
    • start by reading the instructions and the docstrings for the functions
    • work through any provided examples, preferably on paper
    • ask yourself: do I understand how to get the correct аnswer or what is being asked of me? if not, ask the mentors for additional examples.
    • develop an algorithm to solve the problem, preferably written in pseudocode and added as comments in your code
    • if you get stuck, ask the mentors for help, looking at how they help you solve the problem and identifying concepts that you need to practice more
    • review the concepts that made the lab challenging by running through examples in the book and/or homework
    • begin working on the lab as soon as it is posted and try to finish it as soon as possible so that you have time to ask for help during lecture/open labs/office hours before it is due.
  • Experiment, experiment, and play around with code
    • Whenever you have a question, you should try testing it yourself
    • Use http://pythontutor.com/ to run and visualize Python code in the browser (you can also use https://www.onlinegdb.com/ and switch the language to Python)
    • Use the examples from lectures/homework/labs and come up with your own scenarios and see if you can write code for them (e.g., if the homework asks you to output values using a range(0, 3), see what happens if you change the starting or the ending point; is there anything else you can change?)
    • Change your answers if they were mistaken, but even more important, figure out why you were incorrect (ask during lecture/open labs/office hours/Piazza).
  • Remember: learning computer science requires patience.
  • When approaching labs and homework, you should expect to make mistakes and get confused.
    • Learning any new skill requires patience and practice (remember the guitar / painting / swimming analogy?)
  • You shouldn’t always expect to finish the lab in 50 minutes.
    • There are lots of new concepts all the time and it can be hard to grasp how concepts connect. But with patience and diligence (and some help), you will be able to grasp the concepts and begin feeling comfortable with the concepts that just a week ago confused you.
  • Learn to enjoy studying (How to Enjoy Studying).

Acknowledgements: Special thanks to April Sanchez and Noemi Rieber for contributing valuable suggestions and insights.