Syllabus Bulletin description CSC 130 COMPUTER SCIENCE I This introduction to programming and problem solving emphasizes applications from quantitative disciplines and incorporates in class programming experiences Instructor Info Name: Calvin Deutschbein Email: cdeutschbein@elon.edu Office hours: After class or by appointment Teaching Assistants None Textbook and Resources No textbook. We will cover material in How To Design Programs, but in Java rather than Racket. https://htdp.org/ We will use Piazza. We will have in class coding "assignments" as part of lecture. I will give you many opportunities in class to repeat after me and try variations. Homework (and possibly exams) will be downloaded and submitted over Bitbucket via Git (to be covered in class). Course Description In this course you will learn to basics of thinking about and solving defined problems. We will using programming as a way to organize and teach this style of thinking. Target Audience This course is intended to meet the needs of students majoring in computer sciences and to introduce computer programming to students who have no experience. Prerequisite None. Goals and Key Learning Objectives To teach problem analysis, algorithm design, and the elements of programming, with emphasis upon mastery of concepts, using a limited number of well-chosen language features and problems. Although Java is used for instruction, the emphasis is on learning to think procedurally rather than learning a specific language. Course Requirements Every two weeks there will be an assignment to write a program and submit it for grading. Key Dates March 2 - will have in class office hours rather than instruction in recognition of the election day March 3. March 13 - Midterm Apr 13 - Easter (no class) May 11 - Last Day of Class Grading Criteria 40% Assignments 20% Midterm 40% Final Exam All exams are cumulative. Assignments and exams will include code to automatically check your answer and give you instant feedback. If it tells you the answer is wrong, you can be certain that you need to fix something. On the other hand, if it tells you the answer is correct it may still be incorrectly computed. When grading I will use a different dataset that will produce different results. For example, suppose I ask you to write code that adds the numbers in an array. Instead of writing code, you might look at the numbers, add them on your calculator, and enter the sum. The checker in your assignment will tell you that the answer appears correct because it is correct for that particular data. But when I grade the assignment, the array will have different numbers with a different sum. If you simply entered the number you got off your calculator, it will be marked wrong and you'll get zero credit. The point is: you must write code that computes the answer from the given data. Late assignments will not be accepted for credit. Instead, the lowest assignment score will be dropped. Points for assignments and exams will first be normalized to 100% and then weighted as described above. The resulting numerical score will be converted to a letter grade using the following ranges. 95 ≤ A ≤ 100 90 ≤ A- < 95 86 ≤ B+ < 90 83 ≤ B < 86 80 ≤ B- < 83 76 ≤ C+ < 80 73 ≤ C < 76 70 ≤ C- < 73 65 ≤ D+ < 70 60 ≤ D < 65 F < 60 The instructor reserves the right to adjust these ranges down if the grades are skewed too low. Final exam special considerations If the final exam score is higher than the midterm score, at instructor discretion the final exam score will replace the midterm score as a result of the cumulative nature of the exam. If the final exam score is lower than the midterm score, at instructor discretion the midterm score will replace half of the final exam score as a result of the cumulative nature of the exam. Course Policies and Honor Code My computer and I will do all grading. If you have issues with grades bring them to me. Collaboration on assignments is highly encouraged. However, what you hand in must be your own work. Good scholarship requires that all collaboration must be acknowledged. Thus, if you collaborate on the solution of a problem set, we expect you to list your collaborators in the space provided at the top of the assignment. Turning in someone else's code as your own is an Honor Code violation. Intentionally failing to acknowledge a collaborator is an Honor Code violation. Collaboration on exams is a violation of the Honor Code. This includes discussion of questions on a quiz, midterm, or final with students who have not yet taken that evaluation. No outside help of any kind is allowed on exams. Honor code violations will be addressed in accordance with University policy. Disclaimer The instructor reserves to right to make changes to the syllabus, including dates. These changes will be announced as early as possible. Accessibility Please let the instructor know if there's any way to make the course more accessibile at soonest convenience.