Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

ITK 168

Structured Problem-Solving Using the Computer

Fall, 2023 

Instructor: Dr. Tonya Pierce

Office:  Old Union 112

Office phone:  438-7953

Office Hours:  M 2-4:00 W 2-3:00

Email: [email protected]

Course Web Site: http://www.itk.ilstu.edu/it168

Catalog Description

Introduction to the development of algorithms for computer systems processing.  Emphasis on structured problem solving and the design of problem solutions.

Course Description

This course is designed to introduce you to the basic problem solving and program design skills that are used to create computer programs.  Topics include problem solving strategies, program design strategies and tools, program testing, object-oriented programming, common algorithms used in computer programs, user interfaces, and the syntax of a high level programming language.

Course Objectives

Upon successful completion of this course you will

1. Be able to describe classical problem solving strategies and use them in solving problems that can be implemented on a computer.

2. Be able to use accepted program design strategies and tools to design and implement a solution for a problem on a computer.

3. Understand the various contexts in which computer programs are written.

4. Be able to develop appropriate testing procedures for a simple program.

5. Be able to write computer programs in a high level programming language.

Textbook

Julie Anderson and Herve J. Franceschi. Java Illuminated: An Active Learning Approach. 5th ed. 2018.  ISBN-10: 1284140997 (ISBN-13: 978-1284140996). 

 

 

 

 

Technology Usage

We will be using Eclipse for all coding assignments in this class. When you submit, please only submit the java files, not the entire project or the class files. Include all files necessary to run the program, including files that were provided, even if you did not change them. You can access Eclipse through the Java Pool, and this is recommended as it gives you the flexibility to access your programs from any computer.

 

Commitment and Time Management

Programming courses are time intensive.  You must be prepared to spend the usual 2 hours of study for each hour in lecture plus additional time for designing, coding, debugging and executing your programs (10 hours per week when programming is normal).

Managing your time will be very important in order for you to succeed in this class.  You have probably not previously taken a course that requires such a time commitment.  You are in control of how you spend your time.  Spending it wisely will be essential to your success.

Course Requirements

Exams:  This course has two written exams, a lab final, and a written final. The written exams are given to all IT 168 sections jointly in the evening from 8-10 pm. The dates for the first two exams can be found at: https://itk.ilstu.edu/it168/html/Exam%20Schedule.html.

The final exam will be announced once it is firmly scheduled. The location for the exams will be announced in class, via Canvas, and on the IT 168 course website. They will not be held in our regular classroom. The lab final will be given in your lab section during the final week of classes.

If you are unable to attend an exam due to illness, bereavement, or another valid reason (such as a class conflict), you must notify me prior to the exam to make arrangements for making up the exam.  You should make arrangements now to attend the exams. That means that if you work nights, you need to make arrangement to have those evenings off now.

Labs:  You are enrolled in a laboratory section that meets weekly. The purpose of the labs is to give you an opportunity to practice what you are learning in lecture with the support of your lab instructor and the lab assistant. You are required to attend the lab meetings. In some weeks, you will be required to work with other students on the lab activities. In other weeks, working together may be encouraged but not required.

Twenty percent of your course grade will be from the lab activities.  After the first lab, there will be assignments to complete before the lab as well as during the lab.  Pre-lab activities are due at the beginning of the lab period in which the lab is scheduled.  Other lab activities are due at the end of the lab session. However, if you stay on task during lab and are unable to finish, an extension will be granted up to the next lab session. Plan to stay for the entire two hour lab period every week.

In addition to the regular lab activities, there will be several lab quizzes. These are intended to help you prepare for the lab final and to ensure that you have important needed skills. Lab quizzes will be given at the beginning of lab period, and you will be able to work on your regular lab assignment as soon as your lab instructor has confirmed that you have submitted the lab quiz.  

If you do complete your lab early, make sure you submit it and check with your lab instructor before leaving the lab room. Part of your lab grade is based on attendance, and points will be deducted for leaving early without completing and submitting the lab first. Note, you will not have access to the lab until just prior to lab meeting time, so you will not be allowed to work ahead.

Your lowest lab grade will automatically be dropped at the end of the course.  This provides you with some flexibility.  Missed labs cannot be made up. Any late submission of labs that have not been approved by the lab instructor will receive a penalty of 2% per day.

As noted above, the lab final exam worth 10% of your grade will be given in the lab session during the final week of classes.

Programming Assignments:  You will have six programming assignments in this course.  Solutions must follow the design, coding and documentation standards presented in class.  For each programming assignment, you will submit the source code along with any required documentation in Canvas.  Make sure that you get help from me and the paid debuggers as needed to get your programs working. Programs containing compilation errors will receive failing grades.  Those producing run-time errors will incur a substantial penalty.  

Be sure to make a serious effort to complete all programs on time. Programs may be submitted up to one week late for a 2% penalty per day. Except in cases of bereavement or serious illness, they will not be accepted after that. In cases of illness or bereavement, contact me as early as possible and we will work out an appropriate due date for your work to be made up.

Note that the programming assignments are individual work (unlike labs and in-class group work).  You may not work with another student for any reason or under any circumstances on these assignments. You are strongly encouraged to ask me about any questions you have about the assignment.

Quizzes and participation:  Ten percent of your grade is based on quizzes and participation.  You are expected to attend class and be prepared to actively participate.  Class time will be used to review lecture material as needed, clarify readings from the text, answer your questions, and work practice problems. You will be given an online quiz at the conclusion of each chapter lesson, as well as some in class quizzes which are intended more to assess your understanding of current concepts and provide me immediate feedback about your understanding.  These in-class quizzes should be used as a study tool to prepare for the exams. Absolutely no makeups will be provided for missed quizzes.

Evaluation

 

Your grade will be determined based on the following distribution:

2-Midterm exams   20%

Lab Final Exam 10%

Written Final Exam   15%

Lab activities   20%
Programs   25%

Quizzes and class participation 10%

Total 100%

Your grade is computed as a weighted average based on the percentages above.  It is not your total points divided by the total number of points possible in the course.  You may end up with far more points for quizzes than for programs, but your program average will count two and a half times as much as your quiz and participation average.

The grading scale for this course is:

A 90-100 (see note below)

B 80- 89 (see note below)

C 70- 79 (see note below)

D 60- 69

F Below 60

Important:  In order to receive the grades listed above, you must also have at least a 65% exam average to receive a C, a 75% exam average for a B, and an 85% exam average for an A. This exam average is computed by taking all 4 exam scores and dividing by 4. The final exam counts the same as the other 3 exams in this average.

Canvas

All of the content for this course will be contained in Canvas.  This is where you will go to find information about all assignments including labs. Any information about the course can be found in this lecture section.

Student Access and Accommodation Services:
Any student needing to arrange a reasonable accommodation for a documented disability and/or medical/mental health condition should contact Student Access and Accommodation Services at 350 Fell Hall, (309) 438-5853, or visit the website at StudentAccess.IllinoisState.edu.

Plagiarism and other forms of academic dishonesty

Academic integrity is very important to me and to this university. You are expected to be aware of the student code, including the section on academic dishonesty (cheating and plagiarism). Knowingly turning in work that you did not do is plagiarism, the most common form of academic dishonesty.  It is unacceptable in this course and a foolish way to try to get through the course.  This course is teaching fundamental and concepts that are required in later courses. The programs, as well as the labs and quizzes, also provide important practice for the exams. Therefore, it is crucial that you complete your own work for programs. You are encouraged to work together in class and lab and in study session to learn this material, but you must not work together on the individual programming assignments.  Discuss those assignments only with me and the paid debuggers.  Do not show someone your code, even if the person claims not to intend to cheat (as noted in the student code, the person providing the work is also cheating).  Be careful to avoid sitting in the lab, or anywhere else, and talking about the program.  Note that if you found the code on the web (or anywhere else), you did not do the work.  

Any case of academic dishonesty will result in a minimum penalty of a zero on the assignment.  This applies to both the person who did the work and made it available and the person who copied.  The maximum penalty will be an F in the course and pursuit of further disciplinary action, typically applied for multiple incidents of academic dishonesty or cheating on an exam.  Note that the standard penalty for any kind of cheating on a program is a zero on the program in question and a loss of 10% on the final course average.  All cases of academic dishonesty will be handled according to university policy as outlined at https://deanofstudents.illinoisstate.edu/conflict/conduct/code/academic.php and may result in disciplinary penalties as well as academic penalties.

Bottom line: Do your own work!

Course Resources

There are a number of sources of information for this course:  

· There is a course website where you will find contact information, a variety of supportive resources for the course and a link to a broader course outline.

· I will be using Canvas, accessible from my.illinoisstate.edu or from Canvas.illinoisstate.edu.  This site requires that you log in using your ULID and associated password.  There will be information there to help you see what's expected of you in each week, including links to course materials. You will use this site to submit lab and programming assignments, as well take your chapter quizzes.  You will also be able to see your grades there.

· Your textbook will be used as a source of readings and possibly also for individual programming assignments. The text also contains a number of practice problems. Although we may cover many of these practice problems in class, you should review them on your own if not done in class, as it is a great resource to prepare for the exams.

· I am providing a set of videos for you to watch. A link to these videos can be found in Canvas, under the Learning Materials link.

· I am one of your very important course resources.  I am available during my office hours.  If you cannot come to my office hours, I make appointments at other times

· The learning center is available to assist you with these classes. Please refer to the course website for hours of availability for tutoring and debugging. Please note that the Learning Center is not available to help you write programs. It is there to provide tutoring, so it is expected that you come to the Learning Center with your program mostly completed and have specific questions. They are there to tutor, not help write code.

· I answer email frequently.  When asking questions about programs via email, please be as specific as possible about your question or bug.  If you are asking for help with a bug, explain the problem and the error you’re seeing and zip the program as if you were submitting and attach it to your email.  The error you think is in one method may be actually caused by something else entirely, so it can speed my answer significantly if I have the whole program as well as your information.

Class Expectations

· ISU continues to provide University-wide   COVID-requirements based on the Center for Disease Control’s updated guidelines and State of Illinois requirements. While these requirements may be modified throughout our semester, we (Students, Faculty and Staff) are expected to follow them. Please know I will implement these expectations throughout our semester, to keep us as healthy as possible. As you will learn, an educator has many responsibilities beyond teaching their subject matter. A teacher’s first responsibility is to protect their students. I view this as my primary responsibility this semester. If a student decides to not follow University COVID guidelines in my class, the student will be referred to the Dean of Student’s Office. Please, let’s work together to have the in-person/on campus semester we have all been longing to have.

· Class time is valuable in this course.  Although rare, some students are able to learn the course material from the textbook and videos alone. However, the vast majority of you need and will benefit greatly from the explanations and examples provided in class. Please help me to maximize the value of our class time in the following ways:

1) Be prepared. Read and view assigned material before class.

2) Attend class regularly.  Attendance is included in the course grade.  Being in class will make it easier to participate and learn from the explanations and examples I provide as well as the in-class activities designed to help you learn. There will be a 2% attendance penalty for each class missed, regardless of reason. Note that you are responsible for everything I say in class whether you’re there or not.  Make arrangements with me in advance if you must miss class due to participation in a Sanctioned University Activity or to fulfill a religious obligation. If you have to miss class due to an extended illness (3 or more consecutive class days) or a bereavement, the Dean of Students Office can help. It’s located in Room 387, Student Services Building, and the email address is [email protected]. If you do need to miss class, you are expected to get notes from a classmate and then contact me with any questions you have regarding the material. The sanctioned university activities and religious obligations, as well as any absences reported as excused by the Dean will not be subject to the attendance penalty. However, I will not reteach material missed due to absence from class.

3) Be on time.  Class will begin promptly. If you must be late, try not to disrupt the session. A 1% penalty for attendance will be assigned for anyone who arrives late.

4) Be respectful of class time.  Pay attention and avoid providing interruptions such as cell phones ringing in the middle of class. I prefer a relaxed classroom environment, but it is important that all of you be able to focus on what we're doing in class without distractions.

5) Participate in the class. You will get much more out of our in-class activities and find learning this material easier if you participate in group activities, and participate in whole class discussion and problem-solving. Your participation can also help other students in the class.

My advice

Programming requires a different kind of thinking and a different kind of learning.  If you can do algebra, you can program, but you cannot learn to program by memorizing.  You must seek to understand the building blocks, what they mean, how they fit together.  This is an odd combination of learning a language and doing problem-solving.  The good news is the language is a lot simpler than things like French and Spanish, but if you just try to memorize chunks of Java that you don’t understand, you’ll do as poorly in the long run as if you tried to learn French by memorizing whole sentences without understanding what the different words mean and how they’re put together.  You may get by for a few weeks, but when that no longer works, you’ll be weeks behind.  Instead, work to understand the patterns and the building blocks. If you are struggling, make sure you visit the learning center.

Permission required to record:

Students must obtain written permission from the instructor if they wish either to record classroom lectures or discussions using audio or video devices. This restriction includes visual materials that accompany the lecture/discussion, such as lecture slides, whiteboard notes/equations, etc. Such recordings are to be used solely for the purposes of individual or group study with other students enrolled in the class in that semester. They may not be reproduced, shared in any way (including electronically or posting in any web environment) with those not in the class in that semester. Students with disabilities who need to record classroom lectures or discussions must contact Student Access and Accommodation Services to register, request and be approved for an accommodation. Students who violate this policy may be subject to both legal sanctions for violations of copyright law and disciplinary action under the University’s Code of Student Conduct.

A Final Note: After laying down all the rules and regulations, I want to remind you that I want you to enjoy this course and succeed at it. To that end, I have office hours that are truly yours. Although there may be a few times when many are trying to see me at the same time, I will, with your patience and assistance, be able to meet with everyone. I am available by appointment outside of scheduled office hours. In fact, you are welcome in my office any time the door is open (which is any time I am there and not extremely busy with grading). My office hour times are the times for you to drop by and get your questions answered, discuss your grades or the material, or just chat. So stop by and see me: that's what I'm here for.

Thinking of dropping the course:  I find that many students who drop the course, do so unnecessarily, and that sometimes, it just means having a conversation to figure out what you are struggling with or come up with a new strategy for learning. If encourage you to come and see me in my office so we can have a discussion before you decide to drop the course. If you have paid for the course, you had might as well get what you can out of it, and possibly salvage a passing grade if possible.

Course schedule

Week Date Topic Reading

1 8/21 Introduction Chapter 1, 2.1-2.2

2 8/28 Arithmetic; Introduction to Classes and Objects 2.3-2.4, 3.1-3.7

3 9/4 Labor Day Holiday on Monday
                                    Using Java Library Classes; Input 3.8-3.18

4 9/11 If and If/else statements 5.1-5.9

5 9/18 Switch 5.11-5.12

While loops 6.1-6.7

6 9/25 For and do-while loops 6.8-6.12

7 10/2 Writing classes 7.1-7.8

Exam 1 on Wednesday night (covers material through 6.7)

8 10/9 Writing classes cont. 7.9-7.11, 7.14-7.16

9 10/16 More on classes; Aggregation

10 10/23 Introduction to Arrays 8.1-8.4

11 10/30 Arrays cont. 8.5-8.7

12 11/6 Arrays cont.; Linear Search; Selection Sort 8.8-8.9

Exam 2 on Wednesday night (covers material through 8.4)

13 11/13 Exceptions; File I/O 11.1-11.6

11/18         Thanksgiving Break—no classes

14 11/27 File I/O continued 11.7-11.8

15 12/5 Review

Final Exam TBA