Principles of Computer Programming I

CSCI 1301

January 11, 2022

Basic Facts

Direct Feedback

You can post comments of any nature (bug report, recommendation, criticism, …) at etherpad.wikimedia.org/p/CSCI1301. Please, keep in mind:

I will monitor this channel and either post answers there or through email, depending on the nature of the comment.

Remember that you can also post comments directly using github on the class’ website.

Course Description

A rigorous study of the principles of computer programming with emphasis on problem solving methods which result in correct, well-structured programs. Other topics: an introduction to data representation, data types and control structures, functions, and structured data types.

Prerequisites

To enroll in this course, you must have a minimum grade of C in one of the following classes:

Learning Outcomes

Students who successfully complete this course should be able to:

  1. Perform standard program input and program output using the keyboard and the monitor.
  2. Declare and use user-defined variables and constants using the appropriate data types.
  3. Understand and implement classes and objects.
  4. Declare, define, and call user-defined functions.
  5. Write and evaluate expressions using arithmetic, relational and logical operators.
  6. Control the flow of program execution using the appropriate sequential, selection, and repetition statements.
  7. Define, create and manipulate arrays.

Textbook

This course does not use a traditional textbook; instead, it uses a collection of open-source learning resources created by a group of Augusta University faculty. These resources are available at https://csci-1301.github.io, and they can also be downloaded from that website in PDF and Word Document format.

The CSCI 1301 website has four important sections that you will need to access while taking this course:

  1. Book: Contains lecture notes for the entire semester, organized by topic and sorted in the order they will be presented in class.
  2. Slides: Contains slides for the entire semester, organized by topic and sorted in the order they will be presented in class.
  3. Labs: Contains instruction handouts and supplementary files (e.g. sample programs) for each of the lab activities, organized by topic.
  4. Documents: Contains supplemental reference information and guides, such as a summary of datatypes in C#.

Please, note that we will not be using the slides in class, but that you are welcome to read them as a supplementary material to help you in studying. Also, we will be using Brightspace / D2L only for grades and project uploads.


Practical Information

Computer Requirements

Since this is a computer programming class with online resources, you will need to have access to a reliable Internet connection and a computer on which you can install software. It can be either a PC running Windows, a Mac running MacOS, or a PC running Linux (most major distributions); notably, however, Chromebooks are not supported. To accommodate the possibility of needing to move to hybrid or online instruction at some point during the semester, it is strongly recommended that your computer have a webcam and microphone for videoconferencing.

If you do not own a personal computer, the University has identified resources that can assist students with securing technology such as laptops to assist with completing coursework at a distance while quarantining or isolating, available at https://www.augusta.edu/its/student-guide.php.

If information technology resources are needed, you should contact the Office of the Dean of Students for support and further information about securing technology for the remainder of the semester. For questions about software and troubleshooting current IT applications, students should first attempt to resolve the issue by calling the AU IT Helpdesk 24/7 at 706-721-4000 or by contacting the School’s Instructional Systems Analyst, Sienna M. Sewell.

Augusta University also has several computer Labs that you can use to work on this class’s assignments while on campus. These computers should all have Visual Studio pre-installed, so you can use them for this class without needing to install any new software.

Class Attendance

This class will be conducted face-to-face, unless there are unforeseen changes later in the semester. You are expected to attend all classes and complete all lab activities. I recognize that sometimes you will need to miss class due to unexpected circumstances (illness, injury, etc.). Understand, however, that you are still responsible for all course material, whether or not you attend class, and missing class makes it easy to fall behind.

Note: The course delivery format may change at some point during the semester depending on changes in Augusta University, CDC or Georgia Department of Health guidelines. In the event that the class must be converted to a hybrid or completely online format to satisfy health and safety requirements, the procedures outlined in this syllabus will be adjusted as necessary.

Announcements

Important class information will be shared using email. Please ensure that you check your Augusta University email regularly.

Getting Help

I should be your first point of contact for any questions regarding the content of this class, but many other resources are available to help you be a successful student.

AU’s Ressources

ACM Club

The Augusta University chapter of the A.C.M is one of the university’s best resources for Computer Science, Information Technology and Cyber Security students. It provides a platform to network with other students in similar majors, presenting countless opportunities to not only expand the people you know, but also a fantastic place to learn and ask questions. To learn more, you can sign up for the newsletter, or attend one of the subgroup meetings (meeting times and locations are listed on the website).

Programming Friday Mornings

Every Friday, 10 am-12 pm, in University Hall, room 124​, Profs. Steve Weldon and Tony Lawrence, along with undergraduate and graduate course assistants, offer general assistance with programming questions and assignments​. This is open to all AIST 2120, CSCI 1200, and CSCI 1301 sections​, and a great place to meet fellow students and get help with programming concepts in general!


Grades

Students will be evaluated using four different types of evaluation:

  1. Quizzes: Homework assignments will be given during the course of the semester; they are not expected to be handed back, and will not be graded, but quizzes with questions taken or inspired from those assignments will be given. These quizzes are held at the beginning of class and timed (approx.~10 min.).

  2. Projects: Programming projects are to be done at home, without help from any other person, including but not limited to other students. However, you can discuss the projects with your instructor during office hours, and get feedback on what you have written before you submit it.

  3. Exams: There will be two in-class exams, held during the regular class periods. They will require you to write programs on paper, without the help of any reference material, as well as answer questions about programming concepts.

  4. Final: The final exam will take place during the exam period, and will be similar in content to the midterm exams.

Please, note that lab activities–hands-on exercises with step-by-step instructions that you should complete in class during the designated lab period–will not be graded, but that without them, it is extremely difficult to grasp even the simplest concepts we will be studying.

Refer to the planned schedule for precise dates, and to Brightspace / D2L to get your current grades.

Your grade will be computed as follows:

Quizzes (×4) 10%
Project (×2) 10%
In-class Exams (×2) 40%
Final Exam 40%

using the following course grade scale:

- - -
Below 65 65–70 70–79 80–89 90–100
F D C B A

Refer to the Course Policies for information about late or missed evaluations.

Planned Course Schedule

Each week starts on Monday, except for the first week which begins on a Thursday due to the academic calendar.

Week Date Note / Assignment Topic Lab Topic
1 01/06 - Syllabus, Introduction Introduction
2 01/10 - Reserved Words and Variables Hello World! and Creating your first program
3 01/17 01/17: MLK day Datatypes and Operations Variables and Casting
4 01/24 01/27: Quiz Casting and Reading from the User User input and Char (only the first two sections)
5 01/31 02/03: Project Intro to Object-Oriented Language The Rectangle class
6 02/07 - Advanced Methods The PreciseRectangle class and Class diagram
7 02/14 02/17: Exam Review Session Constructors and toString
8 02/21 - Control Structures – Boolean -
9 02/28 03/01 Midterm, 03/03: Quiz if Statements -
10 03/07 03/10–11: Spring pause switch Statement -
11 03/14 03/17: Quiz while Statements -
12 03/21 - for Statements -
13 03/28 03/31: Exam Review Session -
14 04/04 04/04–08: Spring break Arrays -
15 04/11 04/14: Quiz Continued -
16 04/18 04/21: Project Static keyword -
17 04/25 - Wrapping up -
18 05/02 05/02: end of class, 05/09, 5-7 pm: Final - -

Note that this course schedule is approximate and may change as the semester progresses. If the syllabus changes during the semester, the latest version will always be posted on this website, and will take precedence over any previous version. Any significant changes will also be announced via email.

Homework Assignments


Course Policies

Late Policy

Projects are due at 11:59pm on the assigned due date, and no late assignments will be accepted. There will be plenty of time to complete the projects, so plan ahead for the possibility of illness, car malfunctions, power outages, or other setbacks.

Exams must be taken in person on the date of the exam. In extenuating circumstances, such as unavoidable work commitments or the need to quarantine due to COVID-19 exposure, I may give permission to make up the exam on an alternate date. Any request to miss a scheduled exam must be made prior to the exam and accompanied by documentation of the extenuating circumstances. Missing an exam without making prior arrangements will result in a grade of zero.

Withdrawals

It is the student’s responsibility to initiate a withdrawal before midterm in order to receive a grade of W rather than WF. Although instructors have the right to withdraw a student who has stopped attending class or submitting assignments, you should not assume that you will automatically be withdrawn if you stop attending.

A student not withdrawn from a course who stops attending class (or who never attends class) is subject to receiving a grade of WF or F. Any student not withdrawn from the course who misses the final exam without a documented excuse (as described in the Late Policy section) will receive an F. In case of an documented emergency at the time of the final, the student may be allowed to receive a grade of I.

Classroom Behavior

Academic Accommodations

Augusta University commits to making reasonable academic accommodations for students with documented disabilities. If you need accommodations, you should contact Testing and Disability Services as soon as possible to initiate the process of requesting them. You should also meet with me at your earliest convenience to discuss how I can help you better access the course.

Academic Honesty

tl;dr
All work you submit for this class must be entirely your own and must not be shared with anyone else. If you are unsure about whether or not certain kinds of collaboration are permissible, please ask me. Cheating is taken very seriously, easily detected, and harsly punished – just do not do it, it will also deprive you from your opportunities to learn.
Longer version

I encourage you to study together and to discuss information and concepts with each other. This permissible cooperation must never involve one student having possession of a copy of all or part of work done by someone else, in the form of an email, email attached file, flash drive, hard copy, passed via spoken word or other form.

From the AU Academic Honesty policy:

Augusta University (“AU”) recognizes that academic honesty is essential to its academic function. The [AU academic honesty policy] following regulations protect the equity and validity of the University’s grades and degrees, and help students develop ethical standards and attitudes appropriate to academic and professional life. Violations of academic honesty include, but are not limited to, cheating of all kinds, plagiarism, research misconduct, collusion, and false statements made to avoid negative academic consequences.

Academic standards and procedures can also be found in the AU Student Manual, which can be found on the AU Student life website at https://www.augusta.edu/student-affairs/

In an academic community, honesty and integrity must prevail if the work done and the honors awarded are to receive their respect. The erosion of honesty is the academic community’s ultimate loss. The responsibility for the practice and preservation of honesty must be equally assumed by all of its members. Any type of dishonesty in securing those credentials therefore invites serious sanctions, up to and including, a “WF” or “F” in the course, and expulsion from the institution. Please reference the academic regulations on academic honnesty for further details and specific definitions of cheating and plagiarism.

Unethical behavior of students in any form is not acceptable and will not be tolerated in the School for Computer and Cyber Sciences. Academic dishonesty – to include cheating on exams, plagiarism of the work of others, unapproved collaboration on graded work, and the like - will be dealt with immediately and with clear consequences. Depending on the nature and severity of the problem, a student who is guilty of any such violation may be:

  1. withdrawn from the course with a grade of WF (counted as an F in the GPA);
  2. given a grade of zero on the assignment;
  3. given a grade of F in the course; or
  4. otherwise penalized, at the discretion of the faculty member.

Two occurrences of a WF grade for academic dishonesty can result in a student’s being expelled from the University, per current University policy as described in the University Catalog.

Sharing of instructor-generated materials: you are actively encouraged to re-post, improve, comment on and link to the ressources used in this class, provided you respect its copyright.

Campus Carry Legislation

Please be aware of the USG guidance on House Bill 280. Note that you may not carry a handgun if high school students are enrolled in the class, and that it is your responsibility to visit the registrar to determine whenever this is the case or not.