CS201
Problem
Solving
with Computers
Course
Description:
This
course provides an introduction to computer science and problem solving
using computers. Going beyond basic
computer literacy, it explores how information can be represented,
stored and manipulated by computers. Programming constructs (iteration,
functions, conditionals etc.) and software development concepts are
introduced in the context of solving problems. Students will gain
insights into how computer applications work and learn how to create
their own custom programs.
Text:
Introduction
to
Computing
and Programming in Python, A Multimedia Approach, 2/E
Mark
J.
Guzdial
and
Barbara Ericson
Supplemental
materials will be referred to as needed.
We
will
use commonly available software for our labs. The programming language
used in this class is Python,
a
real
language used
by
many organizations to solve real problems. We will use the Jython variation
adopted by our text through the JES (Jython Environment
for Students). Lecture is supplemented by twice weekly labs.
Outline:(tentative)
- Introduction to Computing
- information, process, computers, programming languages &
computer science
- office and web browsing software
- Introduction to Programming
- python, variables, encodings, entering & executing
programs,
functions
- MediaComputation
- pictures, pixels, RGB, iteration, code blocks, function
returns/side-effects, variable scope
- nested loops, working with arrays & matrices, ranges,
debugging strategies
- conditionals, draw vs pixel formats
- working with sounds, movies (optional)
- Building Larger Programs
- design strategies, program testing and debugging
- Working with Text and Data
- strings, files, standard libraries, accessing data from the
web, html, databases
- Topics in Computing (as time permits)
- compiler/interpreters, speed, recursion, object-oriented
programming
- GUI,
cloud and mobile computing
General Policies
Makeup's and incompletes will be given only in extreme circumstances.
You may feel free to discuss general concepts related to programming
problems but the actual solutions to the specific problems should be
worked out individually or within your group if given a group
assignment. Turn in assignments on time (late submissions may not be
accepted).
Use of cellphones in class is prohibited. Please silence ringers so
as not to disturb others. Come to class on time and contribute to class
discussions.
Course Requirements (tentative distribution)
- Labs, homeworks/exercises 40-60%
- Exams and Quizzes 40-60%
- Class participation/attendance may also be a portion of your grade
Failure to turn in homework or programming assignments can drastically
lower your grade. Please do these assignments conscientiously. Resolve
any issues pertaining to the grading of an exam/assignment within 1
week after
it is returned. All students should read the
Departmental
Policies on Academic Dishonesty.
Also note that the University has prepared an Emergency
Response
Guide. More information is available at SIUC's Department of Public
Safety .