CSCI 161 - Introduction To Programming 1
CSCI 161 - Fall 2023 - Thomas Rogers
Labs (OTB 130) and sometimes lectures (Roddy 136) on Mondays, 6pm to 7:50pm
Lectures on Wednesdays (Roddy 136), 6pm to 7:50pm

Expectations - Yours and Mine:
Becoming a good computer scientist takes practice. I expect you to attend class regularly. Written class notes copied from a classmate will not capture the process of developing the problem solutions as you will experience in class. Missing lab periods can significantly lower your ability to complete the assignments. You will waste much time outside class if you skip the lectures.

The textbook is required. It may describe concepts differently and to a further extent than will be covered in class. The text uses different examples and it will help you learn. If you don't read the textbook, you may pass the course, but you won't be learning all that you can and you may be making the course more difficult than it should be.

Even though this is a 100-level course, you should expect it to take a considerable amount of effort. Read the text, do the warm-up exercises, and participate in class. Don't fall behind on the programming assignments. This is a cumulative course in a technical subject that has its own vocabulary. Pay attention, think, schedule enough time, and get help early.

Submitting and Grading Assignments:
Other than the handwritten part of the tests, you will turn in all labs and assignments using AutoLab.

When I grade the assignment, your most recently submitted source program goes through the compiler. The executable program is run with several sets of test data, and the results are recorded. I do not type in data to each of the student submitted programs each time I grade an assignment. It is your responsibility to make sure that your program reads the data in the correct order and format. Don't expect extra input. All data should be read from standard input just as if it had been typed at the keyboard, unless otherwise directed in the lab or assignment (e.g. input read from a file).

Although the compiling and execution is done automatically, I personally read and evaluate your final submission for each assignment myself. I check whether it gives the correct answers for each test set. Does it print the output in the correct format? I check whether you used the programming concepts we're studying. I examine the program's style including comments, indentation, and choice of identifiers. I check whether the methods you've written do one thing well. Just getting the correct answers is not enough to earn a 100.

As I read your program, I record comments. These comments state how many points I am counting off and describe why. For example
   (-5) Not all of your methods have a comment describing what they do.
All of my comments for your program are gathered into an email message that contains your grade for the assignment. That message is sent to your university email account when I am done grading.

Getting Help:
If you have a question, don't wait to get help. Ask questions in class. Work the example problems and warm-up exercises. This is a cumulative subject, and it doesn't get easier.

Read the textbook. But read it not as a novel or something to be memorized. The author is providing motivation for the concepts and giving alternative examples. Read it in small doses when you can concentrate.

Ideally, you will ask me questions in person. I have scheduled office hours or I will meet you by appointment usually via Zoom. Short appointments are okay.

I am accessible through email. I check my mail several times a day. If you have a question about your program, submit the source code as if you were turning it in, and send me email asking your question and letting me know you submitted the program. I usually answer within a few hours.

If a question or answer pertains to many people, I will send a general answer to the entire class by email. Those messages will remain accessible through the course web page.

The course web page at http://cs.millersville.edu/~trogers/csci161/ has information about the course. It includes links to the program examples developed in class, instructor's notes from lectures and other class related materials.

The university provides free tutors. Their schedule will be posted in Roddy. Tutors won't write your programs or even debug them. But they can explain the concepts from yet another perspective. Many students find them very helpful. Contact them early in the term when you first run into trouble.

You should be checking your university email account on a regular basis.