The goal of COMPSCI220 Programming Methodology is to turn you into an advanced programmer with a deep understanding of modern programming methodology. We will emphasize good software engineering skills, including programming abstractions, testing, and debugging. Although the programming language that we will use is JavaScript, we will not teach you anything language-specific. Everything that you will learn in the class will be applicable to other modern languages, including (for example) Swift, Rust, C#, Java, D, Python, Go, and C++.
Although JavaScript is important to known, it has several poorly-designed features that make it a particularly bad programming language for teaching. to alleviate this problem, we use a language-level for JavaScript that uses both static and dynamic checks to eliminate JavaScript’s worst features.
To succeed in COMPSCI 220, students should already understand:
Students who complete COMPSCI 220 understand the following topics:
You cannot use electronics of any kind in class. (i.e., no laptops, cell phones, tablets, Google Glasses, Apple Watches, Microsoft HoloLenses, etc.)
If you require any special services or accommodations during this course, you must register with Disability Services within the first two weeks of this course. This will give us time to plan accordingly to ensure that you get the help you need before it is too late. If you contact us after the two weeks we may not be able to provide you the help you need.
All projects in this course are to be done by you and you alone. Violation will result in an immediate F grade for the course and possible initiation of the formal procedures of the University. We use an automated program and manual checks to correlate projects with each other and with prior solutions. If you cheat, we will catch you.
At the same time, we encourage students to help each other learn the course material. As in most courses, there is a boundary separating these two situations. You may give or receive help on any of the concepts covered in lecture or discussion and on the specifics of programming language syntax. You are allowed to consult with other students in the current class to help you understand the project specification (i.e., the problem definition). However, you may not collaborate in any way when constructing your solution: the solution to the project must be generated by you working alone. You are not allowed to work out the programming details of the problems with anyone or to collaborate to the extent that your programs are identifiably similar. You are not allowed to look at or in any way derive advantage from the existence of project specifications or solutions prepared elsewhere.
If you have any questions as to what constitutes unacceptable collaboration, please talk to the instructor right away. You are expected to exercise reasonable precautions in protecting your own work. Don’t let other students borrow your account or computer, don’t leave your program in a publicly accessible directory, and take care when discarding printouts.
In addition, you are subject to the university’s academic honesty policy and guidelines for classroom civility. You must read both of these.
To ensure that you do not run afoul of the academic honesty policy, follow these rules:
Gradescope sign-up instructions:
95J44W
.Several factors determine your grade in this course. They are weighted approximately as follows:
Component | Weight |
---|---|
Projects: programming component | 30% |
Projects: quiz component | 30% |
Mid-Term 1 | 20% |
Mid-Term 2 | 20% |
The exact grading scheme may be adjusted during the course. However, a typical breakdown of percentages and final grades for this course are A (93-100), A- (90-92), B+ (87-89), B (83-86), B- (80-82), C+ (77-79), C (73-76), C- (70-72), D+ (67-69), D (60-66), F (0-59).
Your current grades are always available on Gradescope. You must track your own performance throughout the class.
You cannot submit homework late. There are only two exceptions to the policy:
If you have an accommodation Disability Services, then we will arrange exceptions on a case-by-case basis, as needed.
If you cannot complete a homework for a valid and documented reason (e.g., an illness), then you will receive your excused grade, which is the average grade you’ve received of your submitted homework. The excused grade is calculated at the end of the semester.