CSC 242 Introduction to Computer Science II

Eric Schwabe

Office: CDM 739
Winter 2022-2023
Class number: 28814
Section number: 502L
M 11:50AM - 1:20PM
14EAS 00512 Loop Campus
Course homepage:


Course Description: An intermediate course in problem solving, algorithms and programming. Programming skills are further strengthened through more complex and larger programming assignments. The assignments will also be used to introduce different Computer Science areas (e.g. a Client/Server application for the Distributed Systems area). Classes and object-oriented programming are motivated and introduced.

Learning Goals: This course is the second of a two-course sequence introducing computer science skills, including problem solving, algorithm development, recursion, and programming using Python.  In this course, we will apply these skills in several application areas of computer science: graphical user interface (GUI) development, database development, and Internet and distributed computing.  The concept of a class and object-oriented programming will be motivated and introduced.

After you have taken this class:

  • You will strengthen your Python programming skills
  • You will know how to design classes and understand the fundamental principles of object-oriented programming
  • You will be able to design basic graphical user interfaces
  • You will be able to apply recursion as a problem-solving and programming technique
  • You will be able to write simple Internet client programs
  • You will have a basic understanding of the database API

Approximate weekly schedule (subject to change):

Week 1: Introduction, Brief review of Python basics, Namespaces (Chs 1-7)

Weeks 1-3: Object-oriented programming (Ch 8)

Weeks 4-6: Graphical user interfaces (Ch 9)

Weeks 7-9: Recursion (Ch 10)

Weeks 9-10: Web searching, Databases, Course review (Chs 11-12)


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. 

There will be required lab sessions each Monday afternoon (staring Monday 1/9 – there is no lab session on Monday 1/2), supervised by the lab instructor.  Each lab session will also require the submission of one or more files through the course web site.  The lab exercises will be worth a total of 10% of the course grade. 

For both the homework assignments and lab exercises, 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 some penalty, but no late lab exercises will be accepted.  Your lowest homework score and lowest lab score will be dropped in the computation of your course grade.

There will be a midterm exam given in class on Tuesday, February 7th that will be worth 30% of the course grade and a final exam given 11:30am-1:45pm on Tuesday, March 14th that will be worth 35% 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.


You must have taken CSC 241: Introduction to Computer Science I or an equivalent course that introduces problem-solving techniques and programming on Python and earned a passing grade (C- or better).  It will be assumed that:

  • You know how to create, debug, compile, and run Python programs, and you use a reasonable coding style (i.e., your code is easy to read and relatively concise)
  • You know Python's basic control structures and types
  • You can solve basic algorithmic problems


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.  (Obviously, any examples that I post qualify as “another person’s work”.)  Supplying such assistance to another student or working closely enough with another student so identical solutions are reached and submitted are also considered violations 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 other students nor consult other students’ solutions.  If you have questions, consult the instructor or a CDM tutor.  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