Introduction to Computer Science

CSCI 105 Fall semester, 2017

 

 

To the Bottom of the Page.                                 

 

Instructor: Dr. Shieu-Hong Lin    Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: LinEmail

 

Syllabus: Compact Version

 

Section 1: MW 10:30-11:45am           Section 2: MW 1:30-2:45pm  

Location: LIB 141     

 

Dr. Lin Office Hours: Math & CS department at Grove 8.

(i)                 Tuesday: 1:00-3:30pm, just drop by

(ii)              Monday, Wednesday, Thursday: 3:00~5:00pm: email Dr. Lin in advance to confirm an appointment

 

TAs: Zach Chester, Grant Garcia, Peter Leung, Caleb Tyler, Willy Hung

 

 

*************************************************************************************************

About programming assignments:

·         Integrity rules and grading policies: Carefully read the descriptions here about the integrity rules and the grading rubrics.

·         Self-evaluation report:  Carefully read through the self-evaluation report, especially the integrity review, test cases, and the peer review.

·         Submission of your work: For each programming assignment, (i) compress your entire Visual Studio project into a zip file and submit the zip file under Canvas and (ii) fill out the self-evaluation report and upload it under canvas

·         The official C++ compiler used for grading: We use Visual C++ in Microsoft Visual Studio Community C++ 2017 Edition to compile your programs on the Windows platform and determine your grades based on the results under such settings.  For Windows, click here to automatically download Microsoft Visual Studio Community 2017 Edition for free. After the download, click the downloaded executable to proceed with the installation. Make sure you (i) first select "Desktop development for C++" (instead of the "Universal Development …") and (ii) also check the option of "VC++ 2015 toolset" to install Visual C++  2017. You may want to register your Visual Studio with Microsoft to continue to use it in the long run.

·         How to compile your C++ programs: Read this introduction to how to compile your C++ programs and explore the sample Visual C++ project folder compressed inside this zip file.

 

About the reading reports:

·         Effort (2 points): How much time have you spent for the reading? What percentage of the contents in the reading do you think you understand? Have you come to the class this week?  Assessment: The student is expected to (i) have attended the class this week at least once (0.5 point), and (ii) have either gained a good understanding of 80% or more of the contents or have spent at least three hours in the reading (1.5 points).

·         Reflection on the reading (2 points): Put down 1~2 paragraphs of your thoughts such as notes of new insight you gained, interesting things encountered, questions of things you don’t understand,  and so forth.  Assessment: the student is expected to show substantial evidence of understanding or effort of trying to understand the contents in the reading.

 

*************************************************************************************************

Submission of all your work: go to Biola Canvas               Your grades: see them under Biola Canvas

 

Late policy:

·         The submission link remains open for 2 more days after the due date as a grace period, but 1 point will be deducted for late submission after the due date while the submission link is still open.

·         You will receive no points after the submission link on canvas is closed unless it is something like a serious health issue with statements from the doctor as proof.

*************************************************************************************************

 

Week 1: What is a computer program?  

 

Reading #1: Due: Wednesday, Sept . 6

Submit your reading report under Canvas

·                     Read Sections 1.2-1.6 of the textbook (7th Ed./8th Ed.) and try to understand this very simple C++ program.

·                     Read this introduction to how to compile your C++ programs.

·                     Reflect on what you have done in Lab #1 above. In your reading report, succinctly describe any technical problems you have encountered while doing Lab #1 above.

·                     Send in your reading report through Biola Canvas.

 

Lab #1 (First exposure to a very simple computer application program): Due: Wednesday, Sept . 6 (no penalty till Friday Sept. 8)

Submit your lab report under Canvas

 

 

*************************************************************************************************

 

Week 2: Basics of variables, types, input/output, and the assignment operations

 

Reading #2: Reading report due: Wednesday, Sept. 13

·                     Read 2.1~2.9 and 2.12 (7th Ed. & 8th Ed.) of the textbook

·                     Send in your reading report through Biola Canvas.

 

 

Programming Assignment #0:

Due: Wednesday, Sept. 13 (late penalty: deduction of 1 point; submission closed by the end of Friday Sept. 15)

 

·                     Highlight: Using double variables and the assignment operator ' = ' for a temperature conversion program:

·                     Writing your program: On Windows, you can simply download this zip file of a sample project and extract it to get a sampleProject folder and rename the folder as Program 0. Open up the project and replace the contents of main.cpp with your own C++ code for Programming 0. Then repeatedly compile, test, and debug your program until it works correctly. Also see how to compile your C++ programs.

·                     Submission: (i) Compress your entire Program 0 folder into a zip file and then upload it through Biola Canvas. (ii) Carefully fill out this self-evaluation report and upload it through Biola Canvas. Note that you will receive no point for missing the self-evaluation report or missing the integrity review in the report.

 

Concepts about bits and bytes: the binary system and how the information is stored in modern computers.

 

 

*************************************************************************************************

 

Week 3: Arithmetic operators and mathematical expressions    

 

Reading #3: Reading report due: Wednesday, Sept. 20

·                     Required: Sections 2.13~2.15, 2.17 and 3.2~3.3 (7th Ed. & 8th Ed.) of the textbook

·                     Optional: All the other sections in Chapter 2 and Chapter 3, especially 2.16~2.17, 3.4~3.5, and 3.8~3.10 as long you have time to learn more.

·                     Send in your reading report through Biola Canvas.

 

Programming Assignment #1 Due: Wednesday, Sept. 20

·         Highlight: Using int variables and the integer modulus operator ' % '  and more for a currency conversion program.

·         Writing your program: On Windows, you can simply download this zip file of a sample project and extract it to get a sampleProject folder and rename the folder as Program 1. Open up the project and replace the contents of main.cpp with your own C++ code for Programming 1. Then repeatedly compile, test, and debug your program until it works correctly. Also see how to compile your C++ programs.

 

*************************************************************************************************

 

Week 4: Relational operators, logic expressions, and if statements

Reading #4: due: Wednesday, Sept. 27

·                     Required: Sections 4.1~4.6  (7th Ed. & 8th Ed.) of the textbook

·                     Optional: All the other sections in Chapter 2 and Chapter 3, especially 2.16~2.17, 3.4~3.5, and 3.8~3.10 as long you have time to learn more.

·                     Send in your reading report through Biola Canvas.

 

Programming Assignment #2 Due: Wednesday, Sept. 27

·                     Highlight: Using relational operators, logic expressions, and if/else statements for a payroll program.

·                     Writing your program: On Windows, you can simply download this zip file of a sample project and extract it to get a sampleProject folder and rename the folder as Program 2. Open up the project and replace the contents of main.cpp with your own C++ code for Programming 2. Then repeatedly compile, test, and debug your program until it works correctly.

·                     Submission: (i) Compress your entire Program 2 folder into a zip file and then upload it through Biola Canvas. (ii) Carefully fill out this self-evaluation report and upload it through Biola Canvas. Note that you will receive no point for missing the self-evaluation report or missing the integrity review in the report.

 

 

*************************************************************************************************

 

Week 5: More on if/esle statements, logic expressions, and the Boolean type

Reading #5: due: Wednesday, Oct. 4

·                     Required: Sections 2.10, 4.7~4.12  (7th Ed. & 8th Ed.) of the textbook

·                     Optional: All the other sections in Chapter 4, especially 4.14~4.15 in addition if you want to learn more.

·                     Send in your reading report through Biola Canvas.

 

 

Programming Assignment #3  Due: Wednesday, Oct. 4 (This one is harder and more tedious. You should start as early as possible.)

·                     Highlight: Using relational operators, logic operators, logic expressions, and if/else statements for a date validation program.

·                     Writing your program: On Windows, you can simply download this zip file of a sample project and extract it to get a sampleProject folder and rename the folder as Program 3. Open up the project and replace the contents of main.cpp with your own C++ code for Programming 3. Then repeatedly compile, test, and debug your program until it works correctly.

·                     Submission: (i) Compress your entire Program 3 folder into a zip file and then upload it through Biola Canvas. (ii) Carefully fill out this self-evaluation report and upload it through Biola Canvas. Note that you will receive no point for missing the self-evaluation report or missing the integrity review in the report.

 

 

*************************************************************************************************

 

Week 6: Basics of loops: while, do while and for loops

Reading #6: Reading report due: Wednesday, Oct. 11. No penalty till Oct. 12.

·                     Required: Sections 5.1~5.10   (7th Ed. & 8th Ed.) of the textbook

·                     Send in your reading report through Biola Canvas.

 

 

Programming Assignment #4A  Due: Wednesday, Oct. 11. No penalty till Oct. 12.

·         Highlight: Using a while loop to implement an ATM-like service program.

·         Writing your program: On Windows, you can simply download this zip file of a sample project and extract it to get a sampleProject folder and rename the folder as Program 4A. Open up the project and replace the contents of main.cpp with your own C++ code for Programming 4A. Then repeatedly compile, test, and debug your program until it works correctly.

 

 

*************************************************************************************************

Week 7: More about loops

Reading #7: Reading report due: Wednesday, Oct. 18

·                     Read Sections 4.14, 4.15, 5.11   (7th Ed. & 8th Ed.) of the textbook.  Optional: Section 5.12

·                     Review Sections 5.1~5.10   (7th Ed. & 8th Ed.) of the textbook as needed

·                     Send in your reading report through Biola Canvas.

 

 

Programming Assignment #4B  Due: Wednesday, Oct. 18, submission open till Oct. 25

·                     Highlight: Using nested loops for finding prime numbers.

·                     Writing your program: On Windows, you can simply download this zip file of a sample project and extract it to get a sampleProject folder and rename the folder as Program 4B. Open up the project and replace the contents of main.cpp with your own C++ code for Programming 4A. Then repeatedly compile, test, and debug your program until it works correctly.

·                     Submission: (i) Compress your entire Program 4B folder into a zip file and then upload it through Biola Canvas. (ii) Carefully fill out this self-evaluation report and upload it through Biola Canvas. Note that you will receive no point for missing the self-evaluation report or missing the integrity review in the report.

 

 

*************************************************************************************************

Week 8: Basics of functions.

Reading #8: Reading report due:  Wednesday, Oct. 25

·                     Required: Sections 6.1~6.5   (7th & 8th Ed.) of the textbook

·                     Send in your reading report through Biola Canvas.

 

 

*************************************************************************************************

 

Week 9: More on functions.

Reading #9: Reading report due: Wednesday Nov. 1

·                     Required: Sections 6.6~6.10   (7th & 8th Ed.) of the textbook

·                     Optional: Sections 6.11~6.16   (7th & 8th Ed.) of the textbook

·                     Send in your reading report through Biola Canvas.

 

 

Programming Assignment #5A  Due: Wednesday, Nov. 1

·                     Highlight: Defining and calling void functions.

·                     Submission: (i) Compress your entire Program 5A folder into a zip file and then upload it through Biola Canvas. (ii) Carefully fill out this self-evaluation report and upload it through Biola Canvas. Note that you will receive no point for missing the self-evaluation report or missing the integrity review in the report.

 

 

*************************************************************************************************

Week 10: Basics of arrays

Reading #10: Reading report due: Wednesday, Nov. 8

·                     Read Sections 7.1~7.6 (7th Ed. & 8th Ed.) of the textbook on the basics of arrays

·                     Send in your reading report through Biola Canvas.

 

 

Programming Assignment #5B  Due: Wednesday, Nov. 8

·                     Highlight: Redo the prime number processing program by defining and calling functions.

·                     Submission: (i) Compress your entire Program 5B folder into a zip file and then upload it through Biola Canvas. (ii) Carefully fill out this self-evaluation report and upload it through Biola Canvas. Note that you will receive no point for missing the self-evaluation report or missing the integrity review in the report.

 

 

*************************************************************************************************

Week 11: More on arrays

Reading #11: Reading report due: Wednesday, Nov. 15

·                     Read Sections 6.13~6.14 and 7.7~7.11 (7th Ed. & 8th Ed.) of the textbook on the basics of arrays.

·                     Send in your reading report through Biola Canvas.

 

 

Programming Assignment #5C  Due: Wednesday, Nov. 15

·                     Highlight: Redo the birthday program by defining and calling functions.

·                     Submission: (i) Compress your entire Program 5C folder into a zip file and then upload it through Biola Canvas. (ii) Carefully fill out this self-evaluation report and upload it through Biola Canvas. Note that you will receive no point for missing the self-evaluation report or missing the integrity review in the report.

 

 

*************************************************************************************************

 

Midterm Nimgame Programming Project: due: Wednesday, Nov. 22. Open for submission until Sunday Nov. 26.

We'll deduct 4 points as late penalty if it is late but submitted before it is closed.

         

Special integrity rules against plagiarism for this project:

 

Things you can do: (i) You may discuss the rules of the nim game. You may discuss ways to determine whether there is a ‘best’ move or not and if so what the best move is. (ii) Some of the things to implement are related to the earlier regular programming assignments. You can still discuss these past programming assignments and ask the TAs questions about these assignments. (iii) You can reuse any C++ code you have written for the previous programming assignments and use C++ code covered by the reading assignments in the textbook. However, other than these two sources, you need to write your own C++ code by yourself.

 

 

*************************************************************************************************

 

In-class reflection assignment: Faith and Learning Integration Assignment on Creation and Computer Science

Monday, Nov. 27.

·         This assignment carries 5% of the course weight and by all means you shall not miss this assignment.

·         This is an in-class reflection assignment on the integration of faith and learning. Dr. Lin will be out of town on 11/27 for giving a talk in a conference. But you are expected to come to the class on Monday, Nov. 27 to spend time in the reflection process required in the assignment. 

·         You should put down what you have in the reflection process according to the requirement in the assignment.

·         Submit your reflection report accordingly through Canvas by Wednesday Nov. 29.

 

 

Weeks 12-13: Structures as abstract data types | Searching and Sorting Arrays

Reading #12: Reading report due: Due: Wednesday, Nov. 22. Open for submission until Wednesday Nov. 29.

·                     Read Sections 8.1~8.2 (7th Ed. & 8th Ed.) of the textbook on the basics of linear search and binary search.

·                     Read Sections 11.1~11.6 (7th Ed. & 8th Ed.) of the textbook on the basics of structures as basic data types.

·                     Review Section 5.11 (7th Ed. & 8th Ed.) of the textbook on file input/output.

·                     Send in your reading report through Biola Canvas.

 

Reading #13: Reading report due: Due: Wednesday Nov. 29.

·                     Read Sections 8.3~8.4 (7th Ed. & 8th Ed.) of the textbook on sorting algorithms.

·                     Read Sections 10.4 and 10.7 (7th Ed. & 8th Ed.) of the textbook on the basics of strings in C++.

·                     Send in your reading report through Biola Canvas.

 

 

Programming Assignment #6A  Due: Wednesday, Nov. 29.

·                     Highlight: Using files and an array for information processing.

·                     Submission: (i) Compress your entire Program 6A folder into a zip file and then upload it through Biola Canvas. (ii) Carefully fill out this self-evaluation report and upload it through Biola Canvas. Note that you will receive no point for missing the self-evaluation report or missing the integrity review in the report.

 

 

*************************************************************************************************

Weeks 14-15: Recursion   +   Pointers   +    Review of Searching, Sorting, and Structures

Reading #14: Reading report due: Due: Wednesday, Dec. 6. Open for submission until Wednesday Dec 13 (no late penalty).

·                     Read Sections 19.1~19.4 on the basics of recursion.

·                     Review the items for Reading #12 and Reading #13 as needed.

·                     Send in your reading report through Biola Canvas.

 

 

Reading #15: Reading report due: Due: Wednesday Dec 13.

·                     Read Sections 9.1~9.8 on pointers

 

 

Programming Assignment #6B  Due: Wednesday, Dec. 6

·         Highlight: Using files and an array of structures for information processing.

·         Submission: (i) Compress your entire Program 6B folder into a zip file and then upload it through Biola Canvas. (ii) Carefully fill out this self-evaluation report and upload it through Biola Canvas. Note that you will receive no point for missing the self-evaluation report or missing the integrity review in the report.

 

Programming Assignment #6C  Due: Wednesday, Dec. 13

·                     Highlight: Using files and an array of structures for information processing. Note that this assignment will be counted as a component in the final exam.

·                     Submission: (i) Compress your entire Program 6C folder into a zip file and then upload it through Biola Canvas. (ii) Carefully fill out this self-evaluation report and upload it through Biola Canvas. Note that you will receive no point for missing the self-evaluation report or missing the integrity review in the report.

 

 

Final exam: Open-book in-class test on Monday Dec. 11: (i) 10:00am~12:00 for CSCI 105-01 (morning section) (ii) 12:30~2:30pm for CSCI 105-02 (afternoon section). No compilers nor any Internet search for help allowed

 

IDEA course evaluation: Please provide your feedback there.

 

*************************************************************************************************

 

For CS majors and those who are going to take CSCI 106 Data Structures: Please keep the current textbook Starting Out with C++ with you. Next semester in CSCI 106 Data Structures we’ll cover the remainder of Starting Out with C++ together with some contents from an additional textbook, C++ Primer.

 

 

*************************************************************************************************

TA hours at Grove 10A:

Monday:                                  Peter: 1pm-3pm,                     Willy: 2pm-3pm 

Tuesday:                                  Grant: 3pm-5pm,                    Willy: 2pm-3pm 

Wednesday:                            Zach: 12-2pm,

Thursday:                                Caleb: 3pm-5pm,

*************************************************************************************************

 

To the Top of the page