Uploaded by tranngthanhkhoi.school

COURSE OUTLINE

advertisement
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.
Download