CSC 243 Introduction to Computer Science for Programmers

Eric Schwabe

Office: CDM 739
Spring 2022-2023
Class number: 39987
Section number: 601
MW 3:10PM - 4:40PM
CDM 00226 Loop Campus
Course homepage:


Course Description: An accelerated course covering the essentials of programming, with a focus on problem-solving, structured programming, and algorithm design. The concepts covered include collection types, conditional and iterative structures, functions, file input/output, exceptions, namespaces, recursion, and Internet client programming. Students are expected to have successfully completed at least one high-level, object-oriented programming class prior to enrollment.

Learning Goals: This course covers most of the material from CSC 241: Introduction to Computer Science I and selected topics from CSC 242: Introduction to Computer Science II in one quarter. As such, it is a course that should not be taken by novice programmers. At the same time, it is a course that is too fundamental for anyone who has already had a data structures class or has developed a significant number of recursive functions. If you're not sure about your placement in this class, please consult with the instructor as soon as possible.

After you have taken this class:

  • You will understand that a main focus of computer science is developing applications for computer systems.
  • You will have stronger problem-solving skills.
  • You will know how to develop algorithmic solutions for computational problems.
  • You will understand fundamental Python programming structures such as decision and iteration structures, functions, modules, collections, and classes from the API.
  • You will be able to apply recursion as a problem-solving and programming technique.
  • You will understand how to use and modify programmer-defined classes.
  • You will be able to write simple Internet client programs.

Approximate weekly schedule (subject to change):

Weeks 1-2: Python programs, Python data types, functions and methods (Chs. 1-3)
Weeks 3-4: Branching and looping, formatting and File I/O (Chs. 3-5)
Week 5: Additional Python data types (Ch. 6)
Weeks 6-7: Recursion (Ch. 10)
Weeks 8-9: User-defined classes (Ch. 8)
Weeks 9-10: Web search and/or Databases (Chs. 11-12)


Required Text: Introduction to Computing Using Python: An Application Development Focus (second edition), by Ljubomir Perkovic, ISBN 978-1-118-89105-6.  (E-book version is recommended.)


There will be homework assignments given most weeks.  Assignments (with associated readings) will be posted on the course web site and submissions will be due one week later, unless otherwise noted.  The homework assignments will be worth a total of 25% of the course grade.  It is your responsibility to verify that your submitted files are readable, submitted on time, and submitted to the correct locations. All submissions must be made through the course web site; emailed submissions will not be accepted.  Late submissions of homework assignments will be accepted for up to 24 hours with a 15% penalty.  Your lowest homework score will be dropped in the computation of your course grade.

There will be a midterm exam given in class on Monday, May 1st that will be worth 35% of the course grade and a final exam given 2:30pm-4:45pm on Monday, June 5th that will be worth 40% of the course grade.  The final exam will cover material from the entire quarter. If you do not take both the midterm and final exams, you will automatically receive a grade of F for the course.  Furthermore, everyone must take the midterm and final exams at the scheduled times – as a rule, no make-up exams will be given. If you wish to petition for a make-up exam in an emergency situation, you must contact me in advance and provide written documentation of the emergency.


In order to take this class, you are required to have taken MAT 130: Precalculus or an equivalent high-school or college course covering algebra and precalculus. You also should have successfully completed (with a grade of B- or better) at least one quarter/semester of a high-level, object-oriented programming language such as Java or C++.

Other Course Policies

Academic Integrity:  This course is subject to the university's academic integrity policy. More information can be found at  Violations of the Academic Integrity Policy will be dealt with decisively; in particular, penalties for cheating, plagiarism, and/or complicity as defined in the policy may range up to an automatic F in the course and possible expulsion for repeated offenses.

Plagiarism includes, but is not limited to:  Turning in another person’s work as your own (including hiring someone else to complete an assignment for you); Starting with another person’s work and modifying it to turn in as your own; Cutting and pasting, or otherwise copying, sections of another person’s work into your assignment; Allowing another person (such as a tutor) to write any part of your assignment; and so on.  (Examples that I post, as well as any code obtained from a chat bot, generative AI system, or automated code generator are all considered “another person’s work”.)  Supplying such assistance to another student is also considered a violation of the policy. 

You may always discuss the course material with other students, and you may also discuss assignments at a general level.  However, when completing your assignments, you must work individually and neither share your solutions with others nor consult others’ solutions.  Any assignment you submit must be entirely your own individual work.

Email Communication:  Please begin the subject line of any email to me with “CSC 242”, so that I can easily identify course-related messages.  I will reply to email messages within one business day after I receive them; therefore, questions that are only received by me on an assignment’s due date are not guaranteed replies before the assignment is due.  Please plan accordingly and begin the assignments early enough to ask questions and receive answers.  If you are having problems, send me a detailed description of the problems you are having; I will guide you in locating and solving your problems yourself, rather than simply solve your problems for you.  For general questions, please consult the course syllabus, course announcements, and course Discord server for answers before emailing me.  Please do not use the comment field of the assignment submission system to send me questions. 


School policies:

Changes to Syllabus

This syllabus is subject to change as necessary during the quarter. If a change occurs, it will be thoroughly addressed during class, posted under Announcements in D2L and sent via email.

Online Course Evaluations

Evaluations are a way for students to provide valuable feedback regarding their instructor and the course. Detailed feedback will enable the instructor to continuously tailor teaching methods and course content to meet the learning goals of the course and the academic needs of the students. They are a requirement of the course and are key to continue to provide you with the highest quality of teaching. The evaluations are anonymous; the instructor and administration do not track who entered what responses. A program is used to check if the student completed the evaluations, but the evaluation is completely separate from the student’s identity. Since 100% participation is our goal, students are sent periodic reminders over three weeks. Students do not receive reminders once they complete the evaluation. Students complete the evaluation online in CampusConnect.

Academic Integrity and Plagiarism

This course will be subject to the university's academic integrity policy. More information can be found at If you have any questions be sure to consult with your professor.

All students are expected to abide by the University's Academic Integrity Policy which prohibits cheating and other misconduct in student coursework. Publicly sharing or posting online any prior or current materials from this course (including exam questions or answers), is considered to be providing unauthorized assistance prohibited by the policy. Both students who share/post and students who access or use such materials are considered to be cheating under the Policy and will be subject to sanctions for violations of Academic Integrity.

Academic Policies

All students are required to manage their class schedules each term in accordance with the deadlines for enrolling and withdrawing as indicated in the University Academic Calendar. Information on enrollment, withdrawal, grading and incompletes can be found at

Students with Disabilities

Students who feel they may need an accommodation based on the impact of a disability should contact the instructor privately to discuss their specific needs. All discussions will remain confidential.
To ensure that you receive the most appropriate accommodation based on your needs, contact the instructor as early as possible in the quarter (preferably within the first week of class), and make sure that you have contacted the Center for Students with Disabilities (CSD) at:
Lewis Center 1420, 25 East Jackson Blvd.
Phone number: (312)362-8002
Fax: (312)362-6544
TTY: (773)325.7296