CS 1102 — Programming 1

My Personal Experience and Tips for This Course.

Estefania CN
My UoPeople CS Journey
6 min readAug 18, 2019

--

👋 Welcome to CS 1102

Hi! Welcome. If you are interested in taking CS 1102 Programming 1 at University of the People, then this article is for you. ☀️

Programming 1 (CS 1102) is the second programming course that you will take at UoPeople after Programming Fundamentals (CS 1101). In this course, you will dive into Java, applying the general concepts that you learned previously in Python during CS 1101, and you will expand your knowledge to more advanced topics.

I just completed this course a few days ago (August 2019), and I have to say that this was a very rewarding and challenging experience. It was exactly was I was looking for in a Programming 1 course. The final weeks covered topics that are beyond the topics presented in most online introductory programming courses. Topics such as interfaces, abstract classes, lambda expressions, generics, polymorphism, and GUI programming made this course a unique learning experience. 👍

📚 Course Content

Let me start by giving you a brief overview of the topics covered during the course:

  • Unit 1: Introduction to Programming, Names, and Things.
  • Unit 2: Repetitions.
  • Unit 3: Branching.
  • Unit 4: Subroutines, Packages, and JavaDoc.
  • Unit 5: Object Oriented Programming.
  • Unit 6: Inheritance, Polymorphism, and Interfaces…Oh my!
  • Unit 7: Arrays.
  • Unit 8: Introduction to GUI Programming.
  • Unit 9: Final Exam. 📝

As you can see, the course covers a broad range of topics, going from basic topics like variables and names to more advanced topics like Object-Oriented Programming, Inheritance, Polymorphism, Interfaces, Arrays (dynamic and static), and GUI Programming.

I would recommend allocating at least 20 hours per week for this course if you are new to these topics. I personally had previous experience with the topics of the first five weeks and I was slightly familiar with arrays, but I found the course challenging, and I learned many new concepts during these first weeks. For a student who is learning these topics for the first time, especially Object-Oriented Programming, the experience will be very challenging and fast-paced.

Before taking this course, I was new to some aspects of inheritance, and I was completely new to polymorphism, interfaces, functional interfaces, abstract classes, GUI programming, generics, and lambda expressions. This made the last three and a half weeks of the course more challenging for me. Be prepared to work very hard and give your best from week one. The final exam is challenging. It will test your understanding of the content beyond the basics.

Regarding assignments, every week you will have:

  • Discussion Forums Assignment.
  • Programming Assignment.
  • Learning Journal.
  • Self-Quiz.
  • Graded Quiz (one, on week 5).
  • Mandatory Programming Project (on weeks 5, 6, and 7).

Grading:

These were the grading components and weights when I took the course:

Course Book & Readings:

  • Eck, D. J. (2018). Introduction to Programming Using Java (Ver. 8). Geneva, NY: Hobart and William Smith College.

The book is provided in the course page. You can use the most recent version of the book. The course content is complemented with recommended and optional readings. Some of these readings can be found in The Java Tutorials.

✍️ Study Tips & Time Management

Time management is key to succeed this course since this is one of the core courses of the Computer Science degree. Every course that you take from now on will require previous knowledge from this course, so you should take it very seriously and try to learn as much as possible during the process. As I mentioned previously, I would estimate that approximately 20+ hours per week are needed for this course if you are new to these topics.

⚠️ Important: The recommended and optional readings are very important. I suggest reading them whenever possible because they cover key aspects of the content in more depth.

My top tips for this course are:

  • Take detailed notes: I cannot emphasize enough the importance of taking detailed notes during the course. It is critical that you develop your own note-taking method that works for your learning style. Take thorough notes that you can refer to later. This not only helps you during your study sessions, it also helps you to read actively and remember the content better. I personally like using black, read, and blue pens, and highlighters to color-code my notes, and I use a customized version of the Cornell note-taking strategy, diving the page into two columns: one for questions and one for the main content. I use the questions to test my knowledge during my study sessions.
  • Solve the textbook exercises and quizzes: the main textbook comes with a set of exercises and quizzes for each chapter. The answer to these coding exercises and quizzes are provided in the book’s website. Use them to practice. They are really helpful.
  • Solve the quizzes in The Java Tutorials: these are very important. They are located in the “Questions and Exercises” section at the end of each tutorial. I found several important and tricky questions that helped me clarify misunderstandings.
  • Read the recommended and optional readings: I’m including this again because they are extremely important. Read the main readings first and then complement your learning and notes with these additional readings.
  • Review the Self-Quizzes and Graded Quiz before the final exam: I like to review them during my final study sessions.
  • Research if you have any questions: you are free to expand your knowledge with extra resources if you have any questions or curiosity. I personally searched online when I was curious about certain aspects of the topic and asked my professor on the discussion forums if I needed further clarification.
  • Take the Review Quiz very seriously: I like to think of this quiz as the final exam. It is not graded, but it is a very serious indicator of your progress and understanding. I take it one or two days before taking the final exam to I analyze my results thoroughly.
  • Write High-Quality Discussion Forums Assignments: during this course, I experienced the benefits of peer-based learning on the discussion forums. Reading my peers’ posts was enlightening, and I always worked very hard to write high-quality posts for the discussion forums. This is how we can truly create a productive learning environment.
  • Provide detailed feedback for your peers’s Programming Assignment: providing detailed feedback and suggestions for your peers is a productive part of your learning process as well. By researching and thinking critically about the assignment that your peer submitted, you are expanding your knowledge, and probably clarifying previous misunderstandings. I like to provide detailed feedback for my peers’ assignments, and I have learned very much during the process.
  • Have fun! 🎆

🎓 Helpful Resources

These are some free online resources that I found very helpful for specific units during my study sessions:

✨ Good Luck!

I really hope that you liked my article. Follow my Medium Publication My UoPeople CS Journey to read about my experience during the degree🎓.

I wish you much success during this course and during your UoPeople journey! Your claps 👏 are really appreciated.

--

--