Course Syllabus

COP2500: Concepts in Computer Science

Department of Computer Science, College of Engineering and Computer Science

3 credit hours


Table of Contents


Instructor Information 

  • Instructor: Kyle Dencker
  • Office Location: HEC 217
  • Office Hours: Monday/Wednesday 2:45-4 PM (HEC217), Appointment
  • Email: kyle.dencker@ucf.edu

E-mail is generally the fastest and most reliable way to reach me.  Other notes:

  • Because of UCF’s FERPA policies, I cannot e-mail you about anything interesting on anything other than your Knightsmail account. Please check your Knightsmail account at least once a day, and please use it to communicate with me about this course.  Webcourses messaging works too, but e-mail is slightly more reliable.
  • I make regular use of Webcourses announcements and conditional messaging for substantive purposes. Please make sure your Webcourses settings alert you to course announcements and incoming messages.

Course Information

  • Term: Spring 2024
  • Course Number & Section: COP2500.0005
  • Course Name: Concepts in Computer Science
  • Credit Hours: 3
  • Class Meeting Days: MW
  • Class Meeting Time: 04:30PM - 5:45PM
  • Class Location: CB1 104
  • Course Modality: Face to Face

OR

  • Term: Spring 2024
  • Course Number & Section: COP2500.0V06
  • Course Name: Concepts in Computer Science
  • Credit Hours: 3
  • Class Meeting Days: MW
  • Class Meeting Time: 12:00PM - 1:15PM
  • Class Location: Zoom
  • Course Modality: Live video

Enrollment Requirements 

Course Prerequisites: None formal - only a basic understanding of algebra and trigonometry.

Course Description

Fundamental concepts in program design, data structures, algorithms, analysis, and a survey of topics in Computer Science.

Course Purpose

Computer programming is simply the creation of computer programs – the sets of instructions that computers execute to process input, perform calculations, and present output to their users.  In this course, you will learn the basics of programming and how to create ordinary computer programs.  You'll also learn a basic understanding of what we study in the field of computer science - and what you will learn in that field going forward.

Course Materials and Resources

There's no required textbook for this course.  There are a few resources you may find helpful:

  • Python for Everyone by Horstmann and Necaise.  ISBN-13: 978-1119056553.
  • Think Python by Downey.  ISBN 978-1491939369.
  • Refsnes Data W3schools' Python tutorial at https://www.w3schools.com/PYTHON/.
  • The Python Software Foundation's own documentation at https://docs.python.org/3/.  (This one is harder to read than the others, but by the end of the class, it should be useful to you!)

Topics and Objectives

By the end of this course, you should understand the following at multiple levels:

  • The basic concepts of computer programming
  • The tasks and opportunities within the field of computer science
  • How to write computer programs, specifically in the Python programming language
  • How to write computer programs to deal with mathematical problems and simple sets of directions
  • How to get input from, and produce output to, the users
  • How to get input from and produce output to files on disk
  • How to deal with textual "strings" of characters
  • How to use conditional statements to make decisions and loops to repeat operations
  • How to write sub-programs that can be put together to create larger programs
  • How to use lists and dictionaries to manage larger amounts of data
  • How to create complex programs to solve problems by combining most or all of the above skills

Course Activities

The course introduction tells you my general expectations for interaction and responsiveness.  You'll have three types of graded activities in the course as you go forward:

  • Midterm and Final Exams summarize your understanding of the course content. (Taken in the EPC)
  • Quizzes and Reflections show me that you understand the concepts.
  • Assignments and Labs are where much of the learning lives; this is where you actually put the programming techniques you're learning into practice.

Activity Submissions

All assignments will be submitted here via Webcourses.

Attendance/Participation

I will not take roll, and attendance is not mandatory.  However:

  1. You are responsible, without exception, for all information from class and laboratory sessions, explicitly and specifically including material and discussion not in the notes provided online.
  2. You should be aware that without consistent class attendance and out-of-class effort, you will have a much more difficult time succeeding.

Make-up Exams, Make-up Assignments, and Late Work

Per university policy, you are allowed to submit make-up work (or an equivalent, alternate assignment) for authorized university-sponsored activities, religious observances, or legal obligations (such as jury duty). If this participation conflicts with your course assignments, I will offer a reasonable opportunity for you to complete missed assignments and/or exams. The make-up assignment and grading scale will be equivalent to the missed assignment and its grading scale. In the case of an authorized university activity, it is your responsibility to show me a signed copy of the Program Verification Form for which you will be absent, prior to the class in which the absence occurs. In any of these cases, please contact me ahead of time to notify me of upcoming needs.

Other than that, assignments and labs have the following late work:

  • I will penalize work 0.5% per hour after the due date (12% per day).
  • I will not accept work submitted 72 hours after the due date, and the submissions will be turned off. 

Reflections and exams must be completed on time and do not have an automated late policy.  I may make exceptions with good reason before the due date.  After the due date, I will make exceptions only in documented, severe circumstances.

My policies for delayed or make-up tests are similar – I am much more likely to grant a make-up test if notified before the test date than after.  

Assessment and Grading Procedures

The course will be graded on a benefit-only plus-minus scale as follows:

A

A-

B+

B

B-

C+

C

C-

D+

D

D-

F

90-100

88-89

86-87

80-85

78-79

76-77

70-75

68-69

66-67

60-65

58-59

0-57

I reserve the right to move these grade cutoffs, but they will only move in the class’s favor.

This course uses weighted grading to determine your overall score:

Assignments: 35%
Labs: 20%
Quizzes and Reflections: 5%
Midterm: 20%
Final Exam: 20%
Total: 100%

Score Appeals

Questions about assignments and test scores are common.  Here’s how we handle them in this class:

  • If you have questions about a score on homework, please ask the teaching assistant who grades you; if you disagree with their answer or do not feel you have gotten a prompt answer, feel free to ask me.
  • If you have questions about a score on a quiz or test, ask me directly.
  • In general, if you have a question about any score, you must ask me no later than two weeks after that score is posted.  I reserve the right to make exceptions to this deadline for specific reasons.

Consult the latest Undergraduate or Graduate catalog for regulations and procedures regarding grading, such as Incomplete grades, grade changes, and grade forgiveness.

Academic Integrity and Conduct

You may not and must not share any actual work where the assignments are concerned or directly collaborate on the quizzes or exams in any way.

You not only may but should make use of all of the provided resources in this course to help you understand programming techniques.  You may not and must not copy code from any of them except where I give you specific, direct permission - all of your work must be your own. 

You must use the strategies and techniques learned in this course.  

You should not use a large language model (for example chatGPT), homework help sites, or tutoring services to help complete your code. These services do not allow you to develop your own solution, which is key in future computer science courses.  For live help, please use the office hours provided my myself and the teaching assistants. 

You may not make any material from this course publicly available for any reason, whether free or for profit.  (I can't change this rule - we use a lot of resources in this class, and making them available publicly can cause copyright issues.)

In sections with an online component, I allow the use of the Zoom chat in class so that other students as well as I can see questions and, often, help each other with them.  I reserve the right to shut it down if it becomes distracting or disruptive.

If you violate these rules, violate any other academic integrity rules, or disrupt class in general, I may eject you from the class, give you a failing grade on the relevant assignment and/or the course, and/or report you to University authorities.

All of the other University integrity and conduct rules apply to this course as well; see below.

Course Schedule

See Assignment and course calendar for topic schedule.

Acknowledgements

Portions of the content and schematic of this course are adapted from material graciously provided by Arup Guha, Matthew Gerber and Kyle Dencker.


University Services and Resources

Academic Services and Resources

A list of available academic support and learning services is available at UCF Student Services. Click on "Academic Support and Learning Services" on the right-hand side to filter.  

Non-Academic Services and Resources

A list of non-academic support and services is also available at UCF Student Services. Click on "Support" on the right-hand side to filter.  

If you are a UCF Online student, please consult the UCF Online Student Guidelines for more information about your access to non-academic services.

Policy Statements

 

 

Course Summary:

Course Summary
Date Details Due