Syllabus
Programming Fundamentals I

Programming Fundamentals I

COSC-1336

Credit Summer 2020
06/01/2020 - 08/02/2020

Course Information

Section 006
Distance Learning
MW 18:00 - 19:40
ONL DIL
Carl Gregory

Office Hours

No office hours have been entered for this term

course description / rationale

Course Description:  Introduces the fundamental concepts of structured programming.  Topics include software development methodology, data types, control structures, functions, arrays, and the mechanics of running, testing, and debugging.  This course assumes computer literacy.


 Special note: Programming Fundamentals I teaches the fundamentals of the art of computer programming, using the Python language to demonstrate and implement those fundamental elements.  It is not “fundamentals of Python.”  Other programming languages can be, and have been, used in the past. The objective is not to make you a Python wizard; it is to make you a good programmer in whatever language you choose.


Pre-requisite:  This course requires the same math skills necessary for College Algebra.  Students should either have taken or be currently enrolled in College Algebra or a course that requires College Algebra.  TSI complete in reading.

Instructional Methodology:

This course will have 50% lecture and 50% laboratory. If the students are unable to finish the assigned lab work within the lab time, they will need to visit the CIT open labs.

Course Rationale:

This is an entry level programming course designed to teach students the basic concepts of computer programming.  The course will include designing, coding, debugging, testing, and documenting programs using a high level programming language.  This course is intended to prepare students for a programming-oriented academic path.  The course is included in several degree plans including:

  • Associate of Applied Science – Computer Programming
  • Associate of Applied Science – Web Programming
  • Associate of Applied Science – Game and Visualization Programming
  • Associate of Applied Science – Information Technology Application
  • Associate of Applied Science – Software Testing
  • Associate of Science – Computer Science

Student Learning Outcomes/Learning Objectives

Course Objectives / Learning Outcomes:

  1. Demonstrate problem solving skills by developing and implementing algorithms to solve problems.
  2. Derive problem specifications from problem statements.
  3. Develop algorithms using modular design principles to meet stated specifications.
  4. Create code to provide a solution to problem statements ranging from simple to complex.
  5. Test and debug programs and program modules to meet specifications and standards.
  6. Create programs that contain clear and concise program documentation.
  7. Implement programs that use data types and demonstrate an understanding of numbering systems.
  8. Incorporate both basic and advanced control structures appropriately into algorithms.
  9. Demonstrate an understanding of structured design by implementing programs with functions, including parameter passing and value returning.
  10. Implement programs using classes, including strings and files.
  11. Implement algorithms using one-dimensional and indexed data structures.
  12. Demonstrate an understanding of array searching and sorting algorithms by desk-checking and/or modifying algorithm implementations.
  13. Design and implement simple classes.

SCANS (Secretary’s Commission on Achieving Necessary Skills):

Refer to http://www.austincc.edu/cit/courses/scans.pdf for a complete definition and explanation of SCANS.  The following list summarizes the SCANS competencies addressed in this particular course:

RESOURCES

1.1 Manages Time

INTERPERSONAL

2.3 Serves Clients/Customers

INFORMATION

3.1 Acquires and Evaluates Information

3.2 Organizes and Maintains Information

3.3 Uses Computers to Process Information

SYSTEMS

4.1 Understands Systems

4.2 Monitors and Corrects Performance

4.3 Improves and Designs Systems

TECHNOLOGY

5.1 Selects Technology

5.2 Applies Technology to Task

5.3 Maintains and Troubleshoots Technology

BASIC SKILLS

6.1 Reading

6.2 Writing

6.3 Arithmetic

6.4 Mathematics

6.5 Listening

THINKING SKILLS

7.1 Creative Thinking

7.2 Decision Making

7.3 Problem Solving

7.4 Mental Visualization

7.5 Knowing How to Learn

7.6 Reasoning

PERSONAL SKILLS

8.1 Responsibility

8.2 Self-Esteem

8.3 Sociability

8.4 Self-Management

8.5 Integrity/Honesty

 

Readings

Approved Text and Teaching Materials:

Tony Gaddis, Starting out with Python, 4th Edition, Pearson,

ISBN:  978- 0-13-444432-1

Please note: this is not the ISBN for the textbook that comes bundled with MyProgrammingLab. This curriculum does not use that online tool. If your financial aid will only reimburse the cost of the ACC official "bundle" please purchase that in the ACC bookstore or via the Textbooks link in the Course Schedule.

Course Requirements

Grade Policy:

This is a very short semester in which to learn programming. We will have the same amount of class meeting time as in a 16-week semester, but it doesn't mean that you can write a computer program in half the usual time.  There will be 3 program assignments (100 points each) and 2 examinations (200 points each). Participation is scored.

Overall Letter Grade achievement

The average of scores for assignments, examinations, and participation is computed and letter grades earned on the following basis:

Average                      Description                                         Letter Grade

less than 45%              Failing                                                F

less than 60%              Unsatisfactory (minimum passing)    D

less than 75%              Satisfactory                                        C

75% or above              Good/Very Good                                B

Note that it is not possible to earn an A using these percentages.

An A may be earned by completing an acceptable Individual Project (IP). The details of the IP are in a separate document. It is not extra credit. If your average has earned a C, an accepted IP raises it to B.  If your average has earned a B, an accepted IP raises it to A.

Missed Exam Policy

There are NO makeup exams given in this course.  If a student misses an exam, the next exam will count double.  Only one exam may be missed and there will be NO makeup for the Final Examination.

Course work

You MUST read the book.  You will not learn programming from my lectures.  You will learn programming by writing programs. To do this you must read the book.  My lectures will discuss what you have read in the book; we will write programs based on that material.

I will discuss specifically how to read technical books in class; they are not novels, or poetry, or even history textbooks. You cannot cram the night before to pass an exam. More on this elsewhere.

The activities of this course involve Participation, Independent Thought, and Programming.  Please note that Programming is third on that list.  This is because without participation and independent thought no decent programming is possible.

Participation

consists of class preparation, attendance, in-class activities, and discussion.

·       Class preparation: Read assignment topics and submit a class preparation assignment (CPA) at the beginning of the class meeting. A CPA is a good-faith effort -- it will not be graded, only counted. If it does not reflect a good faith effort it will not be counted. The average of all CPAs is included in the semester average as a 100-point assignment. There will be no CPA the day of an examination.

·       Attendance: Come to the Blackboard Collaborate session at the appointed times.

·       In-class activities: Join in group competitions and in working class problems together.

·       Discussion: post at least three items on each programming topic; posts either start a new thread or respond to other posts. Posts are scored and the average of all posts counts as a 200-point examination.

 

Class Meetings:

involve Lecture, CPA, Group Competition.

·       Lecture: Some lectures will teach or elaborate on textbook topics, most notably from chapters 1 and 2.1. Other lectures may involve active simulations or demonstrations. But most lectures will assume that you have read the material. In class we will either work through the assigned CPA, or show different examples of the assigned reading topics, or work one or more related problems together.

·       CPA: The first action of a class meeting is to submit the CPA submissions to the Blackboard grade book, which means that you must be in class.  The submissions will be immediately downloaded and removed so that no later submissions are accepted.

·       Group Competition: I will post a problem and groups will work the solution in class. All solutions will be reviewed, and the class will award the prize to one group. The prize is the honor of holding the Rubber Ducky on the next class meeting.

Independent Thought

is most specifically demonstrated by completing an acceptable Individual Project. The details of these projects are contained in separate documents.

Programming Assignments and Examinations: grading and submissions.

Assignments are a sequence of exercises on a single theme; each one builds on the previous solution. Each successive assignment uses new features on the topic being studied. If you have completed and been scored on a programming assignment, you may begin the next one if you so choose.  Assignments have due dates, after which the solution is posted.

Once a solution is posted no more submissions for that assignment will be accepted.

An examination is 1 or 2 programming problems that you must solve in a short period of time with no assistance from, or communication with, another person. You may use only the language features discussed up to and including the assignment topic or exam topic when solving the problem.

This is important, so I will say it again. You may use only the language features discussed up to and including the assignment topic or exam topic when solving the problem.

If, for instance, you know how to use functions, lists, dictionaries, or classes, you may think you are showing me how competent you are by using them in your program solution for a problem requiring only basic syntax, decisions, and repetitions.  It is just the opposite: you are demonstrating to me that you do not know how to solve the problem using the more basic tools.

A later, more difficult, assignment will ask you to show your proficiency with advanced tools. But if, for example, you need a list to perform file I/O you have shown me that you need to don't know file I/O very well.

For the first assignment only, you may replace its grade with that of a later assignment.


 

Homework and Examinations: details on Assessment

The crucial differences between homework and examinations are: I encourage discussion about homework and projects, but on examinations you are not able to consult anyone else. An examination takes place in a very short time period (under supervision unless otherwise arranged) and has twice the point value of a homework assignment.

The crucial similarity between homework and examinations is: how you solve a problem is as important as whether you solve it. Each assignment or examination doesn't just ask you to show me that you can solve the problem; it is testing your ability to use specific programming features. It is also testing whether you have learned to write clear and understandable code according to style specifications.

·       Clear code is both readable and has logic that is easy to follow.

·       Understandable code is well-documented as to its intent and requirements. It may be passed on to another program team to be used in their work, and it may be left as legacy code to be maintained, and the recipients can make use of it with minimal effort to understand what you did and how you did it.

·       Style specifications are particular to any institution, employer, or task. They are set so that different people's work may be consolidated into finished products and may be exchanged with low transition costs.
My particular style specifications mimic the language that you will study in Programming Fundamentals II, which is C++. You are learning Python syntax and features, but you are learning style habits crucial to more rigorous clarity than Python requires and the robust and solid structure that more industrial-strength languages need.

Programming topics are:

We will cover these topics in this order.  They are the topics for which you must post to the Discussion Board.

1.     Understanding how computers work

2.     Problem solving through design

3.     Basic operations and syntax

4.     Logical conditions, Decisions, and Repetitions

5.     Functions and modular design

6.     File operations

7.     Exception handling

8.     Lists and Strings

9.     Object-Oriented Programming (OOP)

·       Topics in chapter 1 and related lectures, plus supplemental materials, include hardware & software, memory storage and number representation, CPU and ALU operation, and high-level languages.

·       Topics in chapter 2.1 and related lectures, plus supplemental materials, include the program development cycle, Polya's problem-solving steps, algorithm design, pseudocode, and flowcharts.

·       Topics in chapter 2.2-2.9 and related lectures, plus supplemental materials, include variables and types of information, displaying and formatting output with the print() function, reading information typed on the keyboard with the input() function, converting between types and performing calculations, and using named constants.

·       Topics in chapters 3 and 4 and related lectures, plus supplemental materials, include defining testable conditions (both simple relations and compound conditions using logical operators), Boolean variables, simple decisions with if-else statements, nested and more complex decisions with if-elif-else statements, condition-controlled (while) loops, count-controlled (for) loops, sentinels, and validation loops

·       Topics in chapter 5 and related lectures, plus supplemental materials, include designing programs to use functions for divide-and-conquer problem solutions, variable scope, global constants and local variables, arguments, and parameters, returned values, library functions, and function modules.

·       Topics in chapter 6.1-3 and related lectures, plus supplemental materials, include records, file types and access methods, file names versus file objects, writing data to a file, reading data from a file, adding and stripping newlines, and determining the end of a file.

·       Topics in chapter 6.4 and related lectures, plus supplemental materials, include error codes and what causes them, trying a block of statements, catching exceptions in general, catching specific exceptions, handling multiple exceptions, and proceeding when exceptions are and/or are not raised.

·       Topics in chapters 7 and 8 and related lectures, plus supplemental materials, include repetition and concatenation, indexing and iteration, slicing, splitting, searching, built-in methods and functions, and tuples, plus reading data from a file into a list and processing lists element by element.

·       Topics in chapter 10 and related lectures, plus supplemental materials, include procedural vs. object-oriented programming, classes and instances, designing classes, defining classes, public and private attributes and methods, and storing classes in modules.

course / class policies

Course/Class Policies:

Attendance / Class Participation

Regular and timely class and laboratory attendance is expected of all students.  If attendance or compliance with other course policies is unsatisfactory, the instructor may withdraw students from the class.

In the event the college or campus closes due to unforeseen circumstances (for example, severe weather or other emergency), the student is responsible for communicating with their professor during the closure and completing any assignment or other activities designated by their professor as a result of class sessions being missed.

Freedom of Expression Policy

It is expected that faculty and students will respect the views of others when expressed in classroom and/or Blackboard discussions.

Withdrawal Policy

It is the responsibility of each student to ensure that his or her name is removed from the roll should he or she decides to withdraw from the class. The instructor does, however, reserve the right to drop a student should he or she feel it is necessary. If a student decides to withdraw, he or she should also verify that the withdrawal is submitted before the Final Withdrawal Date. The Final Withdrawal Date for this semester is 4/27/2020.  The student is also strongly encouraged to retain their copy of the withdrawal form for their records.

I will not withdraw any student from this class unless expressly asked to do so by the student.

Students are responsible for understanding the impact that withdrawal from a course may have on their financial aid, veterans’ benefits, and international student status.  Per state law, students enrolling for the first time in Fall 2007 or later at any public Texas college or university may not withdraw (receive a W) from more than six courses during their undergraduate college education.  Some exemptions for good cause could allow a student to withdraw from a course without having it count towards this limit.  Students are strongly encouraged to meet with an advisor when making decisions about course selection, course loads, and course withdrawals.

Incompletes

A student may receive a temporary grade of “I” (Incomplete) at the end of the semester only if ALL of the following conditions are satisfied:

  1. The student is unable to complete the course during the semester due to circumstances beyond their control.
  2. The student must have earned at least half of the grade points needed for a “C” by the end of the semester.
  3. The request for the grade must be made in person at the instructor’s office and necessary documents completed.
  4. To remove an “I”, the student must complete the course by two weeks before the end of the following semester.  Failure to do so will result in the grade automatically reverting to an “F”.

Seriously, those are the rules, but don’t do it.  In all the years I have been at ACC, only one student has finished an Incomplete before the deadline at which time it turns into an F.  Once you get out of the class, it is very hard to regain the focus on the work.

Statement on Scholastic Dishonesty

Austin Community College values academic integrity in the educational process. Acts of academic dishonesty/misconduct undermine the learning process, present a disadvantage to students who earn credit honestly, and subvert the academic mission of the institution. The potential consequences of fraudulent credentials raise additional concerns for individuals and communities beyond campus who rely on institutions of higher learning to certify students' academic achievements and expect to benefit from the claimed knowledge and skills of their graduates. Students must follow all instructions given by faculty or designated college representatives when taking examinations, placement assessments, tests, quizzes, and evaluations. Actions constituting scholastic dishonesty include, but are not limited to, plagiarism, cheating, fabrication, collusion, falsifying documents, or the inappropriate use of the college’s information technology resources. Further information is available at https://www.austincc.edu/about-acc/academic-integrity-and-disciplinary-process.

In this course, any two or more submissions that are demonstrably the same with only minor and superficial differences will receive a score of zero (0). It is actually quite easy to see identical code with only spacing alterations and variable name substitutions. Multiple submissions of such code, each with a different name, are considered to be representing another person's work as your own. Even if one is completely the original work and the others strictly copies with perhaps minor alterations, all copies are scored 0.

For multiple instances of scholastic dishonesty the penalty is a grade of ‘F’ for the course.

Student Rights and Responsibilities

Academic freedom is a foundation and hallmark of higher education. In the context of college-level courses, it specifically refers to the rights of free expression and respect for others with differing opinions. Students at the college have the rights accorded by the U.S. Constitution to freedom of speech, peaceful assembly, petition, and association. This concept is accompanied by an equally demanding concept of responsibility on the part of the student. Just as you are expected to exercise these rights with respect for state and federal law in the larger world, you are expected to exercise these rights as a student with respect for the college’s standards of conduct. These rights carry with them the responsibility to accord the same rights to others in the college community and not to interfere with or disrupt the educational process. Students and faculty alike should enable a climate of mutual respect and civility while fostering the freedom to debate and discuss the merits of competing ideas.

Enrollment in the college indicates acceptance of the rules set forth in the student standards of conduct policy, which is administered through the office of the campus dean of student services. Due process, through an investigation and appeal process, is assured to any student involved in disciplinary action.

Student Complaints

A defined process applies to complaints about an instructor or other college employee. You are encouraged to discuss concerns and complaints with college personnel and should expect a timely and appropriate response. When possible, students should first address their concerns through informal conferences with those immediately involved; formal due process is available when informal resolution cannot be achieved.

Student complaints may include (but are not limited to) issues regarding classroom instruction, college services and offices on the basis of actual or perceived race, color, national origin, religion, age, gender, gender identity, sexual orientation, political affiliation, or disability.

Further information about the complaints process, including the form used to submit complaints, is available at: http://www.austincc.edu/students/students-rights-andresponsibilities/student-complaint-procedures

Statement on Privacy

The Family Educational Rights and Privacy Act (FERPA)  protects confidentiality of students’ educational records. Grades cannot be provided by faculty over the phone, by e-mail, or to a fellow student.  Individual student grades are posted in Blackboard.

Students Accessibility Services 

Each ACC campus offers support services for students with documented disabilities. Students with disabilities who need classroom, academic or other accommodations must request them through the office of Student Accessibility Services (SAS).  Students are encouraged to request accommodations when they register for courses or at least three weeks before the start of the semester, otherwise the provision of accommodations may be delayed. Students who have received approval for accommodations from SAS for this course must provide the instructor with the ‘Notice of Approved Accommodations’ from SAS before accommodations will be provided. Arrangements for academic accommodations can only be made after the instructor receives the ‘Notice of Approved Accommodations’ from the student. Students with approved accommodations are encouraged to submit the ‘Notice of Approved Accommodations’ to the instructor at the beginning of the semester because a reasonable amount of time may be needed to prepare and arrange for the accommodations.

Tutoring

Free tutoring is provided for this course both online and face-to-face.  For online schedules and details please refer to https://sites.austincc.edu/cs/student-resources/csit-tutoring-schedule/ .

Student and Instructional Services

ACC strives to provide exemplary support to its students and offers a broad variety of opportunities and services. Information on these services and support systems is available here. Links to many student services and other information can be found at Current Students. ACC Learning Labs provide free tutoring services to all ACC students currently enrolled in the course to be tutored. The tutor schedule for each Learning Lab may be found here. For help setting up your ACCeID, ACC Gmail, or ACC Blackboard, see a Learning Lab Technician at any ACC Learning Lab.

Use of ACC E-mail

All College e-mail communication to students will be sent solely to the student’s ACCmail account, with the expectation that such communications will be read in a timely fashion. ACC will send important information and will notify you of any college related emergencies using this account. Students should only expect to receive email communication from their instructor using this account. Likewise, students should use their ACCmail account when communicating with instructors and staff. Instructions for activating an ACCmail account.

Classroom Behavior

Students are expected to demonstrate proper classroom behavior.  The professor has the prerogative to request any student that demonstrates improper and disruptive classroom behavior to leave the classroom.  Improper and disruptive behavior includes, but is not limited to: profanity, verbal outbursts, unwarranted physical activity, and lack of respect for fellow students and/or the professor.

Safety Statement 

Health and safety are of paramount importance in classrooms, laboratories, and field activities. Students are expected to learn and comply with ACC environmental, health and safety procedures and agree to follow ACC safety policies. Emergency Procedures posters and Campus Safety Plans are posted in each classroom and should be reviewed at the beginning of each semester.

All incidents (injuries/illness/fire/property damage/near miss) should be immediately reported to the course instructor. Additional information about safety procedures and how to sign up to be notified in case of an emergency can be found at http://www.austincc.edu/emergency

Everyone is expected to conduct themselves professionally with respect and courtesy to all. Anyone who thoughtlessly or intentionally jeopardizes the health or safety of another individual may be immediately dismissed from the day’s activity and will be referred to the Dean of Student Services for disciplinary action.

Emergency Situation

In the event of disruption of normal classroom activities due to an emergency situation or an illness outbreak, the format for this course may be modified to enable completion of the course.  In that event, students will be provided an addendum to the class syllabus that will supersede the original version.

Student Files – Privacy

Their instructor for educational and academic reasons may view the information that a student stores in his/her student volume in the Computer Studies Labs.

Discrimination Prohibited

The College seeks to maintain an educational environment free from any form of discrimination or harassment including but not limited to discrimination or harassment on the basis of race, color, national origin, religion, age, sex, gender, sexual orientation, gender identity, or disability.  Faculty at the College are required to report concern regarding sexual misconduct (including all forms o sexual harassment and sex and gender-based discrimination) to the Manager of Title IX/Title VI/ADA Compliance.  Licensed clinical counselors are available across the District and serve as confidential resources for students.  Additional information about Title VI, Title IX, and ADA compliance can be found in the ACC Compliance Resource Guide available at: https://drive.google.com/file/d/1o55xINAWNvTYgI-fs-JbDyuaMFDNvAjz/view

Concealed Handgun policy

Campus Carry

The Austin Community College District concealed handgun policy ensures compliance with Section 411.2031 of the Texas Government Code (also known as the Campus Carry Law), while maintaining ACC’s commitment to provide a safe environment for its students, faculty, staff, and visitors. Beginning August 1, 2017, individuals who are licensed to carry (LTC) may do so on campus premises except in locations and at activities prohibited by state or federal law, or the college’s concealed handgun policy. In addition, concealed weapons are not allowed on ACC-sponsored field trips where the school owns or has chartered or leased vehicles for transportation. It is the responsibility of license holders to conceal their handguns at all times. Persons who see a handgun on campus are asked to contact the ACC Police Department by dialing 222 from a campus phone or 512-223-7999. Please refer to the concealed handgun policy online at http://www.austincc.edu/campuscarry.

Course Subjects

COURSE SCHEDULE

Please note that schedule changes may occur during the semester.  Any changes will be reflected in the schedule in Blackboard and will be accompanied by an email to all students.  If the college or campus closes due to unforeseen circumstances (for example, severe weather or other emergency), the student is responsible for communicating with their professor during the closure and completing any assignments or other activities designated by their professor as a result of class sessions being missed.