Difference between revisions of "CS 151 Spring 2024"

From Computer Science
Jump to: navigation, search
(Announcements)
m (Jkinne moved page CS 151 to CS 151 Spring 2024)
 
(75 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
CS 151 Introduction to Computer Science is taken by CS majors after CS 101 or passing a placement exam.
 
CS 151 Introduction to Computer Science is taken by CS majors after CS 101 or passing a placement exam.
  
This page contains the syllabus for '''Jeff Kinne's section''' of CS 151 and is used to keep track of assignments, etc. as well for the most recent offering (fall 2023).  For announcements, click the link in the table of contents.
+
This page contains the syllabus for '''Jeff Kinne's section''' of CS 151 for the most recent offering (fall 2023).   
  
 
'''For Devon Kinne's section of CS 151, check in Canvas''' - Devon's syllabus, assignments, etc. are kept in your section of the course in Canvas.
 
'''For Devon Kinne's section of CS 151, check in Canvas''' - Devon's syllabus, assignments, etc. are kept in your section of the course in Canvas.
Line 14: Line 14:
 
[https://kinnejeff.com Jeff Kinne], [http://mailto:jkinne@cs.indstate.edu jkinne@cs.indstate.edu] <br>
 
[https://kinnejeff.com Jeff Kinne], [http://mailto:jkinne@cs.indstate.edu jkinne@cs.indstate.edu] <br>
 
''Office:'' Root Hall A-142 and in Microsoft Teams, phone 812-237-2126 <br>
 
''Office:'' Root Hall A-142 and in Microsoft Teams, phone 812-237-2126 <br>
''Instructor Office Hours:'' MWF 10am-1pm, 2-3pm; TR 11-12:30pm, 1:30-3pm
+
''Instructor Office Hours:'' M 12-2:30pm; TR 9:30am-2:30pm; WF 2-2:30pm
  
 
'''Lecture, Exam'''
 
'''Lecture, Exam'''
Line 20: Line 20:
 
''Lecture:'' MWF 9-9:50am in Root Hall A-019, over Zoom (link in Canvas, see below), and recorded<br>  
 
''Lecture:'' MWF 9-9:50am in Root Hall A-019, over Zoom (link in Canvas, see below), and recorded<br>  
 
''Mid-term exam:'' TBA <br>  
 
''Mid-term exam:'' TBA <br>  
''Final exam:'' Wednesday, Dec 13, 8-9:50pm <br>  
+
''Final exam:'' Wednesday, May 8, 8-9:50pm <br>  
  
 
'''Prerequisites''' - B- or better in CS 101 or departmental placement exam.
 
'''Prerequisites''' - B- or better in CS 101 or departmental placement exam.
  
'''CRN numbers''' - 50602
+
'''CRN numbers''' - 10673
  
 
'''Required text'''
 
'''Required text'''
Line 32: Line 32:
 
* [https://docs.google.com/presentation/d/1ccy6CXrdP9415bDEbzcI773cyDNI7p3rr3yA76QmgtQ/edit#slide=id.g877391eabf_0_116 turtle graphics]
 
* [https://docs.google.com/presentation/d/1ccy6CXrdP9415bDEbzcI773cyDNI7p3rr3yA76QmgtQ/edit#slide=id.g877391eabf_0_116 turtle graphics]
  
'''Class notes''' - Notes during class will mostly be kept in the '''[https://sycamoresindstate-my.sharepoint.com/:o:/g/personal/jeffrey_kinne_indstate_edu/Es6Hxn7B1HdDsZXUOvZQg1UB1hsnacRpWV8DBeTxjOkAXA CS 151 OneNote notebook]'''.  Note that you will need to authenticate with your ISU account to view the notebook. Some files from lecture may be kept at https://cs.indstate.edu/~cs151/ which can also be seen when you are logged into the terminal by doing: <code>cd ~cs151/public_html/</code>.
+
'''Class notes''' - Notes during class will mostly be kept in the documents in '''[https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/EiJJbQVND3FMr25IAoHydnUBADrC7z-tZH_OTaD1h_A8Ow?e=y81xWu this OneDrive folder]'''.  Note that you will need to authenticate with your ISU account to view the folder. Some files from lecture may be kept at https://cs.indstate.edu/~cs151/ which can also be seen when you are logged into the terminal by doing: <code>cd ~cs151/public_html/</code>.
  
 
=Announcements/Assignments/Quizzes=
 
=Announcements/Assignments/Quizzes=
This section will be kept up to date with information about assignments, quizzes, and exams.  This will be kept as a "stack" with the most recent at the top of the list.
+
'''HW and Labs'''
 
 
==Assignments==
 
===HW and Labs===
 
 
These are posted in Canvas and on the CS server. HWs are due Mondays at 7:59am, Labs are due Fridays at 11:59pm. All times are Eastern US time.
 
These are posted in Canvas and on the CS server. HWs are due Mondays at 7:59am, Labs are due Fridays at 11:59pm. All times are Eastern US time.
  
===Quizzes===
+
'''Quizzes'''
Will normally be taken Fridays at 9:30am.
+
Will normally be taken Fridays at 9:30am. Some will be in Canvas. Some will be on paper.
* '''q7 - Automate the Boring Stuff Chapter 5''' - in class on October 20.
 
* '''q6 - Automate the Boring Stuff Chapter 4''' - in class on October 13.
 
* '''q5 - Automate the Boring Stuff Chapter 3''' - in class on October 11.
 
* '''q4 - [https://indstate.instructure.com/courses/12565/quizzes/253654 Automate the Boring Stuff Chapter 2b]''' - in class on Sept 22.
 
* '''q3 - [https://indstate.instructure.com/courses/12565/quizzes/253338 Automate the Boring Stuff Chapter 2a]''' - in class on Sept 8.
 
* '''q2 - [https://indstate.instructure.com/courses/12565/quizzes/253234 Automate the Boring Stuff Chapter 1]''' - that is a link to the practice quiz. In class on Sep 1.
 
* '''q1 - [https://indstate.instructure.com/courses/12565/quizzes/244584 linux terminal]''' - that is a link to a practice quiz. Actual quiz is in Canvas. Due by Aug 25, and you can take it twice. Take the practice quiz as many times as you want to make sure you have the right answers.
 
* '''q0 - [https://indstate.instructure.com/courses/12565/quizzes/252875 course policies]''' - that is a link to a practice quiz. Can be completed any time once released, can be taken as many times as needed to get 100%. Required to get 100% on this quiz before Aug 28.
 
  
==Announcements==
+
'''Announcements'''
* Jeff remember to - unmute, record, say something about me.
+
Announcements will normally be posted to the course in Canvas.
* Oct 27 - text adventure game.
 
* Oct 25 - this week's quiz will cover all of the strings chapter (but not the pyperclip part). Let's look at h10. There is no lab10 this week. Note - command line arguments.
 
* Oct 25 - notes on h9... gatherLoot function could manipulate the inventory dictionary directly or call the addToInventory function; which is better? addToInventory - should this function call displayInventory, or should that be called on its own after addToInventory finishes? Does the function addToInventory need to return the updated dictionary? Does gatherLoot need to?
 
* Oct 23 - lab9 comments - what the formatting looks like in the assignment and how to match that.
 
* Oct 23 - strings chapter. 2nd exam next week - Friday Nov 3. There will be a h10, check Canvas later.
 
* Oct 23 - text adventure, let's discuss...
 
* Oct 20 - something fun assignment - text adventure (5), GUI (6), game (poker, blackjack, chess (2), connect4), chatbot (2).
 
* Oct 20 - quiz on dictionaries, you can use a one page cheat sheet. lab9 comments. h9.
 
* Oct 18 - remember, quiz on dictionaries Friday. Answers from last week's quiz. Then, work on your lab9 and h9.
 
* Oct 18 - comments on h8... Global variables - don't use them unless there is a good reason; generally, it is bad style to use global variables. Careful of what happens if the longest streak is at the end of the list. For the last part (how many flips until BLANK many heads in a row) - you don't need to store the flips for this; if you do this will have an impact on the performance; consider how long it takes if you keep the coin flips and call countStreak, versus just doing the accounting in the flipsUntil function (the way is quadratic time, and the other is linear - a very big difference).
 
* Oct 16 - from here on out, second round of grading done 1 week after due date, so that's the last chance to turn something in.
 
* Oct 16 - notes on lab8.. Sorting takes longer than just needing to find max or min. Two different methods to print a list - what we had in mind. Getting largest and smallest from a list - two different ways, and it's better to not change the list unless that is part of the specification on the question. Functions should work regardless of the types in myList (if they're all integers, or all strings, or all tuples of integers).
 
* Oct 13 - quiz over chapter 4. Sowmya runs things today, working on lab8 and h8.
 
* Oct 11 - quiz over chapter 3. Working on lab8, h8. Has the internet been better in the room?
 
* Oct 9 - we'll have q7 on Wednesday, on paper, you cannot use anything for it, study chapter 3 - how functions work, vocab, be able to give code for defining and using functions. New this week - lists, chapter 4, lab8, h8.
 
* Oct 9 - pair and meet partners...
 
* Oct 4 - exam corrections, lab7, h7, h7i.
 
* Oct 2 - later exams that are higher score cancel out earlier ones.
 
* Oct 2 - exam corrections hw, come see me hw. On to the next thing in python (chapter 3) - functions, variable scope, exception handling.
 
* Oct 2 - exam grades, letter grades. Note on hw's - you're supposed to fix things after the first round of grading and handin again, I do want you to get them right (my definition of right, of course).
 
* Sep 29 - exam 1, you must be in class for this. It will be on paper, you cannot use anything except pen and pencil.
 
* Sep 27 - reminder that cheat sheet is due today. Exam Friday in class - on paper, no notes, no use of computer or anything. Practice the quizzes, review the lab and hw assignments, read through the book through chapter 2. Questions on sample exam questions? Copying over the final submissions of labs and hws, and let's look at my solutions to them.
 
* Sep 25 - sample exam. Checking labs and hw's. Cheat sheet assignment - due Wednesday.
 
* Sep 22 - quiz on loops, work on lab5 and h5. I'll look at previous labs and hw's on Sunday, so if you didn't have 100% points on any of those, you can get something submitted by then for me to check. Note - exam 1 is next Friday, you must be in class for it.
 
* Sep 20 - last chance on labs and hw's up through this week is next Wednesday (Sep 27). We'll do a review day next Wednesday where I can show you my answers to assignments, and we'll have the first exam on Friday. For today - lab5 and h5.
 
* Sep 18 - quiz Friday over loops (AtBS chapter 2). First exam next week. Introducing - loops. lab5 and h5.
 
* Sep 15 - for lab4 and h4, you have to - handin --checkout, sftp from the server to your computer, complete them, sftp from your computer to the server, handin/submit.
 
* Sep 15 - are you allowed to work together? Yes, if you ask and I say it's okay, and leave a comment in your code (Jane and I worked together). If you want to ask the internet for turtle shapes in python, you can use those and give a citation.
 
* Sep 15 - reminder that you can see files from class either in the browser or on the server (see General Information section). What I want for h4, and time for everyone to work on lab4 and h4. Reminder - lab4 and h4 will both have 3 grade entries - did you submit a reasonable attempt on time, did you have things correct on time, and do you have it correct eventually.
 
* Sep 13 - lab4 and h4, turtle main loop. Loops and functions. Note - no quiz this week.
 
* Sep 13 - grades - grade calculation, weighting of assignments, looking at class min/max/average in Canvas.
 
* Sep 13 - note about conditions for grades, spy - things like < 65 rather than <= 64.
 
* Sep 11 - for assignments, three grades - "final version" is the normal one, "submitted on time" is whether you submitted something reasonable on time (yes/no), "on time correct" is how correct your on time submission was.
 
* Sep 11 - transferring between your computer and the CS server - [[Linux - System Setup]].
 
* Sep 11 - [https://docs.google.com/presentation/d/1ccy6CXrdP9415bDEbzcI773cyDNI7p3rr3yA76QmgtQ/edit#slide=id.g877391eabf_0_116 turtle graphics]. Jeff's solutions to h2, lab1.  lab2, mathChecker - better to pick the denominator to be random between 1 and the numerator. lab2, grades - better to make the conditions so they will also work right for decimal grades (e.g., 89.5), better to organize the code so you don't copy/paste the same exact line (e.g., "Way to go!", "You got a(n) "). lab2 - note again that there is a sample transcript, so your programs should match it exactly if possible. Why does that matter?
 
* Sep 8 - q3, lab2, h3.
 
* Sep 8 - some additional notes - canvas, our course, files.
 
* Sep 8 - reminder to read the book, try typing in some of the examples from the book, stop me in class when you don't understand or need to pause a second to let things sink in. Don't Panic.
 
* Sep 6 - introducing chapter 2 things - conditions, loops. Lab2 and h3. q3 on Friday.
 
* Sep 6 - lab1 and h2 grades up to date. Last chance to fix those is today. Please do so, everyone should get 100% on these. Make your print and input statements exactly match the sample transcript in the files.
 
* Sep 1 - Quiz q2. Lab1. Questions on homework. Note that the unix help lab is open now.
 
* Aug 30 - lab1 sent later today. quiz on chapter 1 Friday. Finish chapter 1 material, continue where we were in OneNote. Questions on h1.
 
* Aug 28 - note that the python transcript from class today is at https://cs.indstate.edu/~cs151/
 
* Aug 28 - note that quiz this week will be on Wednesday, maybe. Read chapter 1, review today's lecture material.
 
* Aug 28 - Questions about q0, q1, allAboutLinux? This week's lab, hw, and quiz material. Introducing Python. Note - you should be keeping notes and a "cheat sheets" for yourself - one for Linux commands and such, one for Python rules and such. Read intro, chapters 1 and 2 of Automate the Boring Stuff; try things out as you follow along.
 
* Aug 24 - If you're having trouble with logging in, check - https://cs.indstate.edu/wiki/index.php/Linux_-_System_Setup
 
* Aug 24 - If you're having trouble with h1, read through - https://cs.indstate.edu/wiki/index.php/Linux_Terminal_-_Files_and_Directories_and_Getting_Around and read the assignment again in Canvas from the beginning.
 
* Aug 24 - Reminder to take q1 by the end of the day (you can take it twice, and it will count the higher grade). You can do the q1 practice quiz first using the link above.
 
* Aug 24 - Make sure to get 100% on q0 by Monday (you can retake it as many times as needed, in Canvas). If you have any that you can't figure out let me know.
 
* Aug 22 - attendance for when you are not in the room... If joining by zoom, you need to post a comment in the chat to say if you have any questions about the current assignments, reading, the last lecture, etc. If watching the lecture, you need to watch it before the next lecture and send me a message by Teams or email saying if you have any questions or want any more examples about a particular topic. So, if not in the room, you have to participate at least as much as "no questions from me right now" to get credit for attendance. You should normally be here in person, and only joining remotely as needed.
 
* Aug 22 - quizzes assigned, see above. First hw assignment - see it in Canvas under Assignments. No lab assignment this week.
 
* Aug 22 - reading assignment - this webpage, links from q0 and q1 in Canvas. For next week will be starting chapter 1 in Automate the Boring Stuff.
 
* Aug 22 - first day of class - how the course will work, cheating policy (automatic F for the course), practice quizzes, math notation.
 
  
 
=Course Description and Content=
 
=Course Description and Content=
Line 171: Line 107:
  
 
'''Each week''', you will be having 3 regularly scheduled assignments:  
 
'''Each week''', you will be having 3 regularly scheduled assignments:  
* Quiz – this is based off of the reading and Monday lecture material.  It opens on Monday at 8:00 am and must be completed by Wednesday at 11:59pm.  Quizzes cannot be made up.  
+
* Quiz – this is based off of the reading and Monday lecture material.  Fridays at the end of class.  Quizzes cannot be made up.  
 
* Smaller lab assignment – This lab assignment will be a smaller assignment and due by Friday at 11:59pm.  This will typically be submitted on the CS server.  This assignment counts towards your Lab grade.  
 
* Smaller lab assignment – This lab assignment will be a smaller assignment and due by Friday at 11:59pm.  This will typically be submitted on the CS server.  This assignment counts towards your Lab grade.  
 
* Bigger programming assignment – This programming assignment will be a little larger in content, and will be submitted on the CS server.  This counts towards your Homework grade.  It will be due by Monday morning at 7:59am  
 
* Bigger programming assignment – This programming assignment will be a little larger in content, and will be submitted on the CS server.  This counts towards your Homework grade.  It will be due by Monday morning at 7:59am  
Line 189: Line 125:
 
=CS-Specific Items=
 
=CS-Specific Items=
 
This section contains items that are generally the same for all CS courses (and in particular those taught by this instructor).
 
This section contains items that are generally the same for all CS courses (and in particular those taught by this instructor).
 
==CS Course Policies==
 
Note that this course follows all standard CS course policies. In particular, (a) cheating/plagiarism by graduate students results in an F in the course, (b) and there will be no makeup exams. See http://cs.indstate.edu/info/policies.html for details.
 
  
 
==Lab Help==
 
==Lab Help==
Line 197: Line 130:
  
 
==Course Announcements==
 
==Course Announcements==
Announcements regarding the course will be made both during class and via email to your @sycamores.indstate.edu email address. You should regularly check this email account or have it forwarded to an account that you check regularly. You can set the account to forward by logging into your indstate.edu email online (if you aren't able to find the option, try a different browser or search online for things like - outlook online forward email setting).
+
Announcements regarding the course will be made both during class and in Canvas. You should make sure your settings are such that you will be notified of these announcements (e.g., by email). You should regularly check your ISU email account or have it forwarded to an account that you check regularly. You can set the account to forward by logging into your indstate.edu email online (if you aren't able to find the option, try a different browser or search online for things like - outlook online forward email setting).
  
 
==Classroom conduct==
 
==Classroom conduct==
Line 209: Line 142:
 
''Homework:'' You may discuss the homework assignments, but should solve and finish them on your own. To make sure you are not violating this, if you discuss with someone, you should DESTROY any work or evidence of the discussion, go your separate ways, SPEND at least an hour doing something completely unrelated to the assignment, and then you should be able to RECREATE the program/solution on your own, then turn that in. If you cannot recreate the solution on your own, then it is not your work, and you should not turn it in.
 
''Homework:'' You may discuss the homework assignments, but should solve and finish them on your own. To make sure you are not violating this, if you discuss with someone, you should DESTROY any work or evidence of the discussion, go your separate ways, SPEND at least an hour doing something completely unrelated to the assignment, and then you should be able to RECREATE the program/solution on your own, then turn that in. If you cannot recreate the solution on your own, then it is not your work, and you should not turn it in.
  
''Note on sources:'' if you use some other source, the web or whatever, you better cite it! Not doing so is plagiarism.
+
''Note on sources:'' if you use some other source, the web or whatever, you better cite it! Not doing so is plagiarism. You should not be directly copy/pasting without prior approval; if you have approval you need to give a citation right at the point where it is used (i.e., in a comment).
  
''Exams:'' This should be clear no cheating during exams. Each instructor has different rules for what is allowed on exams in terms of notes, etc. If not noted otherwise, you should assume that a quiz or exam is closed notes, no computer, no calculator.
+
''Exams:'' This should be clear - no cheating during exams. Each instructor has different rules for what is allowed on exams in terms of notes, etc. If not noted otherwise, you should assume that a quiz or exam is closed notes, no computer, no calculator.
  
 
''Projects:'' You should not copy from the Internet or anywhere else. The project should be your own work. It will be fairly obvious to me if you do copy code from the Internet, and the consequences will be at the least a 0 on the project.
 
''Projects:'' You should not copy from the Internet or anywhere else. The project should be your own work. It will be fairly obvious to me if you do copy code from the Internet, and the consequences will be at the least a 0 on the project.
Line 218: Line 151:
 
Please ask the instructor if you have doubts about what is considered cheating in this course.
 
Please ask the instructor if you have doubts about what is considered cheating in this course.
  
==Office hours (using Teams)==
+
==Office hours==
Office hours will be through Microsoft Teams by default. If you would like to meet in person you should reserve an appointment using http://cs.indstate.edu/jkinne-meeting to reserve an in person meeting with Jeff Kinne. I am normally in my office during my listed office hours, but by making an appointment you can be more certain. For meeting through Teams, you should start Teams in your browser or start the application. You should be logged in using your ISU credentials. Once you have Teams open you can message me to ask me questions or to ask to talk. We can use Teams to message (better than emailing back and forth repeatedly if you have questions about something that you just want to write about) or to talk and share screens (e.g., to take a look at your code). I normally have Teams open on my computer all of the time, including during my office hours. During my office hours I will normally reply right away; at other times I will reply when I get a chance.
+
You can contact me by email or Teams or come to my office during the hours I am normally there. If you want to be sure I am there you can sign up for an appointment. Note that I normally am available for online meetings MTWR 8-10pm as well. If you would like to meet in person you should reserve an appointment using http://cs.indstate.edu/jkinne-meeting to reserve an in person meeting with Jeff Kinne. I am normally in my office during my listed office hours, but by making an appointment you can be more certain.  
  
 
==Canvas==
 
==Canvas==
The course has a canvas site. Click https://indstate.instructure.com/ to go to canvas. You should see this course listed under your courses for the current term. If you don't you may need to click on the Courses icon and then click the "All courses" link. The canvas site is used for giving you your grades, for quizzes/exams, and for getting to online lectures (which are done using Zoom). Announcements will be sent through canvas and to your university email. Links and such will be kept on this website.
+
The course has a canvas site. Click https://indstate.instructure.com/ to go to canvas. You should see this course listed under your courses for the current term. If you don't you may need to click on the Courses icon and then click the "All courses" link. The canvas site is used for giving you your grades, for quizzes/exams, for getting to online lectures (which are done using Zoom), and for posting announcements. Links and such will be kept on this website.
  
 
==Lectures (using Zoom) ==
 
==Lectures (using Zoom) ==
 
Here at ISU section numbers starting with the number 3 (e.g.3xx: 301, 302, etc.) are generally online sections. There are 2 types of online sections, synchronous online and asynchronous online. Sections that are synchronous should be joined at the regularly scheduled time of the course, whereas sections that are asynchronous generally keep up with the material independently without regularly scheduled meetings. In general async sections are more difficult to stay on top of, and require a great deal of self-discipline (it is much easier to think "I can watch the videos tomorrow" and just get behind). So if you are in one of these sections make sure you get off to a strong start, and ask for help sooner rather than later. If you are in an online section, check your course schedule for course meeting times; if you have a meeting time, then your section is synchronous, otherwise it is asynchronous (or there is an error in the system).
 
Here at ISU section numbers starting with the number 3 (e.g.3xx: 301, 302, etc.) are generally online sections. There are 2 types of online sections, synchronous online and asynchronous online. Sections that are synchronous should be joined at the regularly scheduled time of the course, whereas sections that are asynchronous generally keep up with the material independently without regularly scheduled meetings. In general async sections are more difficult to stay on top of, and require a great deal of self-discipline (it is much easier to think "I can watch the videos tomorrow" and just get behind). So if you are in one of these sections make sure you get off to a strong start, and ask for help sooner rather than later. If you are in an online section, check your course schedule for course meeting times; if you have a meeting time, then your section is synchronous, otherwise it is asynchronous (or there is an error in the system).
 
This course has a 301 section (synchronous online) and 001 section (face to face). Students in either section can participate in whatever way you need to.
 
  
 
For ISU's links to information on getting started with Zoom, see https://indstate.teamdynamix.com/TDClient/1851/Portal/KB/ArticleDet?ID=107534. You can also see the information linked at https://www.indstate.edu/services/student-success/cfss. You will get to the lectures for this course by going to Canvas, select this course, click Modules on the menu on the left, and click on the Zoom module. Once there you should see a schedule of lectures and be able to view recorded lectures. Note that you should install the Zoom application for your computer, and you will need to be logged into to Zoom with your ISU credentials to be able to connect. Also note that the lectures are recorded and only available to those in our class. Recorded lectures normally appear later the same day as the lecture.
 
For ISU's links to information on getting started with Zoom, see https://indstate.teamdynamix.com/TDClient/1851/Portal/KB/ArticleDet?ID=107534. You can also see the information linked at https://www.indstate.edu/services/student-success/cfss. You will get to the lectures for this course by going to Canvas, select this course, click Modules on the menu on the left, and click on the Zoom module. Once there you should see a schedule of lectures and be able to view recorded lectures. Note that you should install the Zoom application for your computer, and you will need to be logged into to Zoom with your ISU credentials to be able to connect. Also note that the lectures are recorded and only available to those in our class. Recorded lectures normally appear later the same day as the lecture.
Line 236: Line 167:
 
If you are participating online, please see the information at https://www.indstate.edu/services/student-success/cfss about participating in online courses. You are expected to either join lectures live through Zoom or watch the recordings once they are available. You will complete assignments, quizzes, and exams on the same schedule as the rest of the class. For quizzes and exams you will normally have a 24 hour period during which to take the quiz/exam (note that different students will have slightly different questions and any communication between students about quiz/exam content is academic misconduct).
 
If you are participating online, please see the information at https://www.indstate.edu/services/student-success/cfss about participating in online courses. You are expected to either join lectures live through Zoom or watch the recordings once they are available. You will complete assignments, quizzes, and exams on the same schedule as the rest of the class. For quizzes and exams you will normally have a 24 hour period during which to take the quiz/exam (note that different students will have slightly different questions and any communication between students about quiz/exam content is academic misconduct).
  
For attendance when you are not in the room... If joining by zoom, you need to post a comment in the chat to say if you have any questions about the current assignments, reading, the last lecture, etc. If watching the lecture later, you need to watch it before the next lecture and send me a message by Teams or email saying if you have any questions or want any more examples about a particular topic. So, if not in the room, you have to participate at least as much as "no questions from me right now" to get credit for attendance. Also, if joining by zoom, please set a profile picture so that I will see a picture of you in the list of zoom participants (like mine); or leave your video on - in either case, so I can associate a face with the name; if you have a good reason to not do either of these let me know.
+
For attendance when you are not in the room... If joining by zoom, you need to post a comment in the chat to say if you have any questions about the current assignments, reading, the last lecture, etc. If watching the lecture later, you need to watch it before the next lecture and send me a message by Teams or email saying if you have any questions or want any more examples about a particular topic. So, if not in the room, you should participate at least as much as "no questions from me right now". Also, if joining by zoom, please set a profile picture so that I will see a picture of you in the list of zoom participants (like mine); or leave your video on - in either case, so I can associate a face with the name; if you have a good reason to not do either of these let me know.
  
 
=ISU Required Syllabus Items=
 
=ISU Required Syllabus Items=
 
The items in this section are required and are the same for every ISU course.
 
The items in this section are required and are the same for every ISU course.
 
==COVID-19 Information==
 
Information specific to CS courses - [[Start of Term Announcements]]
 
 
''Standard ISU language required in all syllabi (read this all once, then skim for your other courses)...''
 
 
 
Students are expected to adhere to course attendance policies, as stated in the course syllabus. Documented COVID-related absences will be treated like any other serious medical issue. Following University policy, students with a documented, serious medical issue must contact the Office of the Dean of Students for assistance. The Office of the Dean of Students will supply documentation for faculty. Students with a documented serious medical issue should not be penalized and will be given a reasonable chance to complete exams or assignments. Once notification is made, faculty will make reasonable efforts to accommodate the student’s absence and will communicate that accommodation directly to the student. Please note that faculty are not required to accommodate a serious medical issue with virtual content options, like streaming or recorded lectures. To avoid the potential of missing significant class time, students are strongly encouraged to receive the COVID vaccination that has been made available on campus. For more information about the vaccines or to find a vaccination site, go to: https://ourshot.in.gov. The ISU Health Center also administers COVID-19 vaccines by appointment.
 
 
Students should contact the Office of the Dean of Students with questions by calling 812-237-3829.
 
 
The information provided in this section of the syllabus is subject to modification based on guidance by public health authorities. Changes to Covid-related policies or updated information will, as always, be posted on the ISU website and communicated in multiple ways.
 
  
 
==Special Needs / Disability Services==
 
==Special Needs / Disability Services==
Line 260: Line 179:
 
Once a faculty member is notified by Student Support Services that a student is qualified to receive academic accommodations, a faculty member is obligated to provide or allow a reasonable classroom accommodation under ADA.
 
Once a faculty member is notified by Student Support Services that a student is qualified to receive academic accommodations, a faculty member is obligated to provide or allow a reasonable classroom accommodation under ADA.
  
==Disclosures Regarding Sexual Misconduct==
+
==Non-Discrimination, Harassment, and Sexual Misconduct==
 
''Standard ISU language required in all syllabi...''
 
''Standard ISU language required in all syllabi...''
  
Indiana State University Policy 923 strictly prohibits discrimination on the basis of: age, disability, genetic information, national origin, pregnancy, race/color, religion, sex, gender identity or expression, sexual orientation, veteran status, or any other class protected by federal and state statutes in ISU programs and activities or that interferes with the educational or workplace environment.
+
Indiana State University is committed to inclusive excellence. To further this goal, the university does not tolerate discrimination in its programs or activities on the basis of: race, color, national origin, gender, age, sexual orientation, gender identity or expression, disability, veteran status, or any other protected class. Title IX of the Educational Amendments of 1972 in particular prohibits discrimination based on sex in any educational institution that receives federal funding. This includes sexual violence, sexual misconduct, sexual harassment, dating violence, domestic violence, and stalking. If you witness or experience any form of the above discrimination, you are asked to report the incident immediately to Public Safety: 812-237-5555 or to The Office of Equal Opportunity & Title IX: 812-237-8954. With respect to sexual discrimination, instructors, faculty, and some staff are required by law and institutional policy to report what you share with them to The Office of Equal Opportunity & Title IX. You do, however, have the option of sharing your information with the following confidential resources on campus:
 
+
* Student Counseling Center: 812-237-3939; Gillum Hall, 2nd Floor
Title IX of the Educational Amendments of 1972 prohibits discrimination based on sex, including sexual harassment. Sexual harassment includes quid pro quo harassment, unwelcome verbal or physical conduct, sexual assault, dating violence, domestic violence, and stalking.
+
* Victim Advocate: 812-237-3849 or 812-243-7272 (cell); HMSU 8th Floor
 
 
If you witness or experience any forms of the above discrimination, you may report to:
 
 
 
''Office:'' Equal Opportunity & Title IX; (812) 237-8954; Rankin Hall, Room 426 <br>
 
''Email:'' ISU-equalopportunity-titleix@mail.indstate.edu <br>
 
''Online:'' https://cm.maxient.com/reportingform.php?IndianaStateUniv&layout_id=10
 
  
Disclosures made to the following confidential campus resources will not be reported to the Office of Equal Opportunity and Title IX:<br>
+
For more information about discrimination and the support resources available to you visit the Office of Equal Opportunity and Title IX website. Please direct any questions or concerns to: Title IX Coordinator; 812-237-8954; Rankin Hall 426; ISU-equalopportunity-titleix@indstate.edu.
''ISU Student Counseling Center:'' (812) 237-3939; Gillum Hall, 2nd Floor <br>
 
''Victim Advocate:'' (812) 237-3829; HMSU 7th Floor <br>
 
''UAP Clinic/ISU Health Center:'' (812) 237-3883; 567 N. 5th Street
 

Latest revision as of 22:11, 18 August 2024

CS 151 Introduction to Computer Science is taken by CS majors after CS 101 or passing a placement exam.

This page contains the syllabus for Jeff Kinne's section of CS 151 for the most recent offering (fall 2023).

For Devon Kinne's section of CS 151, check in Canvas - Devon's syllabus, assignments, etc. are kept in your section of the course in Canvas.

Note that both sections of the course will use the same homeworks and lab assignments. Quizzes and exams may be slightly different.

General Information

Course website - https://cs.indstate.edu/wiki/index.php/CS_151

Your Instructor

Jeff Kinne, jkinne@cs.indstate.edu
Office: Root Hall A-142 and in Microsoft Teams, phone 812-237-2126
Instructor Office Hours: M 12-2:30pm; TR 9:30am-2:30pm; WF 2-2:30pm

Lecture, Exam

Lecture: MWF 9-9:50am in Root Hall A-019, over Zoom (link in Canvas, see below), and recorded
Mid-term exam: TBA
Final exam: Wednesday, May 8, 8-9:50pm

Prerequisites - B- or better in CS 101 or departmental placement exam.

CRN numbers - 10673

Required text We will use selections from the following free online sources.

Class notes - Notes during class will mostly be kept in the documents in this OneDrive folder. Note that you will need to authenticate with your ISU account to view the folder. Some files from lecture may be kept at https://cs.indstate.edu/~cs151/ which can also be seen when you are logged into the terminal by doing: cd ~cs151/public_html/.

Announcements/Assignments/Quizzes

HW and Labs These are posted in Canvas and on the CS server. HWs are due Mondays at 7:59am, Labs are due Fridays at 11:59pm. All times are Eastern US time.

Quizzes Will normally be taken Fridays at 9:30am. Some will be in Canvas. Some will be on paper.

Announcements Announcements will normally be posted to the course in Canvas.

Course Description and Content

Course Description

The official description of this course from the catalog is

"Core concepts that are foundational in computer science, including programming, use of computers for dealing with files and programs, how data is stored, number systems. Focus on building skills needed for programming and further study of computer science, and intermediate mastery of a particular programming language."

Course Outline

This course outline is subject to change. We will follow along with the other section of CS 151 but may add some additional topics.

Weeks 1-6

  • Setup accounts
  • Intro to Linux
  • Variables
  • I/O
  • Flow Control
  • If-statements
  • Turtle
  • Loops
  • Exam 1

Weeks 7-14

  • Functions
  • Chapter 4 - Lists
  • Chapter 5 - Collections
  • Chapter 6 - Strings
  • Bits, Bytes, Base and Logic
  • Intro to algorithms
  • Chapter 9 & 10 (Files)
  • Exam2

Week 15-16

  • Final project and interviews

Learning Outcomes

  • Able to use Linux systems and terminal - managing files, running code, using utility programs.
  • Basic mastery of core programming concepts - data types, conditionals and loops, Boolean logic, functions, string operations, reading and writing files. In particular,
  • Can take a specification and produce code implementing it.
  • Can take code and "play computer" to determine the precise results of running the code on a given input.
  • Can take a partially complete program and specification for how it should work, and complete it.
  • Can take a program with syntax or logical errors and fix the errors.
  • Understanding of good coding style and able to practice good coding style - use of functions to avoid redundant code, whitespace formatting, variable and function names, comments.
  • Understanding of base systems, including ability to convert between binary, hex, octal, and decimal.
  • Understanding of and ability to explain different file types - text versus binary.
  • Able to read and write data with programs, including parsing simple file formats (e.g., csv).
  • Understanding of sorting algorithms - able to "play computer" to execute sorting algorithms that were covered in class on small test cases.

Course Policies, Grading

See Jeff Kinne Course Policies for course policies and how your overall letter grade will be determined.

Assignments

Start Assignments and Quiz Studying Early - I suggest attempting an assignment the day it is given, or the day after, so that if you have a problem you can ask early. If you continue to have problems in trying to complete the assignment, you will have time to ask again. Many of the assignments require thought and problem solving, which takes "time on the calendar" not just "time on the clock". By that I mean that spending an hour on 3 consecutive days is likely to be more productive than trying to spend 3 hours at once on the assignment.

Expected Amount of Work - If you take this class seriously and get what you should out of it, some weeks you will likely be spending around 6-10 hours or more on the class. The students who get A’s in their CS courses and have an easy time finding jobs do spend this much time on this course. Not everyone would need to spend this much time and not all weeks will be the same, but you should plan on putting in whatever time it takes. Note that the federal government definition of 1 credit hour as requiring 2 hours worth of time on the course for each credit hour of lecture, so you should think of this as the default for all of your courses.

Note - your classes should be more important than your part-time job.

Each week, you will be having 3 regularly scheduled assignments:

  • Quiz – this is based off of the reading and Monday lecture material. Fridays at the end of class. Quizzes cannot be made up.
  • Smaller lab assignment – This lab assignment will be a smaller assignment and due by Friday at 11:59pm. This will typically be submitted on the CS server. This assignment counts towards your Lab grade.
  • Bigger programming assignment – This programming assignment will be a little larger in content, and will be submitted on the CS server. This counts towards your Homework grade. It will be due by Monday morning at 7:59am

Checkpoint assignments – In CS 151, the first assignment (allAboutLinux) is a “checkpoint” assignment. This assignment must be completed and receive a 100% to pass the course. You must complete the first assignment by specified due date, and receive a 100% on the assignment. You may resubmit the assignment multiple times to try to receive 100%, but you must have 100% by the specified due date.

Why? There will be some key points where if you fall behind too much then there would not be much hope of passing. Key checkpoints are set to make sure you at least keep up the minimum amount needed.

Grade Meanings

The letter grades are intended to have the following rough meaning. The list of achievements needed for each was chosen with this in mind.

  • A+/A: You understand everything and probably could teach the course yourself.
  • B+/A-: You understand nearly everything, and should be all set to use this knowledge in other courses or in a job.
  • C/C+/B-/B: Some things you understand very well and others you don't (more towards the former for a B and more towards the latter for a C).
  • D-/D+/C-: You did put some effort in, and understand many things at a high level, but you haven't mastered the details well enough to be able to use this knowledge in the future.
  • F: Normally, students that get an F simply stopped doing the required work at some point.

CS-Specific Items

This section contains items that are generally the same for all CS courses (and in particular those taught by this instructor).

Lab Help

We have a few lab assistants who are available to help students in beginning computer science courses. Please see https://cs.indstate.edu/wiki/index.php/Unix_Lab_and_Help for details. The lab hours are in a calendar on the CS homepage, at http://cs.indstate.edu/info/index.php#lab_hours. You can join the lab when working on your programs. You can ask the lab assistants to look at your programs, and you can work with any other CS students that are there (you could use the lab as a regular meeting place to work with your classmates).

Course Announcements

Announcements regarding the course will be made both during class and in Canvas. You should make sure your settings are such that you will be notified of these announcements (e.g., by email). You should regularly check your ISU email account or have it forwarded to an account that you check regularly. You can set the account to forward by logging into your indstate.edu email online (if you aren't able to find the option, try a different browser or search online for things like - outlook online forward email setting).

Classroom conduct

You may not use cell phones, iPods/music players, etc. during class. You should be civil and respectful to both the instructor and your classmates, and you should arrive to class a few minutes before the scheduled lecture so you are ready for lecture to begin on time. You may use your computer during class if you are using it to follow along with the examples that are being discussed. You should avoid spending time on email, Facebook, work on other courses, etc. during the lecture for this class (be fully present wherever you are, make the most of each experience).

Academic Integrity

See also Jeff Kinne Course Policies for additional information for more specifics about how I am handling these things for this course.

Please follow these guidelines to avoid problems with academic misconduct in this course:

Homework: You may discuss the homework assignments, but should solve and finish them on your own. To make sure you are not violating this, if you discuss with someone, you should DESTROY any work or evidence of the discussion, go your separate ways, SPEND at least an hour doing something completely unrelated to the assignment, and then you should be able to RECREATE the program/solution on your own, then turn that in. If you cannot recreate the solution on your own, then it is not your work, and you should not turn it in.

Note on sources: if you use some other source, the web or whatever, you better cite it! Not doing so is plagiarism. You should not be directly copy/pasting without prior approval; if you have approval you need to give a citation right at the point where it is used (i.e., in a comment).

Exams: This should be clear - no cheating during exams. Each instructor has different rules for what is allowed on exams in terms of notes, etc. If not noted otherwise, you should assume that a quiz or exam is closed notes, no computer, no calculator.

Projects: You should not copy from the Internet or anywhere else. The project should be your own work. It will be fairly obvious to me if you do copy code from the Internet, and the consequences will be at the least a 0 on the project. If cheating is observed, you will at the least receive a 0 for the assignment (and may receive an F for the course), and I will file a Notification of Academic Integrity Violation Report with Student Judicial Programs, as required by the university's policy on Academic Integrity. A student who is caught cheating twice (whether in a single course or different courses) is likely to be brought before the All University Court hearing panel, which can impose sanctions up to and including suspension/expulsion. See http://www.indstate.edu/sjp/docs/code.pdf and http://www.indstate.edu/academicintegrity/ for more information.

Please ask the instructor if you have doubts about what is considered cheating in this course.

Office hours

You can contact me by email or Teams or come to my office during the hours I am normally there. If you want to be sure I am there you can sign up for an appointment. Note that I normally am available for online meetings MTWR 8-10pm as well. If you would like to meet in person you should reserve an appointment using http://cs.indstate.edu/jkinne-meeting to reserve an in person meeting with Jeff Kinne. I am normally in my office during my listed office hours, but by making an appointment you can be more certain.

Canvas

The course has a canvas site. Click https://indstate.instructure.com/ to go to canvas. You should see this course listed under your courses for the current term. If you don't you may need to click on the Courses icon and then click the "All courses" link. The canvas site is used for giving you your grades, for quizzes/exams, for getting to online lectures (which are done using Zoom), and for posting announcements. Links and such will be kept on this website.

Lectures (using Zoom)

Here at ISU section numbers starting with the number 3 (e.g.3xx: 301, 302, etc.) are generally online sections. There are 2 types of online sections, synchronous online and asynchronous online. Sections that are synchronous should be joined at the regularly scheduled time of the course, whereas sections that are asynchronous generally keep up with the material independently without regularly scheduled meetings. In general async sections are more difficult to stay on top of, and require a great deal of self-discipline (it is much easier to think "I can watch the videos tomorrow" and just get behind). So if you are in one of these sections make sure you get off to a strong start, and ask for help sooner rather than later. If you are in an online section, check your course schedule for course meeting times; if you have a meeting time, then your section is synchronous, otherwise it is asynchronous (or there is an error in the system).

For ISU's links to information on getting started with Zoom, see https://indstate.teamdynamix.com/TDClient/1851/Portal/KB/ArticleDet?ID=107534. You can also see the information linked at https://www.indstate.edu/services/student-success/cfss. You will get to the lectures for this course by going to Canvas, select this course, click Modules on the menu on the left, and click on the Zoom module. Once there you should see a schedule of lectures and be able to view recorded lectures. Note that you should install the Zoom application for your computer, and you will need to be logged into to Zoom with your ISU credentials to be able to connect. Also note that the lectures are recorded and only available to those in our class. Recorded lectures normally appear later the same day as the lecture.

Note that if you have not used Zoom with your ISU account previously, you need to go to https://indstate-edu.zoom.us and login with your ISU email address and password to get it setup.

Participating online

If you are participating online, please see the information at https://www.indstate.edu/services/student-success/cfss about participating in online courses. You are expected to either join lectures live through Zoom or watch the recordings once they are available. You will complete assignments, quizzes, and exams on the same schedule as the rest of the class. For quizzes and exams you will normally have a 24 hour period during which to take the quiz/exam (note that different students will have slightly different questions and any communication between students about quiz/exam content is academic misconduct).

For attendance when you are not in the room... If joining by zoom, you need to post a comment in the chat to say if you have any questions about the current assignments, reading, the last lecture, etc. If watching the lecture later, you need to watch it before the next lecture and send me a message by Teams or email saying if you have any questions or want any more examples about a particular topic. So, if not in the room, you should participate at least as much as "no questions from me right now". Also, if joining by zoom, please set a profile picture so that I will see a picture of you in the list of zoom participants (like mine); or leave your video on - in either case, so I can associate a face with the name; if you have a good reason to not do either of these let me know.

ISU Required Syllabus Items

The items in this section are required and are the same for every ISU course.

Special Needs / Disability Services

Standard ISU language required in all syllabi...

Indiana State University recognizes that students with disabilities may have special needs that must be met to give them equal access to college programs and facilities. If you need course adaptations or accommodations because of a disability, please contact us as soon as possible in a confidential setting either after class or in my office. All conversations regarding your disability will be kept in strict confidence. Indiana State University's Student Support Services (SSS) office coordinates services for students with disabilities: documentation of a disability needs to be on file in that office before any accommodations can be provided. Student Support Services is located on the lower level of Normal Hall in the Center for Student Success and can be contacted at 812-237-2700, or you can visit the ISU website under A-Z, Disability Student Services and submit a Contact Form. Appointments to discuss accommodations with SSS staff members are encouraged.

Once a faculty member is notified by Student Support Services that a student is qualified to receive academic accommodations, a faculty member is obligated to provide or allow a reasonable classroom accommodation under ADA.

Non-Discrimination, Harassment, and Sexual Misconduct

Standard ISU language required in all syllabi...

Indiana State University is committed to inclusive excellence. To further this goal, the university does not tolerate discrimination in its programs or activities on the basis of: race, color, national origin, gender, age, sexual orientation, gender identity or expression, disability, veteran status, or any other protected class. Title IX of the Educational Amendments of 1972 in particular prohibits discrimination based on sex in any educational institution that receives federal funding. This includes sexual violence, sexual misconduct, sexual harassment, dating violence, domestic violence, and stalking. If you witness or experience any form of the above discrimination, you are asked to report the incident immediately to Public Safety: 812-237-5555 or to The Office of Equal Opportunity & Title IX: 812-237-8954. With respect to sexual discrimination, instructors, faculty, and some staff are required by law and institutional policy to report what you share with them to The Office of Equal Opportunity & Title IX. You do, however, have the option of sharing your information with the following confidential resources on campus:

  • Student Counseling Center: 812-237-3939; Gillum Hall, 2nd Floor
  • Victim Advocate: 812-237-3849 or 812-243-7272 (cell); HMSU 8th Floor

For more information about discrimination and the support resources available to you visit the Office of Equal Opportunity and Title IX website. Please direct any questions or concerns to: Title IX Coordinator; 812-237-8954; Rankin Hall 426; ISU-equalopportunity-titleix@indstate.edu.