ABCDEFGHIJKLMNOPQRSTUVWXYZ
1
The original quicktopic for the Intro Programming course was spammed in April 2017, so this archive was created of the original messages, without all the spam, and a new QuickTopic was created.
2
3
CS 107/102/141 Advice for Future Students
4
NameDateTimeMessage
5
Peter Hodges12/19/1610:53 AMOn CS141.
Computer science is a term that addresses a large area of knowledge.
One perspective is that CS is about ways of thinking and ways of solving problems.
We live in a world dominated by complex systems and increasingly computer science underlies these complex systems.
Complexity can be addressed through decomposition, hierarchy, and abstraction.
Computer science addresses all of these.
While code or programs are the end result of approaches to solving problems, code is the realization that actually makes machines (e.g., smartphones, cars, trains, planes, social networks, data centers, robots, medical imaging, GIS, space travel) respond to our intent and to the dynamics of the environment.
The "eating the bicycle" description is about decomposition.
Decompose larger problems into smaller problems. Solve the smaller problems (and as you learn about them, put them "aside" into functions).
Functions afford abstraction: once you have a function that solves a small problem correctly you can re-use it.
Code development is a social process (as is any collaborative design activity of scale beyond the individual). Hence the coder needs to afford communication and understanding to others.
This means inserting comments in your code and using good coding style (e.g., indenting).
Indenting is an example of hierarchy that affords the "reader" of your code to more easily understand what it is doing.
In addition, comments and indenting are also tools for thinking.
In design we would call this making for thinking.
In this vein of design and making for thinking, consider diagrams and sketches.
Computer code is actually a diagram (more formally a directed labeled graph or perhaps multi-graph).
Diagramming and writing comments can help you think through what it is you are trying to solve and understand the steps to build up the solution.

In CS151 you will learn more about the fundamentals of logic and discrete math that form the mathematical and theoretical foundation for computer science and coding: (propositional and predicate logic, sets, functions, relations, trees, graphs).
These form the basics for building data structures (e.g. structs, linked lists) and algorithms (e.g., searching and sorting).

CS and programming is like learning a foreign language: you have to learn to pay attention to the details and the rules (logic).
However, one can still write code that compiles but that produces incorrect results.
Here again diagrams, comments, and checking are useful and important for understanding (externalizing) one's own thinking and seeing logic errors).

As noted in many other posts:
- Asking questions (to the professor and the TAs) and showing your code are important for learning to write good code.
- Be proactive, start thinking about the assignments as soon as they are posted.
- Attend lectures, read the notes, do the practice problems.
- Study the prior tests before the exams. These tests help build understanding by making you think about "tricky" aspects of code, syntax, precedence, pointers, recursion, and data structures and algorithms.
- We all learned to walk and talk through practice; we don't remember how many times we toppled as toddlers or how we gradually learned to correctly speak and associate words.
Learning to program is similar: practice, diagram, use comments, ask questions, try different approaches; make it a social process.

We all grow by allowing ourselves to be uncomfortable.
Even with prior experience, one can learn much from this course.
This course may be initially uncomfortable or uncomfortable for the entire semester.
Don't stop if you are uncomfortable. You will learn much.
6
Mike P.12/18/167:35 AMCS 141 is a challenging but very rewarding course. You will get stuck a lot but do not stress out over not being able to get things right the first time. This rarely happens. You may have the right idea but not be completely sure how to execute it properly. The point of this class,in my opinion, is to not just teach you how to code but also to build your thinking capabilities. The following is what helped me succeed in the course:

- Do not procrastinate at all. Begin working on homework and programs in advance. Go to every lecture and sit at the front of the class.

- Write code you are unsure about on paper BEFORE you put it into a program and draw out what will happen. You may see you don't have the right idea but you may also gain insight on what you really need for it to work.

- For programs, I wrote each step/requirement as its own program before I placed it into the big programs I would turn in. This prevents your program from getting messy and, potentially, compromised. Furthermore, make back-ups of your programs as you go along writing it in case something does go wrong.

- Do not be afraid to ask questions. If this class is too easy for you, you are missing the point/purpose. You can talk to Professor Reed or other classmates. It's okay to feel lost and confused. It is not okay to not work towards a better understanding of what you do not yet understand.

- Remember to have fun. If you are here you are lucky. Being able to program is an honor and if you follow these steps you will see that you are capable of more than you thought.
7
Michal Bochnak12/10/165:35 PMIf you are taking CS-141 with prof. Dale Reed be prepared for progress. If someone will ask me what was the best thing about that class I will say: "Progress!" If I hear the word "progress" it reminds me about CS-141.

Progress however requires effort. The major recommended efforts to be successful in the course and end up with solid programming knowledge:
1) Do not miss a lecture. In my opinion prof. Reed is doing outstanding job with explaining the concept and boosting your motivation. Benefit from it.
2) Make sure you understand the basics well (couple of first weeks). It will build up foundations for the more challenging stuff. Concept gets more confusing and trickier along with the semester, and believe me you will not catch up in the middle of the semester.
3) Ask questions right away! Feel free to bother Professor and TAs as needed. It is all about your success. Use Piazza as well. If you know the answer for student questions, post it. You will remember it better.
4) Do not procrastinate.
- You will fail the exam if you will start studying one night before. It is more about understanding than memorizing.
- Start programs as early as possible, so you will have time to ask questions - because you will have questions. Refresh your mind when you are stuck. Expect to spend ~10 hours on each programming assignment. They are challenging, but doable. You will learn a lot from them.
5) Experiment with the code in various ways, try this, try that, see what will happen, and learn your lesson.
6) Try your best to became proficient with "eating a bicycle". This is very significant skill!

Take advices from previous students seriously and it will make your CS-141 journey a delightful experience.
8
Fangfang Fu12/9/163:10 PMThis is the first cs course that I seriously learn some real stuff. The more challenging the course is, the more you learn.

Before I came to class, I was stuck with pointers and felt I could not go any further. Now I feel I really take down it with many confusing practices. Always messing around code if you are confusing. The place that you stuck is where you learn. Do not skip class. Every time I listened to class, I feel I understand further. Professor Reed really explained everything so well with detailed steps. I learnt a lot from drawing some steps on notebook as professor did before working on program, especially for recursion and linked list. Do not try to track everything with brain. Sometimes a pencil with a paper can save you from a big headache.

Asking questions and helping others. Do not feel ashamed to ask questions. More questions do not mean that you have less knowledge than others. In contrary, it means you have more. Your knowledge is like a area of a circle. The bigger circle has more contents but also has more possibility to touch more questions because it has a longer edge to touch the unknown. So the more questions you have, it just means that you have more access to the unknown. I remember when I saw the first program, I really had no idea how to do it. Good thing we have Piazza and both teacher and students posted some great ideas about all the programs. Every time when I was stuck, I would look at if people are talking about it and ask more questions on it. I usually would got answers on Piazza before talking to teacher. Try to help others. Explaining things to others will make you understand some concepts deeper.

When you really struggle with something and think none would help you except yourself, do not be upset. Just take a quick break and maybe when you are taking a nap, you would get some good ideas to solve it.

Working hard to understand everything for the first half semester. That way you would feel easy for the rest of it.
9
Liam Edelman12/5/168:44 PMI don't think I've ever had a programming class as difficult as this one, but don't take that as a "don't take this class, it's stupid difficult". I mean that I've never had a programming class that forced me to understand the material as much as this one. I've taken 3 programming classes previous to this one, one in high school and two at my previous college. In all 3 of those I could get a solid B without really spending all that much time on projects and half-assing homework assignments. So coming into this class I had the mindset that this would be an easy B, and with a little bit of work I could get an easy A, however that is not the case. In this class a C is truly average, if you put in minimal work and effort you will likely get a C, and, frankly, I'm glad that this is how the class is set up. In a mid 100 level CS class you must, must, must know the basics, especially if you want to major in CS and advance through the 200 and 300 level courses.

For all you gamers I compare this class to the game Dark Souls. You will fail over and over again, struggling to complete projects that may seem incredibly daunting and near impossible to finish or even understand. Attempt after attempt you'll progress a little further, the material will become a little clearer, and the goal will appear to be a little more attainable. Each error is an attack on your patience, and you have to persevere through each one. Sometimes though the problem may, in fact, be too difficult for you to just push through it alone, and you may be forced to summon help on Piazza or in person with the help of Reed, himself, or the TA's. Don't feel like it's a knock on you, because everyone needs help sometimes whether you be taking on Ornstein and Smough in the game, or trying to get the WhatWord program to work mere days before Thanksgiving break begins. At times you may question why you're doing this, why you're constantly exposing yourself to failure and stress. Heck, several times this semester I truly questioned whether CS and engineering was really the right major for me, but, even though I highly doubt this will be the last time I do that, I realized that the harder I struggled, the better I felt when I succeeded.

If you're just looking for an easy A or B like I was, then this class is likely not for you because you will be forced to "git gud" at some point during the semester. While right now you may see this mountain of a class standing before you and you may be quivering in your boots, you must have faith, because when all is said and done this class is very fair and there is no project that can't be conquered. It's been about 12 hours since the final exam, and while I may have not achieved what I would have liked I can at least say that I have "gotten gud" and that I feel confident moving forward in CS. Hopefully, when everything is said and done you feel the same, whether you took my words to heart, or if you just blew me off as some scrublord that doesn't know how to code themselves out of a paper bag. Hard work is rewarded in this class, and if you really put in the time and effort I guarantee you will see results.

SideNote: I wrote this while listening to "Through the Fire and Flames", so it probably sounded a lot better in my head.
10
James warda12/5/1610:51 PMWant to succeed in this class? Well you need to do 3 things to get an A (or high B in my case)
1. Start the programs the day they are assigned. Seriously this is very important.
2. Study previous exams because a lot of questions are repeated. (bring those exams to the exam, it's open notes)
3. Don't miss class or labs.

If you do those three things than you are pretty much guaranteed to pass and come out with alot of knowledge.

-James Warda CS 141 Fall semester 2016
11
Hibah Alam12/5/1611:33 PMI walked into this class confident that I could easily understand the material as well as I did in CS 111 and walk out with another A, but I was seriously wrong. This class really challenges you. You need to closely follow the Professor's lessons and I recommend that you rewatch his lectures online even if you've already been to them in person. Take the code he worked on in class and mess around with it on your own just to experiment how certain concepts work. It may be a hard class, but you are given plenty of resources. Definitely start your programs early, and make good use of office hours. I ended this class with a high B mostly because I had a weak exam average, so if you're an awful test taker like me, I recommend that you start studying a week prior to the exam. Even though the exams are open notes, you will come across tricky questions. Study the previous exams thoroughly to ensure you completely understand the questions.

It may seem a little scary, but if you put forth the effort, you're going to be fine. One of things that I absolutely loved about this class is the feeling you get when you finally understand why a certain part of your program isn't working and you know how to fix it. Its kind of like when an idea just clicks in your head and you go "Oh my God, duh!" and get this rush of excitement and confidence that motivates you to want to learn more.

Stay positive and don't panic when you're struggling. Don't be shy to ask for help.

Good luck :)
12
Bob Hayhurst6/27/161:25 PMI graduated in May of 2016. About three weeks after that, I landed a VERY well paying job. And how did I land this gig? From stuff I learned IN THIS CLASS. Specifically, a large part of my interview was was about the fundamentals of programming:

- what are pointers and how to use them?
- when to use a linked list as opposed to another data structure?
- can you write a sorting algorithm on the whiteboard? Bubble sort, please.

If I didn't know this stuff like the back of my hand, I would've messed up the interview. It's not like I had reference material -- it was me, a whiteboard, and seven strangers in suits asking me this stuff.

This class is essential. In fact, It's so darn essential I took it twice. And then I TA'd the class as a senior. On one hand, without really, truly understanding the material presented in this class, you will have a tough time in future classes. On the other hand, if you really, truly understand the material presented in this class you will have a leg up in future classes. Had I been satisfied that I learned everything well enough to move on the first time I took this class (after all, I passed), I would have been HURTING in later classes.

So how does one succeed in this class? How do you really, truly learn the fundamentals of C/C++?

First, keep this in mind: if everything seems over your head, DO NOT DESPAIR. The person sitting next to you who seems to get it (and you don't)? They probably feel the same way you do. If you don't have a lot of programming experience, this will be a tough class (and you may have to retake it), but it doesn't mean that you are un-talented or that you need to re-think your career choices. You may get frustrated, but I promise if you work at it, you'll get it.

In the first week of class, get your coding environment working! "Hello_World.cpp" isn't there to teach you how to print the words "Hello, World!" on the screen, it's there so that you know that you have a coding environment ready to go. When you take the mid-term, will you need to write a program, and Murphy's Law is just as true as Moore's Law (note that you can bring your own computer to the labs).

Use the resources available to you!! This is probably the most important message in this rant. Those TAs are there for a reason! Go to their office hours every... single... week. Sneak into the back seat of Dale Reed's car, so that on his commute home he's forced to answer your questions. Tackle a student TA and don't let them up until they answer your questions. Simply going to class will not cut it, and that's okay, that's what office hours are there for.

Don't be afraid to ask questions that you think are obvious to everyone else. When you ask that question, I promise that half the class is thinking the same thing, even if -- to you -- you think that it's a "dumb question". Use Piazza -- it's another wonderful resource. When you ask that "dumb question" on Piazza, check out how many students read the answer and contribute to the conversation. Be the person that starts that conversation.

Don't sweat the difference between C and C++, as it's really not that complicated. For this class, they are essentially the same thing, except with two differences in syntax (printing to the screen and passing arguments to functions) and how to import libraries (the stuff at the very beginning of the program that every program has). Learn those differences and you will never be confused again.

Take Reed's problem solving methods to heart. When you write a program, you may not know where to start. When that happens, track down a TA and force it out of them. After a while, you'll realize that the way to approach the projects in this class is to break them down into manageable, doable chunks. At the beginning of the course, Professor Reed will provide those steps for you. Later in the course you'll be expected to create the "to-do" lists yourself, but you can use the earlier projects as a template.

I won't bother with the "don't wait 'till the last minute" and "don't procrastinate" stuff. That's a lesson that you'll have to learn on your own. It's true, though.

To recap:

- use the resources available to you. All of them. Going to office hours is as expected of you as going to class.
- don't be afraid to not know everything. Ask all the questions.
- take the "how to eat a bicycle" lesson to heart.
- enjoy the creative, aesthetic, quirky, hack-y beauty of writing well written, human-readable code!
13
Ashour12/5/151:45 PMComing into the semester, I didn't even know what declaring a variable meant, let alone actually declaring it. Arrays? Strings? Functions? Recursions? Sorting? Linked Lists? Pointers? What?????? I was a monkey at the start of the semester when dealing with code. Literally...

Throwing my headset, yelling profanity, and well, just pulling my hair. Things were not going as anticipated. As I grew accustomed with what it meant to make a program, I grew patience to handle the beast. I learned that just changing pieces of my code at random without fully thinking and processing wasn't going to get me anywhere. It's like playing BlackJack and asking to "hit" while blindfolded. Chances are you're not going to win very often.

Interesting enough a few days ago I was thinking about my own personal growth after this semester and I have to attribute most of my success to both CS 107 and CS 141. Both Professor Reed and Professor Lillis have their perks especially with homework. Reading on my own and being cognizant of my weak points also helped with my growth.

I had more down votes than up votes when asking professors if I should take both courses. Most if not all said that it would be a waste of time. (CS 107 is an elective for Engineering Majors). However, having literally no prior knowledge or experience in coding, it was the best decision I made this semester. If you have the opportunity, I would recommend doing it. If you're new to coding and want as much exposure as possible, taking CS 107 is not a bad idea. It is equivalent to CS 141 but maybe a little less demanding with hours spent on projects, which brings up another recommendation...

Simply put, do not waste last minute to do your projects. Professor Reed will mention this, but I cannot stress enough how important it is to do your programming in advance.

If you're new to coding, you will understand very soon why it is important to start early finish early.


... OK. Maybe I shouldn't write a novel. I'll stop myself here, but here are some bullet points for the TL;DR viewers.

1. DO NOT WAIT LAST MINUTE TO DO YOUR PROJECTS. "Procrastination is like a credit card. It's fun until you get the bill."

2. Work through Zyante and Codelab. Do not just skip them/click until you've reached 100% participation to get EZ Points. The program is as helpful as you make it out to be.

3. Be proactive in your learning. You're not good at linked lists? Pointers? Recursion? Watch videos. Ask for help. Check out Reeds ancient years of collection of resources. You must be proactive in these courses to be successful. Why? Because they will haunt you in the next courses to come, job interviews, and your job. Don't take the easy way out. Take the initiative to do what it takes NOW to master all topics to the best of your ability.

4. Don't be frustrated if you do not understand why your code is not working. Sometimes taking a step back/break is necessary. I found myself doing this often and figured out my bug after doing so.

5. Do not compare yourself to others and get discouraged. Many people have coding experience. Many people grasp ideas quicker. You will catch up. You will learn (if you put the effort).

6. Something I lacked, learn to use the debugger (I think spending a solid week while encouraging students to bring their laptops to go through it with you is substantial to our learning).

7. If you have a logic error or even a compiler error, literally grab a sheet of paper and draw/map out what your working with and go from line of code to line of code. It may be tedious, but it sure as hell is better than spending 3 hours when you could have spent 10 minutes doing that instead.

8. Looking at Professor Reed's projects can be intimidating. Break the first section in half. Then take that half and divide that in half. Do this until you can put all the pieces together collectively.

9. Try to immerse yourself in the class. Reed explains things thoroughly and always has our best interest to succeed. The class is large enough that it may encourage you to talk, be on your laptop, tune out, and etc. Try to avoid any distractions and immerse yourself to what Reed is explaining. It's not his first rodeo. He is very knowledgeable.

10. Your best interest should be you. You need to be selfish when you're in school. You need to watch over yourself. You need to make sure that what you are doing will make you successful because if you don't care, no one else will put the effort to care as well. At the end of the day, you need to ask yourself... How bad do you want to succeed? Am I doing everything it takes to be successful? Don't be content with mediocrity but expect extraordinary.

Don't be content with mediocrity but expect extraordinary.
Don't be content with mediocrity but expect extraordinary.
Don't be content with mediocrity but expect extraordinary.
Don't be content with mediocrity but expect extraordinary.

Good luck, and may the curve be ever in your favor.

p.s. I concur with Filet Minyon (lol that name). Beard looks good on you Reed, keep it!
14
Filet Minyon12/4/154:10 PMDude looks good with a beard!
15
Eric H.12/4/154:47 PMThis is a phenomenal course. The material is presented in a clear and accessible manner, which you are then expected to implement in programming assignments. These assignments test your knowledge (and sometimes your patience...) in such a way that you are forced to come out the other side with a pragmatic understanding of coding in C.

My suggestion to future students would be to start your programs early, and to do your very best to complete them without a programming partner. All of the relevant information is provided to you, and even thought it may consume a few of your weekends (several programs took me > 20 hours to complete), the skill that you attain from completing them on your own does wonders in terms of personally mastering the material. It also provides you with the confidence necessary to dispel any imposter syndrome sentiments you may be experiencing. You can do it.

It is clear that my professor (Prof. Reed) has been doing this for a long time, and to say that he knows what he's doing would be an understatement. Use him if you need to, but don't be afraid to first use the vast expanse of CS learning material available on the internet. Google and Stack Overflow are your friend.

Be prepared to feel challenged, and good luck in the class. Start early, immerse yourself, work hard, and you'll be fine.
16
Anon5/2/142:33 PMDon't be afraid of office hours, the prof is there to help
17
Amanda O.5/2/142:34 PMOverall, this class allows most students to walk away with a better understanding of proper coding in c and c++.

The beginning of the class starts out slow, so be prepared to hit the ground running after the first midterm.

Don't take reviewing for the midterms lightly, just because you are able to bring in your own materials to use during the test.

Grades are curved and also account for students that drop, so don't give up on the course and seek help when you don't understand taught concepts or core knowledge.
18
Kris5/2/142:35 PMI found this course to be very intellectually challenging, especially compared to 111. Some of the programs were very hard, so I would suggest you start right when they were given to you, since you're gonna need help for most of the time. That being said, the programs actually really help you to learn programming and the topics in class. Professor Reed was also really nice and relied and feedback from the class to base his lectures on, and was always offering help.
19
Joe5/2/142:35 PMThis course is a bit more challenging than 111. This courses adds to the basics of java. This course also prepares you for other languages you use. Overall this class is beneficial for all cs majors. I the string stuff in c gets a bit complicated so be careful about that. Everything else is doable once you learn how to do it. Also use the extra notes and practice on course websites because they really help you learn the concepts. Overall good class and taking it is very benefical to cs majors.
20
Anthony5/2/142:37 PMI feel like that we shouldn't have switched from C to C++ right before the midterm.

For future students I think that you should review pointers and linked lists outside of class since you don't get a full understanding by listening in class.
21
Stepan Arkadyich5/2/142:38 PMTake advantage of the projects that allow partners at least once. This is great low-stakes opportunity to learn how to program in a context closer to the professional reality that exists outside of the classroom.
22
Abraham5/2/142:38 PMGood class overall. Programs were doable. Just make sure to go to Prof. Reed's office when you need help or else don't blame him if the course material is difficult. C programming is not a very easy language, so you need to put a lot of study time for it. I want to emphasize on going to Prof. Reed's office during his office hours for help.
23
ANON5/2/142:39 PMTeh class was taught very well and the goal of becoming an excellent c++ prgrammer.
Professor Reed is a great teacher and makes sure that either he or his TA's are available.
Especially before a program is due or an exam is coming up. He also gives you the right resources.
The programing projects are simple but do require time so start them early. Pacing yourself
will help out a lot. Keep track of due dates for Codelab and Zyante. Reading material in advance
helps. Take advantage of Piazza.

Professor Reed is a good teacher, listen to him.
24
Allison5/2/143:35 PMAdvice to future students:
Get ahead on EVERYTHING! Zyante, codelabs, projects, labs, EVERYTHING! You can always look back on them or fix anything if you need to later in the semester or before the due date. This will be a huge weight off your chest and will give you time to focus on your hard classes (especially if you're taking CS 151 and/or calc II at the same time, or if this is your hardest class, you'll have more time to focus on everything). Don't be afraid to see Professor Reed during office hours. He literally sat down with me for 45 minutes explaining pointers to me, and I couldn't be more grateful or happy that I went to see him. Don't take the midterms lightly. Study hard. Look at the previous tests he posted online. Bring as many notes as you can.

What I liked about the course:
The projects were great. They were all very fun and enjoyable not only to program, but the end result was well worth it. They were also just the right amount of challenging for both the expert programmers in the class and those who struggled a bit more. Piazza was a great resource to ask questions that weren't necessarily covered in class, bond with classmates, etc. Definitely take advantage of it.

What I did not like about the course:
I felt the lectures could have been spent more on learning the actual material as opposed to "fist-of-five"/elbow partners/i-clickers. I also did not like how the Zyante exercises were graded. Honestly, if someone's a CS major and paying thousands of dollars to attend school for it, they should be self-motivated enough to learn the material. Not to mention, having to do the activities for the first few chapters, which was a review from CS 111, was redundant for those who knew what they were doing. Having both C and C++ was confusing at times, particularly when half the code was in C++ and the other half was in C (using C++ reference parameters while having printf statements, for example) especially since there are a lot of people coming from Java and are still trying to differentiate the differences between programming languages.

Other thoughts:
Labs were ok. If the goal was to simulate producing a high quality product on a deadline like most computer programmers do, then they were successful. If the goal of them was for students to fully learn and implement the material, that could use some work. Codelabs we alright, I didn't have a problem with them. They were useful to look back on when learning syntax.

Overall, if you have previous CS experience and you know what you're doing (particularly APCS), this course shouldn't be too hard (though pay attention to the terminal commands, pointers, and linked lists, especially if you're like me and studied java for a year and a half). If you know you're not at that level, definitely take advantage of Piazza, office hours, the ACM, and all the resources available to you. Don't procrastinate, and don't be afraid to ask for help when you need it.
25
Zylski5/2/144:56 PMThis course was very challanging but at the same time rewarding. After spending hours struggling with a program, feeling defeated, and then your program finally works, it's a truly great feeling. This course I feel is a very good preparation for the real world in a programming field. The most important thing I learned was DON'T PUT ANYTHING OFF TIL THE LAST MINUTE!! Also the tests for this class demand more than a few hours of studying. Start early, and work hard, and you'll be fine.
26
anon5/15/1312:13 AMOverall, this class is great and it really accomplishes covering a lot of material and introducing people to writing code.

For someone with a bit of programming experience, the class wasn't overwhelming but it did require you to solve problems in clever and efficient ways.

This being said, the online coursework didn't help much. The programs and lab exercises are the true test of the students knowledge.

Professor Reed is a really nice guy! He is easy to talk to and you can tell he enjoys when his students succeed.

A great, fun environment! Thanks Prof Reed!
27
Bob5/2/139:13 PMIf you have an older sibling, then you know that you can learn a ton of life lessons without having to make the mistakes and pay the consequences -- they do it for you!

This is an opportunity like that -- I can tell you the mistakes that I made in this class so you don't have to make them.

(1) Professor Reed himself:

Don't be fooled by this: Professor Reed is a highly entertaining guy, and that may cause you to think that he's not a tough professor. Nothing can be further from the truth.

In Professor Reed's first class, you might fall prey to the illusion is that he is a combination of Bill Murray and Louis CK (with less cursing), but the way that first class SHOULD be is like that first class that Harry Potter has with Professor Snape, when Snape strides into class, the lights dim, the windows slam shut, and Snape says,

"There will be no foolish wand-waving or silly incantations in this class. As such, I don't expect many of you to appreciate the subtle science that is potion making. Open your book to page 124...". You KNOW he's gonna be a tough teacher. Professor Reed isn't like that. You figure out that he's a tough teacher about halfway through the class... too late.

All jests aside, just know that this is tough course. You have to be on top of it from day one. Here's what I thought at the beginning of this class, "Ah, he seems like a softie. Easy A!" And then the first programming assignment is really easy, too, to further lull you into a false sense of security...

(2) Online coding assignments (Zyante and Codelab, or their contemporary equivalent):

There will be the occasional reminder to do the online coding assignments, but really, it's on you to read the schedule and turn in the online coding assignments on time -- which is fine, we're adults -- but don't do this: "I looked at the schedule. The next chapter is due in a couple of days. No problem.... I'll get to it tomorrow..."

I lost almost an entire letter grade like that. Keep up with the online coding assignments! They're not THAT hard.

(3) Lectures:

You really have to extend your mind in this course. The concepts can be explained in a perfect way, and if you aren't concentrating, you won't get it. Take advantage of the concepts when they're explained in class, because you HAVE to understand everything in this course if you want to be a computer scientist. It's not like a History class, where you don't really understand WWI, but that's okay, it's not like it's going to make a difference in the long run. It DOES make a difference in the long run. The professors in future courses will expect you to be able to not only understand every concept in this course, but they will expect you to be able to apply it.

If you're on Facebook during lectures, then you may as well drop the class.

(4) Writing toy programs/creating a personal command library:

When you come across a new function, you don't understand it unless you have written code that utilizes it. You may read on a piece of paper that "strcpy" copies a string, and understand it conceptually, but unless you've written code that uses it, you really don't understand it. Just write a little toy program that utilizes the command, that's it... and you can always refer back to it, literally for the rest of your life. It'll save you time in the long run.

(5) Programming assignments:

You can go ahead and wait until the night before a programming assignment is due before you start working on it. You can read up on the various data structures needed to write the code, Google around, and bang it out in a couple of hours. That's totally fine.

Ha! The SECOND that the assignment has a write-up is when to start working on it. These assignments can take a tremendous amount of time to do (I won't give you "hours per assignment" because I don't want to scare you).

Professor Reed will go over problem-solving strategies in class -- use them. Break the project up into manageable chunks. Eat an entire bicycle. Write functions in a different file and incorporate them into your main code. As you come across new commands, write a little code on the side to see how they work.

(5) Office Hours, TAs, the ACM, student tutoring, Piazza, fellow students, recorded lectures, and other resources:

There are a TON of resources at your disposal. If you don't understand something -- and that's gonna happen if you're human -- there is help. If the textbook reads like it's in another language, then it's time to seek out the student tutors in the ACM, or go to the Professor's office hours, or write the TA a note. There is a support system in place here at UIC, and you should take full advantage of it -- it's what your tuition is for.

(6) Finally, being lost and alone in a big-big word:

There are going to be times when this class makes no sense at all. Professor Reed's lecture is going to sound like it's in Swahili. That's ok. The student next to you probably doesn't understand it either. And the student next to HER probably doesn't quite understand it, either!

Take a deep breath, and know that you're NOT out of your league. Just use the resources available to you, and you'll get it eventually.

So those are all the mistakes that I made in this course -- I thought it would be an easy course (NOT), I didn't manage my time right as far as the online homework is concerned, I didn't concentrate hard enough in lectures, I didn't write little snippets of code to understand commands, I started the projects too late, I didn't use the abundance of resources that were available to me, and finally, I thought that the class was out of my league.

I want SOMEONE to learn from my mistakes! So take these words to heart.
28
currentstudent5/1/132:41 PMClass has 6 programs and little bit of homework. Over all pretty easy.
The class is moving sort of slow with the material.
10/10 would take it again! :)
29
dalereed5/1/132:41 PMCS 141 students, please post here your written comments on what was most helpful and what was least helpful. Consider giving comments about elbow-partners, Zyante, CodeLab, hands-on labs, tests, organization, etc.
30
Lukasz Stempniewicz5/1/132:49 PMThe class was Excellent! The codelab, zyante, and programs were super helpful! This professor knows what he is talking about! He had a really slick longboard! Elbow partner ideas were great! I have learned a lot and DO START PROGRAMS WHEN THEY ARE ASSIGNED. These programs teach me the most and have guided me through subjects I wasn't sure about before this class. Linked list at the end was fun!
31
James Klonowski5/1/133:39 PMThis class was very good.

CodeLab homework was very helpful, but I wish there were more assignments per topic in CodeLab. Zyante was nice, but it was easy to just skim over things. It might have helped if I purchased a physical C/C++ reference text to supplement the online text.

Labs were good, but I wish we had more time to prepare some material beforehand. (i.e. having a general pre-lab description a few days in advance so we could practice certain snippets of code).

Tests were challenging, mainly because Professor Reed likes to be tricky and tries to confuse you. Aside from that, reviewing old tests was helpful, and having the tests be open-note was good. Unfortunately for me, I took 90% of my notes on my iPad (using an app similar to OneNote with a mixture of text and drawings). I was still able to print off some material from the internet, but it was a pain. I understand not allowing electronic devices as part of the 'open-notes' policy, so I should have just used pencil-and-paper.

Professor Reed was well organized with a nice outline of what we did the previous class, what we would cover that day, etc. However, it seemed like we never had enough time to cover everything that was on the outline for that day.

Pace of course material was a little slow for my liking, but Prof. Reed made sure to cover all the topics we would need for a programming assignment beforehand, so we always had the necessary tools to complete a program.

Programs were challenging, but fun. It seemed like my programming knowledge increased exponentially following each program, even if I didn't complete 100% of the project.

Piazza was incredibly helpful to me. Classmates and TAs responded quickly to questions with answers or suggestions.

Tips for future students:
- Don't do all of CodeLab/Zyante in the first few weeks, as you will likely forget half of it by the time we are actually covering it in class.
- Seriously, don't procrastinate on starting a program. The projects I procrastinated on were always of much less quality than the projects I started on the week it was assigned.
- Make an outline, or just pseudo-code, a basic outline of your program the day it is assigned, it will be very helpful. The programs that I didn't make an outline for were always a mess, and I would eventually have to re-write a program from scratch after spending a few days with the original.
- Take advantage of partners in-lab. Even though I usually prefer to work alone, working with a partner helped me understand topics quicker, as well as refine my coding styles.
- Use Piazza!
- Answer questions, Profe$$or Reed might make it worth your while. :)
32
Bowser&Peach's Love Child5/1/133:43 PMHere is my evaluation of the course in words.
This is not really advice for future students, more like feedback for the teacher. ;)
I really appreciated the elbow-partners. It helped me learn that not all students in the class are programming masters, which boosted my confidence in asking for help. Early on, I was intimidated asking for help because I felt that my questions were so pathetic, that asking them would only get me a "Are you f!@#$ing kidding me?" look. But, I found that learning what other students knew and what they didn't know helped me realize that I'm not the only one who doesn't know...
At first I was appreciative of Zyante, but later felt that there were many confusing points, and the exercises at time were kind of pointless or unclear. CodeLab was, again, okay at some points, but at other times very confusing. I especially didn't like that there was less and less feedback to the incorrect answers as the course went on, and I would think it would make more sense to give more feedback on more difficult/confusing problems, rather than simply to state that it's wrong.
The labs I found were difficult to complete in the allotted time, because some subjects were more confusing than others or took more time to grasp.

Now for some suggestions...
1. As was mentioned in class, I think that having small programming assignments (perhaps over the weekend) would have helped grasp certain concepts better. Of course, as a student we could have done this on our own for our own good, but it would have been more helpful to be "forced" to do it.
2. Journals were not really helpful because I didn't learn much from them, and I often found myself guessing and then ending my response with "is this right?" (I was wrong about half the time)
3. It would be more helpful to start off the course teaching students Visual Studio than having them suffer all semester with Dev C++. Also, I would have saved LOADS of time if I had known how to properly use a debugger early on.
4. It would have been nice to simply been forced to use a laptop, or even hold this class in a computer lab (doesn't it make more sense, I mean, we ARE computer scientists) where we would be able to manipulate code ourselves, rather than listen to the professor talk about it and then leave and forget everything. Sure there is room for distraction, but I find that professor Reed is very good at keeping our attention (with his corny jokes and all), so I don't think it would be a huge problem.
5. Emphasize these things when assigning a program (I mean, seriously EM-PHA-SIZE!!!!!!) :
i. Start when the program is given (Procrastination leads to half-assed programs...leading to half-assed grades)
ii. Create small chunks of code, and slowly combine working code together (Super helpful, especially when you don't know how to use a debugger)
iii. Save different versions of every code!!!! (I've had a couple times where I didn't do this, and somewhere along I messed up, tried to go to previous code, but it was just too difficult/long/confusing/etc.
6. I feel like the grading of the material was not very informative. I would have liked to know what were my most common errors, where my logic fell off the wagon, etc. I think on something like the labs, I would have especially liked to see the logic behind a correct solution, rather than to just be given the correct code.
7. A super awesome suggestion, perhaps the best I could give, is to clone Sean. He is the most helpful T.A. I have ever had at UIC. Which, I guess isn't saying much because I've had some pretty s#!++y T.A.'s, but let us pretend every other T.A. I've ever had was a clone of Einstein, so my comment about him being the best can be emphasized.

Side notes: Prof. Reed did mention that he would at one point email half the students and tell them to bring a laptop so we could partner up and work on stuff with our elbow partners. I don't think this every happened, and I would have liked to see this happen, even though I don't think he ever did. I really would have liked to work on stuff together, other than just in lab.

A great suggestion that Reed gave us was to look at past exams. Best advice ever. But not just look at them, UNDERSTAND them.

I know I mentioned this before, but I would like to reiterate my gratitude for having us talk to our neighbors in class. Not only did I meet some great people, but I also learned from them. When someone knows how to do something, they can perhaps offer a different explanation than the professor that could be helpful to those who do not know--which was the case for me on several occasions.

I feel like at the end of this class, you will know if you want to continue to be a computer science major.
I almost switched majors after just taking CS111, but I felt reassured that I want to stick to CS after this class.

Overall, it was a great class. Just make the time to study for it, ask a TON of questions, see Sean or Reed or CS tutors for help, and do the work!!

I hope this was helpful...
33
Someone New5/1/135:15 PMWow, this was a tough course. If you want to take this course, be prepared to work really hard. Also, make sure you're completely honest when Reed asks you if you understand the topic at hand. If you don't, say that you don't and visit him during office hours. Visit your TAs as well, as they can be a major help.
As for labs, well, they're nothing like CS 111's labs. You cannot simply do them at home when you feel like it and skip going to class. You have open-note quizzes before every lab, and both are very hard.
One final note: Reed has an amazing sense of humor. He will make at least three very funny jokes every class, and when you get to recursion examples... oh boy, I laughed so hard at one of the examples I almost started crying.
There were a few times during this course when I thought I should change my major, but I just hung right in there and kept going. Do not give up, and DO NOT PROCRASTINATE. You procrastinate, that's it.
34
Current Student12/7/1211:43 AMThis is hard! They switched to C/C++ this year and it's hard. If you're already familiar with C/C++ from previous courses, or if you have taken MANY programming classes before, then this class won't be difficult for you.

If you want to get an A in this class, you will spend most of your time doing computer science and will barely have time for your job, english papers, calculus, chem, or etc.
35
Donald Siuchninski1/8/1211:39 PMPrograms: Start the programs no later then the weekend they are assigned. This will give you time to give it an honest shot and ask questions the following week.

Codelab: Easy to forget, so set your weekly iphone/android reminders. I found it helped keep me sharp with syntax. A good grade boost if you can do all of them. Also particularly useful when you get to C code. At times can get extremely tedious...

Tests: The most efficient way to study for the tests is to do at least 3 of the past exams. You will be tricked on the midterm if you aren't ready for his "traps." The exams are provided to you on the course page.

Labs: Resemble the programs on a smaller scale. Make sure to complete these and that both you and your partner understand what your doing. These concepts will simplify tricky programs.

Quizzes: Read before class and you will succeed on the quizzes. I tended to read too far in advance and did poorly on the quizzes, but my grade wasn't affected. Don't worry too much.

Book: In my opinion, the book is outstanding. I read the book and didn't have difficulty on the Java programs. There are also interesting topics past chapter 6. I kept the book.

Most my class thought the C section of the course was extremely difficult. Be aware that the last month will require a ton of work. It will make sense as it is explained, but debugging C code for the first time is another monster.

The points are in the tests and programs.
36
Keenan Avers1/7/121:22 AMWatch out for linked lists covered at the end of the semester. They are quite possibly the most difficult course material to visualize in your head.
37
I'll never work 4r google5/27/1011:59 PMDear CS 102 student,

As other students said, start working on the projects asap. And if you get stuck somewhere, don't waste more time on it and go to Prof. or TAs. They will tell you the fix, or most probably, give you the code. The exams are not that hard, except the final one. They are open book. Take all the previous exams to the class, they will help a lot. Also, since not many do well on programs, scoring well in exams are very beneficial for your grade. And always turn in your program. No matter how many steps you have not done, still turn them in. I remember that I didn't complete all the steps for the programs and I was expecting 50 on it, but got 70. So always turn in you program even though it's incomplete.

And finally, This class is for those who wants to make career in computer science. So maybe that is why programs are hard. This class prepares you for the challenges in the future. The little bit hardness in programs weeds out people who think "Oh I can also do CS." Sorry, CS is for tough people.

Thank you. Hopefully my suggestions would help you.
38
anonymous5/6/1012:24 PMPlease let us know what's the final result.

It's been pain staking to wait for them.

Generally, this is my suggestion, post all the grades within one week.

Thank you.

I will post more suggestions later, after getting to know the final grade.
39
Mr. Anonymous5/6/104:18 PMMy Advice for Future CS102 Students:

1. Don't buy the book - it's useless.
2. Get a good partner in lab or you will get a low score.
3. The In-Lab Midterms are difficult, print all code before going.
4. Print every old exam and bring them to the midterms.
5. Do the codelab.
6. Programs are lame, wow cool its a 2D game....SIKE! but you learn the material.
7. Don't buy the book - it's useless.
40
Senor Chang5/6/107:06 PMStart the projects ASAP.
Do Codelab.
Dont buy the book, although most of the quizes are from the end of the chapter questions.
Get help if you need it, dont skip class.
41
Saja5/6/107:22 PMDo not, under any circumstances buy the book. Codelab is sooo optional if you do well enough on everything else. All projects save the last one can be done in 4-6 hours. Remember that all exams are open note.
42
Vijay Kamaraj5/6/108:53 PMDear CS 102 students,

Programs:
OMG Do them as soon as they are assigned!!! If you are a fairly seasoned programmer you can get these done 5 to 2 days before they are due. So you can focus on other stuff, like oh I don't know...CALCULUS or ENGLISH PAPERS?!?

Programming Partners:
If you have a good one (like me) they will save your life. But! I would suggest giving each your own idea on how to approach a problem and see which one will work best. You can learn a lot from each other that way

Labs:
Yes, you wake up early and yes you really do not want to be there, but hey, this is where you hone your skills as a programmer. And you work with a partner so that helps out as well. CS involves teamwork but also equal individual effort.

Lectures:
You brought a laptop, that's awesome! You will be able to focus on the lecture while doing the programs...
YEAH RIGHT!
You will be sooooooooooooo distracted with that laptop of yours. So it is a very healthy option to close is once in a while during lecture. The class is very informative only if you PAY ATTENTION.

The Book:
Be cool like me and save money, do not get it. The Internet was built by CS people, therefore all your CS help is on there

Codelab:
Do it, you will forget, but just do it. Its really quick and simple. Its just a way for some of the syntax to get into your brain, by doing it over and over and over and over....

Programming in general:
You are graded on the results, enjoy this for the time being! Afterwords you will be asked to code formally and properly. So focus on the result, no matter how bad your code looks. You get the answer -> you get the points. Easy...for now...

Final Thoughts:
As I said before CS involves some teamwork. It is best you have a couple of people you know and trust. They make CS easier and more enjoyable. You will be amazed by the code you see from others (note that I said "see" does not mean "copy"). Seeing theirs will inspire you to do better. CS is about efficiency. To be a good programmer is to be an efficient one. Yes you can solve the problem by writing 500 lines of code...or maybe you can do it in 100 or 50? Don't ask me, you try it!

That's all I got
see ya
43
Dan12/9/096:54 PMAttend all the lectures if possible.
Read the book. There are a lot of neat tricks you'll miss if you don't read each section. Most of which make coding easier.

Start doing the Code Lab assignments ASAP. They're very fast and get you familiar with the syntax. In fact I suggest going through them until you really get stuck, if it takes you more than 5 minutes to do a problem on there you probably need to read the book wait for the next lecture to happen.

Like everyone else has been saying, start the projects as soon as possible, but don't just sit and try to start writing code that's counterproductive. If you can do that you should see about testing out of the course. Your best bet is to systematically write out what you want done and a general scheme of how you want to go about doing it. Once you have that down then try writing it. Also do things piece-wise, don't try to do the entire project in one fell swoop.

Other than that, have fun. You're taking this class because you enjoy programming, try to remember that when you get stuck.

I think the rest has been covered sufficiently.
44
Rob12/8/092:28 AMIf this is your first computer science class at UIC. One very important piece of advice: You will be doing both all your labs, and half of all your exams on a Linux machine. Very early on, you will need to master very simple but crucial skills. As soon as you can, learn how to do the following things:

1) make sure you learn how to find, save, and navigate to any file from the desktop, as well as from any application running, especially the programming editors ie (bluejay, eclipse).

2) learn the turnin command, including how to send multiple files all at once, and how to know, and double check that your file(s) were actually submitted. This is the last thing you have to do before you send in anything inportant... labs, projects, in lab exams, and on that first exam, the last thing you want is to have an issue with it. Also, with the same idea in minde, sure you run SSH from home well before you need to use it.

3) if you can, do your projects on the computers in the lab. You'll learn how to deal with all the weird issues that come up when time is on your side, and not when you are running low on time.
45
Rob12/8/094:54 PMTake one of the old practice exams early on to see what the questions are like, that way you’ll have an idea in mind as to how you’ll be tested WHILE you are learning and hopefully you’ll anticipate questions better.

You’ll notice that all the questions are either difficult or tricky in some way. If you don’t feel this way about a question, review that question again, you’re likely missing something.

Always go to class, you’ll always learn something you wouldn't have otherwise, and usually that something it wisdom that will last longer than the duration of cs102. If this doesn't sell you, you should note that if you don't go to class you may miss very helpful hints that are given about projects and or tests.

Have the courage to talk to your TA and Professor during office hours, especially if you are really spinning your wheels on something... or if you need a little guidence. Remember to really get the most out of college you need to develop relationships and networking skills as well has self-confidence and knowledge.

Form study groups early on! It makes things fun, you meet people, and you reinforce your learning. The best thing you can do is work on the questions and programs in the back of the chapter after having read the chapter on your own. These questions may seem like a pain, but there is no better way to reinforce your learning… Plus, your quizzes will likely come directly from here.

Pay attention to the best practices noted in the book, these are things you definitely want to incorporate into your projects… as well as for developing your own intelligent programming “style”.

Comment generously! Avoid duplicating code!

Trace out all code problems on tests and quizzes. Learn the techniques by watching the Professor in class and looking at the solutions with answers for previous exams.

Download all the old exams in a folder and use Google desktop and search through them for specific questions you want to test your self on..

Bring copies of all old tests to the exam. for quick reference, index which questions are on which page for each test on the front of the test. This should be helpful for at least 1 or 2 questions..

If you feel uncertain of your knowledge, spill out all your knowledge of a particular area into a concept map. Make it as detailed as possible and you will find the spots where you need to study more.

When going from Java to C, note that you will DEFINITELY need more time than you think with your first C program.
46
Dale Reed12/7/096:20 PMCS 102 Students,

Please use this space to give advice to future students for this course. Also feel free to give any suggestions to me on how to improve the course. No registration is necessary, and anonymous postings are fine.

- DFR
47
Andrew12/7/097:00 PMNever wait till the last minute to start an assignment. There is always something that can come up and catch you off guard if you don't give yourself enough time to check and recheck your work.

It's better to over-comment as opposed to under-comment your code.
48
Niko12/7/097:59 PMAs was stated before, start the assigned projects as soon as they are mentioned! - and if at all possible, before they are mentioned in lecture. Unlike other classes such as mathematics where your work is pretty straightforward and fixed, programming is much more flexible and free form So, trying to pull an all-nighter and write an entire program the night before it's due, does not work: you need to be creative and solve problems in a flexible manner. Such work does not come easy when you are tired, unlike being able to just process mathematics and do some number crunching at 4am.

Keep up with CodeLab. The due dates will sneak up on you *very* quickly and they very easy to forget about since it starts out so easy and quick. By default, CodeLab organizes the exercises by category. I recommend clicking the drop down box on the left of the CodeLab screen and organizing by deadline to help you keep due dates straight.

Never hesitate to ask a question in class, even if you think it is a stupid one or a bit off target of the lecture. I had many questions which others knew the answer to, but that did not stop Professor Reed from answering them just the same. When in doubt, raise your hand, but make sure your question is being answered in the response. Sometimes questions regarding Computer Science may only make sense to the one asking them and those being asked to answer may misinterpret your question and answer something totally different. Just, make sure you understand something and don't be afraid to speak up if you don't understand something.

Make sure you familiarize yourself with a Linux environment and a Terminal interface quickly. If you are not already familiar, there is no shame in spending an afternoon after your lab class in the Linux lab and immersing yourself in Linux and/or asking for some help from the ACM.

Speaking of ACM, count them as another resource right up along with Professor Reed and your TA. Many ACM members may be in your same shoes or have already taken the course and can give you veteran inside info.

Learn how to use the Eclipse IDE - especially for Java development (for C/C++, not so important). It is orders of magnitude more powerful than BlueJ, though BlueJ lets you test code without a working "driver" class, so keep it close.

Make sure your TA doesn't just know what your name is and how to address you, but also how to spell your name. I always had my name mispelled as "Nico" though I use a 'k' to spell name.

Lastly, enjoy the class, it was my most enjoyable class out of my first semester here. And don't forget that communication is key, between you, Professor Reed, your TA, and your classmates!
49
Aisha12/7/098:57 PMCodeLab: Do it. It does help if you don't know how much you understand the concepts. If you have time to kill, and the deadline's two weeks away, sit and finish early. It makes a difference.

Coding Assignments: The ones in the back of your textbook are quite helpful. So around thee weekend, check the syllabus for topics to be covered the coming week. Read and understand the chapter, and then attempt these. If you're stuck, and I'm sure you will be, haunt your professor or TAs during office hours. Yes, even if you think you sort of understand and mutter "ohh, okay, that makes sense...yeah...", it still means that you're really not completely sure. You have to be sure, or these concepts will bite you in the back once you go ahead in some other topic. CS is somewhat cumulative, so it's from an ingest and vomit out class. You need the skills from this class, so devote your all in this, even if it's just '102' for you.

If they introduce an IDE, it's for your own good. Get familiar with any and all, and it'll help you later on, when you know you can't possibly organize things manually.

Use all resources. I probably would've dropped/failed this class if I hadn't used every possible office hour, because not everyone can learn from books and tinkering--and yes, you may believe(and are correct) this is coming from an idiot, but it's more idiotic to not cover all your bases.

Don't be afraid to feel stupid. Ask questions. Let your ego be trampled upon. It'll all be worth it in the end--not(only, depending on your priorities) grade-wise, but how much things you actually learned and how you have all these mad cs skillz :)

Classmates help. ACM people help. You have no idea how many program bugs got caught by other people, or they'd have similar problems earlier. Again, exhaust every resource to feel comfortable with the concepts.

Feel enthusiastic about this class, or you'll start losing it really quickly. Think about the reason why you're taking this class, and hold on to that reason close to your heart, because this class is far from trivial. You may have a few sob-fests during the weekend while debugging, you may forget to shower, existential crises may appear...and the thought of resigning to some other major may cross your mind, once or twice. That's why, keep the bigger picture in mind--if you don't know what this is, or you think it's crazy that you're putting so much into 'just a 100-level class', then speak to someone who knows better. It's okay to feel like an idiot, because you are--ultimately, we all are.
50
Chrissy6/6/0911:04 AMMake sure to keep up with the reading! Also do the CodeLab assignments and projects early- once you get a little behind you will be stuck behind so don't let that happen.
51
Todor5/10/0911:52 AMMake sure to attend the lectures as it would help when doing the projects and also give you a good idea of what to expect on the short answer questions on the exams.
52
Chris5/7/0910:09 AMStart the projects when they are assigned.
53
Dale Reed5/5/099:41 PMUIC CS 102 students from Spring 2009,

Please consider adding comments here, as recommendations for future students taking CS 102. What have you learned that would be helpful for them to know? What should they look out for? (etc...)

Note that you don't have to subscribe or register to do this. Simply press the orange "Post a New Message" button above and you can post.

- DFR
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100