Montana Tech of The University of Montana
Computer Science Department

CSCI 135
Fundamentals of Computer Science I
Fall 2020



ASSIGNMENTS

This page lists the programming assignments for the course. When an assignment is released, the assignment column will "go live" and link to a detailed description of the assignment.

#DueAssignmentCollaboration
1 Tues. 9/1 Hello Python!Individual
2 Tues. 9/8 Lists / ArraysIndividual
3 Tues. 9/15 SelectionIndividual
4 Tues. 9/22 Iteration and I/OIndividual
5 Tues. 10/6 FunctionsIndividual
6 Tues. 10/13 ClassesIndividual
7 Tues. 10/20 Classes as Data TypesIndividual
8 Tues 10/27 ExceptionsIndividual
9 Tues. 11/3 DebuggingIndividual
10 Tues. 11/10 Testing Pair

Submission. All assignments need to be submitted via Moodle. In the event of a Moodle failure, email your submission to me (mvandyne@mtech.edu) before the deadline. You should upload all the source files (those with the .py extension) required by the assignment. You should also include any other resource files which your programs depend on (graphics and sound files if used, but not files in the standard Python libraries files, or files provided to you that have not been modified). The top of every source file must include your name and a description of what the code does in a "header comment" - you will be docked points if you don't include this.

Deadline and late policy: All lab assignments are assigned during lab time and are due the day before the next lab is assigned. Ideally you should complete the assignment during lab hours. Lab is not optional! Some assignments take more time than what you can do during lab, however, so you should use your lab time wisely and start the assignment, completing as much of it as possible. During lab, myself and the teaching assistants are there to help you. It can be harder to get help outside lab hours.

Grading. Your code will be graded on correctness, programming style (including comments), and efficiency. Partial credit is possible so if you run out of time, submit what you have. If you want to do well, start well in advance of the deadline. This allows time to seek help if you run into trouble. Software bugs can be difficult to find and are often easily found after a good night's sleep.

Collaboration policy. Programming is a creative process and no two programmers will solve the same problem in the same way. You are encouraged to discuss how to design a solution to a given problem with your classmates. But when it comes time to convert your design into code, you must write the code yourself. Be sure not to leave copies of your code where others might be able to access it (such as in the recycling bin in a computer lab). You may adapt code from the CSCI 135 course materials provided you cite what code you used in your program's comments.

Under no circumstances should you copy another person's code. Copying code from another student can result in an F in the course. Novices often mistakenly believe simple transformations can disguise a copied program. In actuality, copied programs often reveal themselves quite easily during grading. We can also use sophisticated software such as MOSS to detect plagiarized code.

Pair programming. For designated assignments, you are encouraged (but not required) to pair program with another student in the class. In pair programming, both people work side-by-side at the computer on the same program. One person is the driver who actively types at the computer or records a design. The other person is the navigator who watches the work of the driver, identifies problems, asks clarifying questions, and makes suggestions. About every half-an-hour, the pair should switch roles. Before starting pair programming, you should watch this video. A pair should submit one solution with both partner's names and usernames in the header comment of the submitted files.

Page last updated: July 17, 2020