From Computer Science
Revision as of 04:12, 30 July 2020 by Jkinne (talk | contribs) (CS 101 versus CS 151)
Jump to: navigation, search

CS 101 versus CS 151

As indicated in CS Programs, CS 151 Introduction to Computer Science is required for all concentrations of the CS major, while CS 101 Fundamentals of Computing is required only in the Information Science concentration.

Students self select whether to start in CS 101 or CS 151. As a rule of thumb, those who have no previous experience with computer science should start in CS 101. CS 151 does not have a prerequisite but does require students to be able to pick up the concepts and skills fairly quickly. If you are unsure you can get in touch with the associate chairperson and/or the instructors for CS 101 and 151. You can also try out the following "challenge" to see if you have the interest level and ability to do well starting in CS 151.

  • CS 151 challenge...
  1. Start working your way through the Python tutorial at https://www.learnpython.org/.
  2. Create an account at https://repl.it/languages/python3 so you can create some python programs and save them online (to share with others).
  3. Solve the exercises at the end of each page of the learnpython tutorial, and save each one in your repl.it account.
  4. After getting the first few exercises, send the links to jkinne@cs.indstate.edu to check if they are right. Also, did you enjoy this process?
  • If you figured things out eventually and enjoyed it, you are likely okay to start in CS 151. If you got frustrated at the computer, at Jeff, or anything else and gave up, you are better off starting in CS 101. If you still aren't sure let's talk. Note that either is "okay", there isn't a right or better one to start in.

Students can complete any of the concentrations by starting in either CS 101 or 151. Any of the concentrations can be completed in four years by starting in either. See Undergraduate Advising for more details on course sequencing. If you do start in CS 151, it is also a good idea to take CS 101 during your first term (in particular if you plan to complete the information science concentration that requires CS 101).

Should you buy your textbooks?

Find a copy for a reasoanble price, and yes, purchase it. You will be more likely to actually read it if you have a copy (rather than trying to borrow a copy or something). If you are getting a CS degree you should want to learn the course content. Also, not everything you need to know is covered in lecture (there just isn't enough time), and it's up to you to fill in the gaps.

Positions in the department

We consider all CS students whenever we have an opening. The most important qualities we consider are how well you do in your courses (are you one of the top few students?), how responsible and hard-working you are, and how well you communicate and interact with others.

Finding information at ISU

Think of what the department might be called, and try going to ISU A-Z and searching using the browser's search option (ctrl-f). Also, see [1] for undergrads, and [2] (and click on Current Students) grad students.

How to contact your professors

Check your professor's class schedule (see the schedule of classes linked off the CS homepage). You can normally catch a professor just before or just after one of their classes, and then ask them when you could come to their office or how they prefer to be contacted. Once the semester starts office hours will be posted outside of each professor's door and at ISU CS People.

Why are you Here?

Ask yourself why you are paying ISU thousands of dollars for a degree? Presumably because you are interested in CS and also want to get a job in CS after graduating. This will only happen (getting a job in CS) if you take your courses seriously and put your full effort in. Weak students who do not do their best, or try to get others to to their work, have little success in securing good jobs after graduating.

Programming and Linux

Many professors (Exoo, Sternfeld, Baker, Kinne) require students to turn in assignments on the CS server. For these courses you will be given an account for the course, and will do all your programming assignments for the course on the CS server with your class account. To be counted as correct, in these courses your program must compile and run on the CS server. See Programming and CS - Getting Started for help in getting started on the CS machines.

Planning Ahead

You should begin to think about applying for jobs at least one year before you will do so. If you wait until you graduate to think about how to get a job after graduation, you will not be as successful. Some of our graduates have decided to complete an industry certification program (e.g., from Microsoft, Oracle, or Cisco) to increase their chances of getting a job after graduation; we have been told this can take about one year from when you begin.

For both on campus jobs and jobs after graduation, you wil benefit by doing well in your classes - (i) doing well better prepares you, (ii) having a higher GPA looks better to prospective employers, and (iii) your professors can give you good recommendation letters if you have done well in their classes. It really does pay off to do your best in your classes.

On Campus Jobs

You can view available on-campus jobs by visiting [3] and clicking on the appropriate category for you. Make sure to check back regularly because jobs might not all be posted by the beginning of the semester. To apply for a position, you need to apply online; it will normally not do you any good to contact the department in person as well. Make sure to submit all documents that are asked for (e.g., resume, transcripts, cover letter). A cover letter should briefly explain your background and interests, and indicate enthusiasm for the position you are applying for. For the resume, see Careers for advice and you can find examples online to get ideas for the appropriate format and contents; as a general philosophy, you should be very positive about yourself, but do not ever lie (e.g., do not say you know Java if you do not). For additional help in writing your resume and cover letter, you can contact the Career Center or more senior CS students (e.g., lab assistants who are currently on duty in the lab).

Note for new students. The application system asks you to list some number of references. You can list professors who you will have in class or the associate chairperson of CS, but they will not be able to say much about you other than what they might know from your transcript. It is better to list a reference that knows you (possibly someone you had in previous studies or work). Once you have been in class long enough to have had some assignments or exams graded, the professors you have in class might able to give more support in a recommendation for you. And always check with someone before listing them as a reference.

Knocking on Doors

If you knock on a door and there is no answer, DO NOT try to open the door. This is considered to be very rude.

If you decide to be rude and try to open the door and find nobody is in the office, DO NOT go inside and start looking through things in the office. This is considered trespassing (a crime).

If you are around long enough and interact with enough people, you will see some strange things.

Programming Assessment - How to Make Sure You'll Pass

Come to all review sessions that are offered when you are free. Take the assessment each time it is offered. You don't really know what it will be like until you try to take it for real. Any failed attempts do not count against you. Pick a problem type that is easiest for you, and practice just that type of problem. Visit the lab and ask the GAs to take a look at what you have. Come ask one of the CS faculty to take a look. Once you have that problem type mastered, pick the next easiest for you. Follow tutorials online for C programming (not C++, this is in C). Watch videos. There are many options to choose from. Form a study group with others in your class, work on problems together and help each other out (not during the test itself, of course).

Programming Assessment - What if You Cannot Pass it

The policy will be enforced, you will be given an incomplete with a due date of the first day of the next semester, you might be given one last chance to take the assessment before the grade becomes the default (F for 685, 695, 699, C for 500 [assumomg there isn't some other reason you would get an F], C- or lower for 202, U for 499).

The policy is the following: for CS 499, 685, 695, 699 you must pass the assessment to pass the class, for CS 202 you need to pass the assessment to get at least a C, and for CS 500 you need to pass the assessment to get higher than a C. Note that for all of those, there could be other reasons to earn a low final grade (e.g., even if you pass the assessment, if you fail your exams, don't come to class, etc. you would be given the grade you earned based on your coursework). The assessment is given multiple times per semester. You need to take this seriously and follow the above advice.

Programming Assessment - Why

A computer science degree is different than information technology, computer information systems, and other degrees that are computing-related. A person with a CS degree should have many useful and important skills and knowledge - programming, problem solving, how computer systems work, debugging techniques, abstract thinking, etc. If we were to pick one single skill a CS graduate should have, it is to have mastered basic programming (which does require a bit of problem solving, debugging, abstract thinking, etc.).

The programming assessment is a single well-defined objective that all CS faculty can agree all graduating CS students should be able to pass. This is a minimum standard that we expect of all of our graduates. Enforcing this standard is good for students because - (a) it clearly communicates expectations, and (b) allows students and faculty to say that uniformly any ISU CS graduate can do basic programming.

Programming Assessment - Grading

The programming assessment is graded very strictly so that there are no judgement calls in grading it - answers are only scored as correct if they are free from any kind of error, and are only scored as half correct if your answer has (i) the right start and (ii) does not have anything that makes little sense or clearly conveys that you are not on the right track. Passing the assessment is only meaningful if it is scored this way - when you pass we can say with 0 doubt that you mastered these problems. This also removes subjectivity from the scoring.

We realize this grading is strict, so we do everything possible to get you ready for the assessment. The assessment is offered multiple times throughout the semester, failed attempts do not count against you, programming review sessions are offered many times, faculty will give you feedback on your attempts any time you ask, and the unix lab is open most business hours with a lab assistant on duty who can help you practice. Take advantage of all of this as needed.