CS 510 Fall 2022
For more information on applying to the CS MS program, see http://cs.indstate.edu/info/apply.html
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 would count as elective credit towards the MS degree.
Who should Register
Domestic students can 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.
International students can check back here for course info (sample quizzes, reading assignments, programming assignments, tutorials, etc.) that will be posted publicly throughout the fall 2022 term. 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).
For those with no or little prior programming and CS experience, you are highly recommended to take this course to get you ready to apply to the CS MS program. For international students, you can get some benefit by following along with the material that will be posted here.
The specific learning outcomes of the course are as follows.
Note that this is currently being populated. This statement will be removed when this section is in final draft form.
- Can install and competently use terminal programs (e.g., Putty, Terminal) to connect to remote linux servers.
- Can navigate the linux file system within the text-based terminal, including dealing with files and directories, copying files, setting file permissions.
- Can install and competently use file transfer programs (e.g., FileZilla, WinSCP, sftp) to move files between your personal computer and Linux servers.
- Can use a text editor (e.g. vim, emacs, nano, jove) within the terminal to edit text files (including programs).
- Have a basic understanding of the file structure and settings within Linux.
- Have a working knowledge of particular quirks of the ISU CS server, including the homework handin system.
See also Linux and CS Systems - Getting Started.
- Understanding how different base systems work, in particular binary, octal, decimal, and hexadecimal. Able to convert numbers between different base systems, and why these are important/useful in computing.
- Understanding of logarithms and exponentials, including the rules for using these, and their use in algorithm analysis.
- Know, can use, and can derive the formulas for arithmetic and geometric summations, and apply these in algorithm anslysis.
- Understanding of order of operations for algebraic/mathematical expressions and can evaluate expressions.
- Understanding of Boolean logic, can evaluate complicated Boolean expressions, can explain and derive truth tables for basic Boolean expressions, can apply DeMorgan's laws to Boolean expressions.
- Understanding of bitwise operations, can evaluate bitwise expressions.
See also Math for CS - Getting Started.
- Can install the Python programming language on your personal computer, download programs, open them in the default Python editor, and run them.
- Can edit and run python programs on the CS server through the terminal.
- Understanding of most of the contents of the python.org standard tutorial (https://docs.python.org/3/tutorial/index.html). Understand each topic, can "play computer" to similate on paper the execution of a program, and can use programming elements to solve problems.
- Conditional execution - if, else, elif.
- Loops - while, for, break, continue.
- Data types - integer, character/string, floating point, Boolean, None.
- Functions - defining new functions, evaluating programs that use many functions, using recursive functions, lambda functions.
- Input/output - reading/writing from/to the terminal and files.
- Containers - list, tuple, set, dictionary.
- Object-oriented / classes - understand how to create classes and use them for object-oriented programming in Python.
- Modules - use of some commonly used ones - math, random, sys, argparse, re, urllib, datetime.
- Modules - installing and using additional modules.
- Debugging - can debug relatively simple programs (e.g., less than 100 lines of code). Able to use a debugger as well as print debugging.
- Creativity - can solve problems that may require nested loops, file input/output, and don't need more than a roughly 100 line program to solve.
- Help - given a new (to you) python library function and a task to solve with it, able to use online help to design a program to solve the problem using the function.
See also Python Programming - Getting Started
Data Structures and Algorithms
Course content will be coming online later in summer 2022.