CS510 and CS 101 Fundamentals of Computing Spring 2021: Difference between pages

From Computer Science at Indiana State University
(Difference between pages)
Jump to navigation Jump to search
m 1 revision imported
 
m 1 revision imported
 
Line 1: Line 1:
This page contains the syllabus for CS 510 and is used to keep track of assignments, etc. <br>
== Catalog Description ==
(this syllabus heavily authored by Jeff Kinne. Updated by Xavier Saunders)<br>
The main focus of the course is to give students a practical understanding of computing to become well-informed citizens and professionals in the computing age.  Topics may include a basic study of - computational thinking, computer security, big data, artificial intelligence, and current trends in computing.
<br>
CS 510 is Fast Track Introduction to Programming.  The course has no pre-reqs (can be taken by those with no prior CS or programming experience) and is meant to (a) get you programming (in python), and (b) get you ready to pass the admissions interview (python programming and basic algorithms / data structures). CS 510 counts as elective credit towards the MS degree. The course is meant for current ISU students in non-CS programs and for potential incoming CS MS students who need the course to get ready for the CS MS.


For more information on applying to the CS MS program, see http://cs.indstate.edu/info/apply.html
== Prerequisites ==
Typing and basic computer use - web browser, email, etc.


=Who Should Register=
== Standard Content ==
'''Current ISU Students: '''
===Course Outline ===
For ISU grad students who are in non-CS programs, if you do not have much programming experience, CS 510 is your best starting point in CS coursework.  If you are already a competent programmer in some language, then you likely would want to start with either [[CS 500]] or [https://cs.indstate.edu/~lmay1/courses/#/courses/cs401/home CS 501]. CS 500 is C and data structures and algorithms, while CS 501 is python and data science.
We will spend 1-2 weeks on each of the following topics:
* What is inside a computer: CPU, RAM, hard drive, etc.
* Internet 101: how data is moved around the internet
* Computer and internet security: how do you know your data is secure?
* Servers and such: logging into a server, transferring files
* Html basics: creating web pages, a little bit of javascript
* Block programming: scratch.mit.edu, code.org, blocky
* Computational problems: things computers can do really well, and things that are impossible for computers to solve
* Artificial intelligence: different meanings of the term, examples


'''Non-ISU Students: '''
===Learning Outcomes===
''Domestic students who are not quite ready to start the CS MS (or just aren't sure if they want to do a full MS) can [https://www.indstate.edu/cgps/graduate/apply/non-degree-application apply to ISU as a Guest/Unclassifed student]'' and take the course either face to face or online. To do this, click on the Apply button, click to create an account if this is your first time starting an application at ISU, choose Graduate when prompted between Graduate or Undergraduate, for the Field of Interest choose "Guest Admission / Unclassified", and for Program of Study choose "Guest Admission (One Semester Only)". Choose the term that you plan to take the course, and complete the remaining required fields.  
The following are the most important learning outcomes for each of the 8 topics listed in the course outline.
* What is inside a computer
* Name the different components that make up a computer.
* Describe what the terminology associated with a component means (e.g., Ghz for CPU’s is the speed of the CPU, GB for the size of a hard drive).
* Evaluate the tradeoffs between different components (e.g., one CPU versus another)
* Internet 101
* Explain the basic infrastructure of the internet and associated terminology.
* Explain the infrastructure of a home network, and be able to configure a home network.
* Explain how web browsing and email works, in terms of which parties are involved (e.g., server and client), where data is stored, and what communication is involved.
* Computer and internet security
* Explain the concepts of encryption/decryption, digital signing, and the difference between public-key and private-key encryption.
* For given situations, be able to say whether a given interaction is secure or not.
* Know the key terminology of internet security (e.g., rsa, sha, https, etc.).
* Servers and such
* Explain what servers are used for
* Be able to log in to a server to transfer files to a server, and login via ssh to issue commands to the server
* How is data stored on a server, and how do we access data
* Html basics
* Explain the basic structure of an html document, and understand that an html document is a plain text file that has markup tags to say how to display different parts of the webpage.
* Be able to create simple html webpages.
* Be able to put webpages onto a web server.
* Block programming
* Understand the concept of a computer program as instructions for the computer.
* Be able to design simple programs in a graphical programming environment (one where there is no possibility for syntax errors, e.g., scratch).
* Computational problems
* Explain some examples of computational problems, and understand how problems are framed (input to the problem, correct output, running time of finding the solution).
* Basic skills in evaluating efficiency of an algorithm.
* Explain some examples of computational problems that either cannot be solved, or require inordinate amount of time to solve (e.g., halting problem).
* Artificial intelligence
* Understand the concept of the “Turing test” as a test of artificial intelligence.
* Know the history of some famous examples of “artificial intelligence” (e.g., chess playing, Jeopardy playing, chat-bots).
* Explain some examples of artificial intelligence techniques (e.g., spam filtering, facial recognition, expert medical systems).


''International students outside of the US'' are not in general allowed to take courses online inside of the US without being enrolled in a degree program.  International persons who are in the US on a visa of some type might be allowed to take the course (in particular, those on F2 or H4 likely would be allowed). Those who cannot take courses at ISU can check back here for course info (sample quizzes, reading assignments, programming assignments, tutorials, etc.) that will be posted publicly throughout the fall 2023 term.
===Important Assignments and/or Exam Questions===
* ''TODO''


For those with no or little prior programming and CS experience, you are highly recommended to take this course to build your programming skills (and for those interested in a CS MS, to get you ready to apply to the CS MS program).
=== Standard resources ===
 
* The Beauty and Joy of Computing - course on CS Principles, including programming in SNAP
=General Course Information=
* Computer Science Principles - a similar course by Amit Jain at Boise State with much of the content online
'''Course website''' - https://cs.indstate.edu/wiki/index.php/CS_510
* Introduction to Computing - a similar course by Nick Parlante at Stanford with much of the content online
 
* HTML tutorial, CSS tutorial, More on CSS, Javascript tutorial
'''Your Instructor'''
* Introduction to Computing: Explorations in Language, Logic, and Machines by David Evans
 
* A Computer Science Tapestry by Owen Astrachan
[https://cs.indstate.edu/xsaunders/  Xavier Saunders], [http://mailto:xavier.saunders@indstate.edu xavier.saunders@indstate.edu] <br>
* Blown To Bits: Your Life, Liberty and Happiness After The Digital Explosion by Hal Abelson, Ken Leeden and Harry Lewis
''Office:'' In Person TBA and in Microsoft Teams, no phone number <br>
''Instructor Office Hours:'' TBA, TBA <br>
'''Lecture, Exam'''
 
''Lecture:'' Tuesday and Thursday  12:30-1:45 in person and Zoom(in Canvas, see below), and recorded<br>
''Mid-term exam:'' TBA <br>
''Final exam:''  TBA<br>
''Asynchronous students:'' For students who will be mostly participating asynchronously even though the course is being offered synchronously, it is best if you are able to watch the most recent lecture ''before'' the next one occurs. You should make note of any questions or comments and send them to me by email or Teams. I will start the next lecture by answering any questions/comments that came via email or Teams.
 
'''Prerequisites''' - none.
 
'''CRN numbers''' - 52482 , 52483
 
'''Required text'''
* We will use the following free online sources.
* For python - '''[https://runestone.academy/ns/books/published/thinkcspy/index.html How to Think Like a Computer Scientist] (aka "Think CS")''', [https://docs.python.org/3/ Python Official Documentation], [https://pandas.pydata.org/docs/ Pandas Official Documentation] ([https://pandas.pydata.org/docs/getting_started/intro_tutorials/index.html tutorial] [https://pandas.pydata.org/Pandas_Cheat_Sheet.pdf cheat sheet])
* For data structures and algorithms - '''[https://www.tutorialspoint.com/data_structures_algorithms/index.htm TutorialsPoint Data Structures and Algorithms]''', and we might supplement with the texts used in [[CS 500]].
* For math content - [https://mfleck.cs.illinois.edu/building-blocks/index-sp2020.html Building Blocks for Theoretical Computer Science] by Margaret M. Fleck, [https://courses.csail.mit.edu/6.042/spring18/mcs.pdf Mathematics for Computer Science] by Eric Lehman, F Thomson Leighton, and Albert R Meyer
* Additional sources - as needed.
** Datasets - [https://www.ncei.noaa.gov/cdo-web/datasets NOAA Weather Data] (specifically Daily Summaries / FTP). [https://www.ncei.noaa.gov/pub/data/ghcn/daily/by_station/USW00093814.csv.gz CVG]
** [https://biopython.org/wiki/SeqIO BioPython SeqIO]
** Jupyter - [https://www.ibm.com/docs/en/watson-studio-local/1.2.3?topic=notebooks-markdown-jupyter-cheatsheet markdown cheat sheet], [https://code.visualstudio.com/docs/datascience/jupyter-notebooks Jupyter in VS Code], [https://code.visualstudio.com/docs/datascience/data-science-tutorial Tutorial with VS Code and Data Science]
** Anaconda - install from [https://www.anaconda.com/products/distribution here]
 
'''Class notes''' - I may try to keep notes in OneNote, and they may be available PDF. A link will be here as soon as it is in working order. Note that you will need to authenticate with your ISU account to view the notebook.
 
'''Code from lectures''' - Some code from lectures will be at https://cs.indstate.edu/xsaunders/cs510/
 
'''Assignments and Announcements'''
Current Assignment, Announcements, and Notes are available on the class' canvas.
 
 
=Course Description and Content=
 
'''Course Description'''
 
The catalog description for this course is: "This is a first course in programming and computer science that is aimed at those with little to no previous experience in these areas. The main learning outcomes are proficiency in a useful and modern programming language and proficiency in basic data structures and algorithms. The course also prepares students to be ready to apply to the computer science master’s program. Notes: Not available to students with 9 or more CS graduate coursework."
 
The following is the compressed plan of the entire semester.
 
'''Course Outline'''
* Getting started - system setup, linux, math background, development on your personal computer.
* Python programming basics - operators, reserved words, data types, base systems, overflow.
* Python programming containers - strings, tuples, lists, dictionaries, sets.
* Python programming object-oriented
* Python programming style - good programming style for reliability, readability, extensibility, security.
* Data structures - understanding/use of most important data structures - arrays, linked lists, binary search trees, hash tables, heaps.  Implementation of some of these in Python.
* Algorithms - understanding/use of some basic algorithms - sorting (various), binary/linear search (and uses) - including some algorithms that are each of - greedy, heuristic, randomized, brute force / backtracking.
* Vocab - additional terms, algorithms, concepts at a shallow level.
 
'''Learning Outcomes'''
* System setup - personal computer setup for both remote (connecting to CS server with terminal, sftp, X windows) and local development (editor, compiler/interpreter).
* Linux - proficient using the Linux terminal for development.
* Math background - proficient in math background needed for data structures and algorithms.
* Personal computer - is setup for development so you can do coursework from your home computer as well.
* Python programming - understanding of most language features, proficient in writing code using the most common, write code using good programming style.
* Data structures - understanding of operations, efficiency, use cases, can use builtin python data structures and write python code for some data structures that are not included in python.
* Algorithms - understanding of basic algorithms, arguments for correctness and efficiency, can use the algorithms to solve problems efficiently.
 
=Grading and Assignments=
 
We will be doing what I am calling "achievements-based" grading. There are a series of skills, knowledge, and experiences that I want you to achieve.  Your final letter grades will be based strictly on which of these you have completed.  For each achievement, you can achieve the rating of incomplete, pass-, pass, pass+.  The following will be our starting point for how letter grades will be assigned. I will reevaluate this throughout the term to make sure we are on track. I will also be setting the standards for pass-, pass, and pass+ for each of the achievements as we get to them in the course.
 
'''C - lowest passing grade in a grad course'''
* Pass or higher achievement for ''all'' of the following
* Terminal text editors - basic use
* Linux terminal commands, files - basic use
* Math for CS basics (base systems, rules of exponents, logs, logic)
* Python - basic development in the terminal on the CS server
* Python - basic development on your personal computer
* Text editor - on your personal computer
* File transfers - between personal computer and CS server
* Python programming basics - knowledge of keywords, concepts, operators, evaluation of expressions
* Python programming containers - knowledge of basic operations on tuples, lists, sets, dictionaries
 
'''B - satisfactory'''
* In addition to the above...
* Object-oriented programming in python
* Python programming style - good programming style for reliability, readability, extensibility, security.
* Data structures - good understanding of how operations are implemented for - arrays, linked lists, binary search trees, hash tables, heaps. Able to properly "play computer" with these.
* Algorithms - good understanding of several linear and binary search, several sorting algorithms (including one efficient one).
* Vocab - some additional terms, algorithms, concepts at a shallow level.
 
'''A - good/excellent'''
* In addition to the above...
* Pass+ rating on most of the above
* Pass or higher achievement for ''all'' of the following
* Basic data structures from B level - can write python code to implement the data structures.
* Algorithms - can write python code to implement linear and binary search, several sorting algorithms (including one efficient one).
* Algorithms - good understanding of some algorithms for each of - greedy, heuristic, randomized, brute force / backtracking.
 
Achievements can be earned based on quizzes, assignments, in-class work, and exams. Rather than having numerical scores for these, I will use them to mark off your achievements. Note that achievements can be "lost" if you demonstrate a skill early in the term and then demonstrate a lack of the skill later in the term. I expect this will not normally be the case, but I will continue to evaluate you based on all of the skills throughout the term.
 
'''Late Work''' -
Assignments will generally be available to still handin for around a week after their due date.  Once the solutions are posted and discussed, late submissions will no longer be graded.  Quizzes will normally need to be taken on the day they are due, or perhaps within a few days of when they are due.  Solutions will normally be discussed or posted within a week of their due date.  Not accepting late work that is more than about a week old is in part because it takes much longer to grade quizzes/assignments that are no longer super fresh in the instructor's head, and in part to try to keep everyone in the class working on the same material. 
 
'''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''' -
My expectation is that an average student will spend about 4-8 hours OUTSIDE of class each week (that is in addition to class time or viewing lecture videos) WORKING PRODUCTIVELY/EFFICIENTLY (not just staring at the computer) to complete their coursework for this class. Some students may spend less time than this, and some students will spend more. If you find yourself spending the upper end of, or exceeding these hours contact me; bring your notes and study schedule.
 
This is the foundation for the rest of CS, so it definitely pays off to do your best here.
 
Note - please find a way to spend enough time on this class (the investment will pay off in terms of skills, being able to get a job, etc.).
 
'''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.  '''Note that the lowest grade for grad courses is a C, so if you fall in the range below C then your letter grade will be an F.'''
* 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).
 
==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==
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 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).
 
==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==
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.
 
''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 (using Teams)==
Office hours will be through Microsoft Teams by default. If you would like to meet in person you should reserve an appointment using outlook calendar. 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.
 
==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.
 
==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).
 
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.
 
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).
 
So also the General Information section at the top of this page for setting up a normal check-in time with the instructor.
 
=ISU Required Syllabus Items=
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: 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==
If I've not e-mailed you saying that this sentence doesn't apply to you, I've not recieved information from Student Support Services. If you believe I should have, check with me, student support services, or whatever relavent program.
''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.
 
==Disclosures Regarding Sexual Misconduct==
''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.
 
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.
 
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>
''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 13:22, 17 August 2025

Catalog Description

The main focus of the course is to give students a practical understanding of computing to become well-informed citizens and professionals in the computing age. Topics may include a basic study of - computational thinking, computer security, big data, artificial intelligence, and current trends in computing.

Prerequisites

Typing and basic computer use - web browser, email, etc.

Standard Content

Course Outline

We will spend 1-2 weeks on each of the following topics:

  • What is inside a computer: CPU, RAM, hard drive, etc.
  • Internet 101: how data is moved around the internet
  • Computer and internet security: how do you know your data is secure?
  • Servers and such: logging into a server, transferring files
  • Html basics: creating web pages, a little bit of javascript
  • Block programming: scratch.mit.edu, code.org, blocky
  • Computational problems: things computers can do really well, and things that are impossible for computers to solve
  • Artificial intelligence: different meanings of the term, examples

Learning Outcomes

The following are the most important learning outcomes for each of the 8 topics listed in the course outline.

  • What is inside a computer
  • Name the different components that make up a computer.
  • Describe what the terminology associated with a component means (e.g., Ghz for CPU’s is the speed of the CPU, GB for the size of a hard drive).
  • Evaluate the tradeoffs between different components (e.g., one CPU versus another)
  • Internet 101
  • Explain the basic infrastructure of the internet and associated terminology.
  • Explain the infrastructure of a home network, and be able to configure a home network.
  • Explain how web browsing and email works, in terms of which parties are involved (e.g., server and client), where data is stored, and what communication is involved.
  • Computer and internet security
  • Explain the concepts of encryption/decryption, digital signing, and the difference between public-key and private-key encryption.
  • For given situations, be able to say whether a given interaction is secure or not.
  • Know the key terminology of internet security (e.g., rsa, sha, https, etc.).
  • Servers and such
  • Explain what servers are used for
  • Be able to log in to a server to transfer files to a server, and login via ssh to issue commands to the server
  • How is data stored on a server, and how do we access data
  • Html basics
  • Explain the basic structure of an html document, and understand that an html document is a plain text file that has markup tags to say how to display different parts of the webpage.
  • Be able to create simple html webpages.
  • Be able to put webpages onto a web server.
  • Block programming
  • Understand the concept of a computer program as instructions for the computer.
  • Be able to design simple programs in a graphical programming environment (one where there is no possibility for syntax errors, e.g., scratch).
  • Computational problems
  • Explain some examples of computational problems, and understand how problems are framed (input to the problem, correct output, running time of finding the solution).
  • Basic skills in evaluating efficiency of an algorithm.
  • Explain some examples of computational problems that either cannot be solved, or require inordinate amount of time to solve (e.g., halting problem).
  • Artificial intelligence
  • Understand the concept of the “Turing test” as a test of artificial intelligence.
  • Know the history of some famous examples of “artificial intelligence” (e.g., chess playing, Jeopardy playing, chat-bots).
  • Explain some examples of artificial intelligence techniques (e.g., spam filtering, facial recognition, expert medical systems).

Important Assignments and/or Exam Questions

  • TODO

Standard resources

  • The Beauty and Joy of Computing - course on CS Principles, including programming in SNAP
  • Computer Science Principles - a similar course by Amit Jain at Boise State with much of the content online
  • Introduction to Computing - a similar course by Nick Parlante at Stanford with much of the content online
  • HTML tutorial, CSS tutorial, More on CSS, Javascript tutorial
  • Introduction to Computing: Explorations in Language, Logic, and Machines by David Evans
  • A Computer Science Tapestry by Owen Astrachan
  • Blown To Bits: Your Life, Liberty and Happiness After The Digital Explosion by Hal Abelson, Ken Leeden and Harry Lewis