University of New Brunswick Saint John Fall 2023 CS 1073: Introduction to Computer Programming (in Java) INSTRUCTOR INFORMATION INSTRUCTOR: Dr. Jeffrey Mark McNally - You can address me as Dr. McNally OFFICE: Hazen Hall 301 OFFICE HOURS: (all drop in) Mondays 9:30am to 11:20am Tuesdays 11:30am to 1:20pm Fridays 10:00am to 12:20pm, 2:30pm to 3:20 pm EMAIL: jmcnally@unb.ca COURSE INFORMATION Course Title: CS1073 Introduction to Computer Programming I (in Java) 4 ch (3C 1.5L 1T) [P] Course Description: Covers fundamental concepts such as decisions, loops, arrays, classes, methods, and inheritance; focusing on problem analysis, algorithm design, program structure and readability. Introduction to the Java API libraries. NOTE: Credit will be granted for only one of the following courses: CMPE 1003, CS 1003, CS 1063, CS 1073, or IT 2773. Pre-requisite: High School Mathematics Lectures : Mondays, Wednesdays, Fridays 12:30pm - 1:20pm (HH 125) - both sections Tutorial : Tuesdays 3:30pm - 4:20pm (HH 125) - Section 1A Tuesdays 2:30pm - 3:20pm (IH 107) - Section 2A Lab : Fridays 8:30am - 9:20am (Irving Hall Lab 101) - Section 1A Thursdays 12:00pm - 1:20pm (Irving Hall Lab 101) - Section 2A Selected Text We will primarily be following along with this textbook for this course. It will also be used for CS 1083 in Winter Term. Dr. McNally stronlgy recommends a physical copy so you can examine multiple pages at once. Title: Author: ISBN: Java software Solutions: Foundations of Program Design - 9th edition Lewis and Loftus 978-0-13-446202-8 To understand where in the text we are and the topics being covered each week, attendance in class and good note taking is critically important in this course. Previous versions are sufficient and most follow the same order. COURSE GRADING AssignmentsQuizzes Lab Practicing programming and problem solving is critically important for your success in this course. Assignments will be distributed in D2L every two weeks with expected completion dates. However, as it is 2023 and ChatGPT is readily available to problem solve, write code, and even comment code for you, we will not be collecting and marking assignments. Instead, there will be a 25 minute quiz in the tutorial slot immediately following the expected completion date based solely on that assignment. Note: Assignment solutions will not be posted prior to these quizzes to better simulate assignment marking. Related to this is a reminder to take advantage of Dr. McNally’s office hours and visit him when you get stuck. LAB ATTENDANCE IS MANDATORY. Attendance will be recorded and a final grade penalty may be applied for each missed lab. Dr. McNally’s labs are a hands-on learning environment with lots of live lecturing. A small program will be required to be submitted (printed) most labs to help evaluate your programming style progress print credit is REQUIRED. ChatGPT is not permitted to be used in Lab. Midterm TUESDAY October 24T H - TUTORIAL SLOT - some multiple choice questions, some short answer questions and at least one code to be written by hand. Final Exam The Final Examination will be hand-written and closed-book. You must earn an average mark on the Midterm-Exam combined of at least 50% to earn a grade higher than D. Exams are scheduled by the Registrar’s office. DO NOT MAKE TRAVEL ARRANGEMENTS THAT COULD FALL WITHIN THE EXAM PERIOD AS ACCOMMODATIONS ARE NOT MADE. Project (OPTIONAL) Many students arrive at UNB Saint John with some keen programming skills already in hand. This project is an individual option for those students to work on a real larger project (which they can carry over into CS 1083). Dr. McNally (in his personal time) is currently involved in the world of Fortnite streaming as a moderator for a Facebook/Twitch streamer named QuizzyFB. In this stream we utilize random games based on either input from the user or text files created from chat by bots and OBS. For example we have Deal or no Deal which one person plays when it happens, winning pairs which 2 people play when it happens, and Battleships which everyone simultaneously plays when it happens. This project is to design and code a text based game that could be used on stream with the assistance of ChatGPT [In CS 1083 you will have the opportunity to change the game to a visual GUI based one which is the long term goal]. Once you have had a meeting with Dr. McNally and received approval for a game idea, you will ask ChatGPT to code the game. Of course ChatGPT will not do this well, so your job is to FIX its code, better organize and expand on its code, comment its code, and get it fully functioning as a clean performing game that could be executed multiple times. your game must involve randomness. More information will be provided during your original office visit. Projects will be presented to Dr. McNally during the last full week of classes in his office time. Your project should be provided using a USB Key which will be copied onto Dr. McNallys machine during your presentation. Grading Scheme Options - based on if you do the project Option # 1 Option # 2 Assignment Quizzes 20% 20% Lab 10% 10% Midterm 20% 15% Final Exam 50% 40% Project - 15% NUMERICAL GRADE TRANSLATION The following translation of numerical grades to letter grades is used in this course when necessary. [80, 85) A- [85, 90) A [90, 100] A+ [65, 70) B- [70, 75) B [75, 80) B+ [50, 58) C [58, 65) C+ [45, 50) D [0, 45) F Policy on missed evaluation and Attendance If you cannot complete an assessment for a reason outside your control, inform me when you first can. I may adjust your grading scheme (e.g. moving the weight of a test to the final exam); adjustments are made on a case-by-case basis and respect the academic standards of the course. With my approval (should be requested ASAP), students who miss writing a quiz or test may have the weight of that quiz or test re-distributed to the other quizzes or the exam respectively. Makeup tests, retest, and alternate writing times are NOT offered. Attendance: A student must attend at least one class during the first 6 lectures of the course. Failure to adhere to this policy may result in removal from the class unless prior arrangements have been made with the instructor. If a student has attended class any time during the period and then decides to drop the course, it is the student’s responsibility to have their name removed from the class list. Learning Objectives Computing Basics – Remember: Understand the main components of a computer system, including main memory and binary storage, as well as input and output devices. Procedural Programs - Main Methods – Apply: Apply input and output concepts to retrieve and display information in Java programs. – Understand: Differentiate between data types and variables in Java programs. – Apply: Implement basic mathematical operations in Java programs. – Analyze: Analyze the importance of proper code layout and formatting in Java programming. Methods (Simulating Functions) – Apply: Apply the concept of passing information into a method in Java. – Apply: Apply the concept of returning information from a method in Java. Classes that Exist in Java – Understand: Describe the purpose and functionality of standard Java classes such as System, Math, stdDraw, and JavaFX. Creating Your Own Classes in Java – Analyze: Analyze the concepts of instance data and visibility in creating Java classes. – Create: Create Java constructors and understand the concept of instantiation. – Create: Develop methods within Java classes and understand visibility rules. Selection – Understand: Explain the role of relational operators in comparing values. – Understand: Describe the function of logical operators in Boolean expressions. – Apply: Apply if statements and if-else statements to make selection decisions in Java programs. – Apply: Apply switch statements for multi-way branching in Java programs. Repetition – Apply: Implement for loops to control repetitive processes in Java programs. – Apply: Implement while loops and do-while loops to achieve looping behavior in Java programs. Arrays and ArrayLists – Apply: Apply the concepts of arrays and ArrayLists to store and manipulate collections of data in Java. Introduction to Inheritance – Understand: Describe the concept of inheritance in Java programming and how it allows the creation of new classes based on existing ones. Accommodations Academic accommodations for students with disabilities are provided by the Student Accessibility Centre. If you are a student with a disability and would like to discuss potential accommodations, you are encouraged to contact Ken Craft, Student Accessibility Centre Coordinator. Ken can be reached at kcraft@unb.ca or 648-5690. Arrangements are not made through the professor. Academic Integrity The University of New Brunswick places a high value on academic integrity and has a policy on plagiarism, cheating and other academic offences. Plagiarism includes: 1. quoting verbatim or almost verbatim from any source, including all electronic sources, without acknowledgment; 2. adopting someone else’s line of thought, argument, arrangement, or supporting evidence without acknowledgment; 3. submitting someone else’s work, in whatever form without acknowledgment; 4. knowingly representing as one’s own work any idea of another. Examples of other academic offences include: cheating on exams, tests, assignments or reports; impersonating somebody at a test or exam; obtaining an exam, test or other course materials through theft, bribery, collusion, purchase or other improper manner; submitting course work that is identical or substantially similar to work that has been submitted for another course; and more as set out in the Academic Regulations of the Undergraduate Calendar. Penalties for plagiarism and other academic offences range from a minimum of F (zero) in the assignment, exam or test to a maximum of suspension or expulsion from the University, plus a notation of the academic offence on the student’s transcript. For more information, please visit Undergraduate Calendar, Section B, Regulation VIII.Academic Offences. It is the students responsibility to know the regulations. Modification Clause We are teaching in person during a global pandemic. All aspects of this outline are subject to emergency change with justification including but not limited to: delivery method; assessment methods; weightings; and indicated dates. Contacting Dr. McNally If you have comments or questions of any variety (about our course content, course assignments, advising, or anything else), please feel free to email me at jmcnally@unb.ca. Please note there are two Dr. Jeffrey McNallys at UNB so please email the correct one. When emailing me include the course number and your name. Send email from your UNB email address (except possibly to let me know about account access issues). I will generally respond within 24 hours. I tend not to respond on weekends or after hours.