Principles of Computer Programming I – CSCI 1301

Spring 2019

Clément Aubert

August 7, 2019

Quick Facts

Presentation

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.

Learning Outcomes

Students who successfully complete this course should:

  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. Declare, define, and call user-defined functions.
  4. Write and evaluate expressions using arithmetic, relational and logical operators.
  5. Control the flow of program execution using the appropriate sequential, selection, and repetition statements.
  6. Define, create and manipulate arrays.
  7. Process lists of values – defining, creating, traversing.
  8. Understand and implement classes and objects.

Format and Procedures

This course has a lecture, and a laboratory, portion: both are required to succeed. This class is an on-campus class. Lectures are devoted to general explanations of the concepts and ideas underlying the topic at stake. Laboratory will be devoted to hands-on practise and experiments.

Homework assignments will assist the students in making sure they understand classes expectations and the content of the lecture, as well as to practice their coding and problem-solving skills. The progression of the students will be regularly tested and assessed through quizzes, projects and tests. Active and relevant participation during the lectures and laboratory sessions is appreciated.

Teaching Philosophy

It is our mutual interest for you to succeed: I love to share knowledge and to expand it by helping students, and students want to gain a useful and agreeable experience that will prove valuable in their future endeavors. To this end, here is:

What I’m expecting from you

  • Check periodically your email account and read the email I send.
  • Read this entire syllabus carefully.
  • Participate actively in all class discussions.
  • Do the homeworks wisely: read your notes before starting the homework assignment, make sure you understand it completely before considering it done.
  • Come prepared and on time to classes, exams and quizzes.

What you should expect from me:

  • Clear and accessible lectures.
  • Fair and impartial grading.
  • Availability, during office hours, by appointment, and by email.
  • Open hear to your suggestions to improve this class.
  • Dedication to your success!

Course Requirements

The following rules, inspired by my experience and dictated by the size of our group, will be enforced:

General Rules

  • Attendance is not mandatory. However, if you come to class, come on time, and stay until the end of the lecture: late arrival and early departure disturb the learning experience for everyone.
  • No laptop or similar electronic device is allowed during the lectures. This policy will help you to improve your grades, increase memorization and to be more respectful of your fellow students.
  • You are responsible for all course material, whether or not you attend lectures or do the assigned reading or coursework.
  • It is the student’s responsibility to initiate a withdrawal before midterm, but I reserve the right to withdraw a student that missed 10% of class time and half of the quizzes and tests.
  • 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.
  • All coursework is individual coursework.
  • Any student missing the final exam without an documented excuse (brought to me or to the dean of Student Life) or who has not taken action to withdraw will receive a grade of F. In case of an documented emergency at the time of the final, the student may be allowed to receive a grade of I.
  • No make up quizzes or exam will be allowed. In case of a documented excuse (cf. previous item), the weight of the missed exam or quiz can be placed onto the final’s weight.
  • Come to your section’s laboratory. If you want to change your section, find a fellow student willing to switch with you and go to the registrar’s office.
  • Late arrival and early departure are tolerated, but do not expect me to go over instructions a second time for you, and do not disturb your fellow students with your questions.
  • Quiet chat and mutual help are acceptable, sharing solutions is forbidden. For instance,
    • Is allowed:
      • Discussing general strategies and approaches
      • Helping a fellow student debugging a program by asking questions (“Don’t you think there might be a problem line X?”)
    • Is forbidden:
      • Touching someone’s else keyboard or taking notes while talking
      • Sharing files or projects

Practical Information

Lab Space

For this class, you will need to access a computer with Visual Studio installed on it. You can either:

Getting Help

I should be your first point of contact for any question regarding the content of this class, but many other ressources are available:

Tutoring is available for Computer Science in the Academic Success Center on the first floor of University Hall,

You can also schedule appointments at https://augusta.campus.eab.com/. Bryana Vinson and Assya Sellak will be our “embedded tutors” this semester.

Our student assistant Tim Cuny is also available:

Shared lecture notes are available, courtesy of Tim Cuny.

ACM Club

There is an A.C.M club at Augusta University, that meets on Fridays in UH 129 and 131, from 12 to 3pm:

The AU ACM club meets Fridays in UH 129 and 131, from 12 to 3pm.

It is the ideal place to get to meet fellow students, to work on exciting projects, and to learn more about various aspects of Computer Science and Information Technology.

Grades

Students will be evaluated using four different types of evaluation:

  1. Homework assignments will be given during the course of the semester: they are not expected to be handed back, and won’t be graded, but quizzes (closed book and timed (± 10 min.)) with questions taken or inspired from those assignments and the lab will be given.

  2. Projects will be carried at home or during laboratory.

  3. There will be in-class exams, held during the regular class periods.

  4. The final exam will take place during the exam period.

Refer to the planned schedule for precise dates.

Your grade will be computed as follows:

Quizzes (×5) 10%
Projects (×3) 10%
In-class Tests (×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

Planned Course Schedule

Week Date Note Topic
1 01/07 - Syllabus, Introduction
2 01/14 01/17: Quiz Reserved Words and Variables
3 01/21 01/21: MLK day Datatypes and Operations
4 01/28 01/31: Quiz Casting and Reading from the User
5 02/04 02/08: Project Intro to Object-Oriented Language
6 02/11 02/14: Exam Review Session
7 02/18 - Advanced Methods
8 02/25 02/28: Quiz (and Midterm) Control Structures – Boolean
9 03/04 03/07–08: Spring pause if Statements
10 03/11 03/14: Quiz switch Statement
11 03/18 03/22: Project while Statements
12 03/25 03/28: Exam Review Session
13 04/01 - for Statements
14 04/08 04/08–12: Spring break Arrays
15 04/15 04/18: Quiz Continued
16 04/22 04/26: Project Wrapping up
17 04/29 05/01: end of class -
18 05/06 05/08 (8–10am): Final -

This schedule is subject to change and enhancements, but provide an indication of the pace, assignments, and major deadlines that you will need to plan for the semester.

Additional Material and Resources

Textbook

Textbook is optional, and can be accessed at https://www.safaribooksonline.com/library/view/visual-c-how/9780134628820/ for Augusta University students.

Visual C# How to Program (6th Edition) by Paul J. Deitel and Harvey Deitel, Pearson, 2016, ISBN-10: 0134601548

If you were to pick the 5th Edition, be aware of that the 6th edition takes into account the recent 6th specification of C#. As a consequence, it uses string interpolation instead of comma-separated list, it simplifies the use of the ToString method, and that it uses a different method to convert String to Integers.

Online Resources

Homework Assignments

Documents Shared in Class

Date Title
01/21 Datatypes Webpage, printable document, editable document
01/28 Project 1 Webpage, printable document, editable document
03/11 Project #2 Guide Printable document

Miscellaneous