You come into this course knowing the basics of programming. You're proficient in variables, functions, control flow, data structures, and file IO. With these concepts, you can train a computer to complete nearly any task you can imagine. The next step is to use these skills in more efficient ways to write better code. The course is based around writing larger and more complex programs in order to focus on each of the course learning objectives.
Learning Objectives (what you need to master in order to pass this course):
You must show a minimum threshold of all concepts (at least 50% of the points) on each course component that directly relates to the learning objectives listed above.
This is not an easy course! To do well in this course you are expected to:
* The 12 hour/week minimum is an average. If you invest less than 12 hours/week in CSE116 during the first several weeks of the semester, or do not fully understand all the CSE115 topics, you should expect to work significantly more than 12 hours/week while you catch up. You can expect to spend 40+ hours in a single week on this course if you fall behind or if you have not mastered the basics of programming
Being successful in CSE116 requires a minimum threshold of understanding of each of the course learning objectives. There are 14 assignments throughout the semester that directly relate to your demonstration of mastery of the course material. The assignments are the following:
There are 3 Tracing Quizzes that will take place in lab that will assess your completion of learning objectives. For each quiz will consistent of 2 questions where you will be provided with the code for a program, and you are to trace through the stack and heap memory usage throughout its execution. Each of these question will be graded on a pass fail basis and worth 50 points. As long as you pass one of them you have completed the learning objective. There are 100 possible points for each because of the two questions.
These quizzes are completed in an exam environment. Accessing anything other than the quiz material in UBPower (The tracing tool) is an academic integrity violation.
There are 3 Interview Topics that will take place in lab that will assess your completion of learning objectives. All three interview topics will occur in a single lab near the end of the semester. During interviews, a TA will ask you a variety of questions related to the concept being assessed. To pass an interview, you must demonstrate that you can competently explain these concepts on a technical level. Simple regurgitating memorized definitions will not earn credit on these interviews. You should be able to have a conversation with another human about the concepts which is what the interviews simulate. A pass on the interview will be worth 50 points.
Your interviewing TA does not make decisions for learning objective completion. Your interviewing TA will record your answers during the interview which will be reviewed by a separate grading team. Do not pressure your interviewing TA into marking you for completion
There are 3 Coding Quizzes that will take place in lab that will assess your ability to recall the programing aspects of the learning objectives in a closed environment. For these quizzes you will be given a small programming task, and you will write code to complete the task in a timed environment without access to any outside material. You will use IntelliJ to write your code and will have unlimited submissions to AutoLab within the lab time. Each quiz is out of 100 points and a score of 50 is required in order to demonstrate the minimum understanding of the learning objective being tested.
These quizzes are completed in an exam environment. Accessing anything other than the quiz material in IntelliJ or AutoLab is an academic integrity violation.
There are 5 Coding Tasks that you'll complete outside of class time that will assess your completion of learning objectives. These tasks are where students spend most of their time working on CSE116. Through these tasks, you will gain hands-on experience applying the concepts of the course to a large project. All 5 coding tasks build on each other as you work on a project throughout the semester. Each coding task is out of 100 points and a minimum score of 50 is required for each in order to pass the class. The first 50 points for each task demonstrate all aspects of the learning objective and must be earned before the second 50 points for the assignment unlock.
Point breakdown of all graded aspects of the course. Green text represents learning objective parts of the course that must be met to pass.
Course Activity | Learning Objective | Comprehensive Understanding |
---|---|---|
Tracing Quiz 0 - Java Basics | 0 | 50 |
Tracing Quiz 1 - Classes | 50 | 50 |
Tracing Quiz 2 - Object-Oriented Programming (OOP) | 50 | 50 |
Tracing Quiz 3 - Data Structures | 50 | 50 |
Interview Topic 1 - Classes | 50 | 0 |
Interview Topic 2 - Object-Oriented Programming (OOP)Data Structures | 50 | 0 |
Interview Topic 3 - Data Structures | 50 | 0 |
Coding Quiz 0 - Java Basics | 0 | 50 |
Coding Quiz 1 - Classes | 50 | 50 |
Coding Quiz 2 - Object-Oriented Programming (OOP) | 50 | 50 |
Coding Quiz 3 - Data Structures | 50 | 50 |
Coding Task 0 - Java Basics | 50 | 50 |
Coding Task 1 - Unit Testing + Classes | 50 | 50 |
Coding Task 2 - Linked-Lists + Inheritance | 50 | 50 |
Coding Task 3 - Trees + Polymorphism | 50 | 50 |
Coding Task 4 - Graphs | 50 | 50 |
Lab Activity 0 | 0 | 50 |
Lab Activity 1 | 0 | 50 |
Lab Activity 2 | 0 | 50 |
Lab Activity 3 | 0 | 50 |
Lecture Questions | 0 | 50 |
Totals | 700 | 900 |
Coding Tasks: All coding tasks must be completed before their listed deadlines. If you do not complete a learning objective before its deadline, you can no longer complete that task, and you have failed the course. Start early so you never have to worry about this.
Interviews: Interviews do not have a Comprehensive Understanding component, but 50 Learning Objective points will be awarded for demonstrating 50% understanding of the concept. Grading decisions will be made at the discretion of the course staff.
Lecture Questions: There are 34 lecture questions throughout the semester which are multiple choice questions at the end of most lectures. Each question is worth 2 points with a maximum of 50 total points available, meaning that 9 questions will be dropped.
Learning Objective Points | Grade |
---|---|
All 700 Learning Objective Points Earned (ie. >=50% of completion of critical assignments) | Grade depends on the number of Comprehensive Understanding Points earned |
0-699 Learning Objective Points Earned (ie. Less than all Tracing Quizzes, all Interviews, all Coding Quizzes, and all Coding Tasks over 50% minimum understanding threshold) | F |
If you earned all learning objective minimums then your grade will be determined by your percentage of points earned during the semester. Your final letter grade will be determined as follows:
Comprehensive Understanding Points | Grade |
---|---|
850 - 900 | A |
800 - 849 | A- |
750 - 799 | B+ |
700 - 749 | B |
600 - 699 | B- |
500 - 599 | C+ |
400 - 499 | C |
250 - 399 | C- |
100 - 249 | D |
0 - 99 | F |
All lab learning objectives are listed on the course schedule. All of these assessments list how to meet the 50 point (50%) minimum score required in order to pass the course. Ideally, you will complete every objective during these labs. If you don't complete an objective this lab, you will have the following opportunities to prove that you have completed the objective:
There is no textbook for this course. Instead, links to relevant readings and tutorials are provided in the course schedule. When a reading is listed you should study it before lecture.
CSE Department Academic Integrity Policy:
https://engineering.buffalo.edu/computer-science-engineering/information-for-students/undergraduate-program/cse-undergraduate-academic-policies/cse-academic-integrity-policy.html
UB Academic Integrity Policy:
https://catalogs.buffalo.edu/content.php?catoid=11&navoid=571#preamble
In addition to the department and university policies, the following details apply to this course.
All submitted work must be of your own creation, and you must not share your submission with anyone else. If any submission is very similar to code that has been submitted by another student, or can be found online, it is in violation of this course's academic integrity policy, and all students will be penalized whether they were copying or sharing their code with other students so they can copy. If two submissions are similar beyond what is likely if the students worked independently, then both students are in violation of the academic integrity policy.
All violations will result in:
It is your responsibility to understand what constitutes an academic integrity violation. If you have any question whether something you are doing is a violation or not, ask for clarification before receiving an F in the course. We will not entertain excuses after you have been caught.
Examples of acceptable behavior:
Examples of unacceptable behavior:
Any student may be challenged by the course staff to prove that they did write any code they submitted for course credit. The method of proof can vary and is left for the course staff to decide. If the student fails to convince the course staff that they were the author of all the code they submitted for course credit, they will be found in violation of this academic integrity policy. Please note that if a student is in violation of any other part of this policy, it is still a violation even if you can prove that you were the author of your code (Ex. If you did write your code, but helped someone else cheat).
If you plan on cheating, plan on taking this course again.
Coding Task 1: Unit Testing + Classes | ||
Lab: Activity 1 + Coding Quiz 1 | ||
Monday September 22 |
Testing Classes |
|
Wednesday September 24 |
Testing Classes |
|
Friday September 26 |
The Debugger |
Lab: No Lab | ||
Monday October 13 |
No Lecture |
|
Wednesday October 15 |
No Lecture |
|
Friday October 17 |
No Lecture |
Lab: Activity 3 + Coding Quiz 3 | ||
Monday November 3 |
Debugging + Testing Tips |
|
Wednesday November 5 |
Debugging + Testing Tips |
|
Friday November 7 |
Debugging + Testing Tips |
|
Friday, November 7 @ 11:59pm Task 3: Problem Set Deadline |
Lab: No Lab | ||
Monday November 24 |
No Lecture |
|
Wednesday November 26 |
No Lecture |
|
Friday November 28 |
No Lecture |
Lab: 2nd Chance - Coding Quiz 2 + Tracing Quiz 2 + Coding Quiz 3 + Tracing Quiz 3 | ||
Monday December 1 |
Review |
|
Wednesday December 3 |
Review |
|
Friday December 5 |
Review |
|
Friday, December 5 @ 11:59pm Task 4: Game Features Deadline |
Lab: No Lab | ||
Monday December 8 |
No Lecture |
|
Friday December 12 |
Final Exam: 7:15PM - 10:15PM |