Elements of Computing Science

CISC 101/3.0

Introduction to algorithms: their definition, design, coding, and execution on computers. Intended for students who have no programming experience.

Description

We are surrounded by computing devices that are just useless lumps of metal and plastic without the code written by creative and skilled programmers. These people first understand the problem and then, alone or as part of a team, devise an algorithm or set of algorithms that can solve it. Next the programmer has to translate the algorithm into a language that can be understood by the computing device. If he or she has done their job well, their code will not only work efficiently under normal conditions, but it will work under extreme conditions and continue to work until external system changes require the code to be updated.

The following questions will be discussed:

  • What is an algorithm?
  • How does a computing device work and how can we tell it what to do?
  • Is a working program always a good program?
  • How can you write a program to make it more easily modified by yourself or other programmers?
  • What are the common algorithms that every programmer should know?

What better way to learn how to code an algorithm than to do it? So, along with these discussions, the course will spend considerable time teaching you how to write simple programs in Python. Python is a modern object-oriented language that is popular, powerful and easy to learn.

Evaluation

Learning Outcomes

After completing CISC101, students will be able to:

  • Design new and adapt existing algorithms to solve computing problems
  • Express an algorithm in Python code
  • Examine and refine a Python program to improve its robustness, readability and efficiency
  • Design and construct a simple Graphical User Interface (a “GUI”) using the tkinter module
  • Summarize the historical evolution and modern construction of a computer
  • Discuss current trends and events in computer science

Evaluation

20% - Five coding assignments (4% each)
20% - Five quizzes (4% each)
20% - Participation
40% - Final exam

** Subject to Change **

Participation

Discussion topics can come from:

  • Questions on video material and exercises
  • Assignment difficulties
  • Problems understanding quiz solutions
  • Evolution of modern computing technology
  • Current computing trends, events and their effect on you and society

Expectations for Discussion Board includes:

  • Initial post submitted on time as designated in course outline
  • Length of post sufficient to demonstrate active participation and minimum grammatical error
  • Posts should demonstrate knowledge and understanding of key idea and concepts
  • Response to at least two other students and promote discussion by due date
  • Responses to classmates should be respectful and sensitive to others’ gender, culture, background, etc.

Final Examination

The final exam will be written by hand on paper in three hours or less, without aids, at an approved exam centre.If the exam mark is less than 50% then the quiz, assignment and participation marks will not count – the exam mark becomes the final course grade.Exam problems will have the same format as quiz questions, except they are on paper, not in Moodle.Details of more obscure Python syntax will be supplied with the exam, if required.

Instructor

Prof. Alan McLeod is an Adjunct Associate Professor in the Queen’s School of Computing. The “Adjunct” part means that he teaches but does not participate in any research programs. He has taught and supervised courses at Queen’s since 1997. Most courses are programming courses where the languages used have been C, C++, Java and Python. Prior to Queen’s, Alan ran his own contract programming company and worked at Alcan International’s Kingston Research and Development Centre, where he was a research scientist for 7 years. He became an expert in programming for data acquisition and process control. Going back even further, Alan obtained his Ph.D. in Materials Engineering at MIT and Masters and Bachelor’s degrees in Metallurgy at the University of Toronto. He is a Professional Engineer in Ontario.

Why is he teaching programming courses? Because he enjoys it! He works hard and expects his students to work hard as well.

Time Commitment

  • Each week will have between 4 and 5 hours of videos to study
  • Practice exercises will take between 2 and 3 hours to complete each week
  • The time spent on an assignment will depend on coding aptitude and how well the preceding material has been learned. An assignment could be completed in as little as 2 or 3 hours, but could take up to 6 hours. Assignment 1 will take the least time, and will be the easiest coding assignment to complete. Coding is best learned through practice, so the assignments supply an important reinforcement of course material. Coding efficiency usually improves with experience, so later assignments will not necessarily take longer than earlier ones, even though the completed programs will be longer
  • A quiz will take an hour to write each week, starting in week 2
  • Time spent in forums and chat rooms will vary, but could count for an hour each week
  • Readings are not required, but may be used at the student’s option to provide clarification of video material

Course Resources

About SOLUS

SOLUS is Queen’s Student On-Line University System. You’ll have access to a SOLUS account once you become a Queen’s student. You’ll use SOLUS to register for courses, add and drop courses, update your contact information, view financial and academic information, and pay your tuition.

About MOODLE

Moodle is Queen's online learning platform. You'll log into Moodle to access your course. All materials related to your course—notes, readings, videos, recordings, discussion forums, assignments, quizzes, groupwork, tutorials, and help—will be on the Moodle site.

About Credit Units

Queen’s courses are weighted in credit units. A typical one-term course is worth 3.0 units, and a typical two-term course is worth 6.0 units. You combine these units to create your degree. A general (three-year) BA requires a total of 90 credit units.

Computer Requirements

To take an online course, you’ll need a good-quality computer (Windows XP/Vista/7, Pentium III, or Mac OS X 10.5, G4 or G5 processor, 256 MB RAM) with a high-speed internet connection, soundcard, speakers, and microphone, and up-to-date versions of free software (Explorer/Firefox, Java, Flash, Adobe Reader). See also Preparing For Your Course.

Dates/Deadlines

The deadlines for new applications to Queen’s Arts and Science Online courses are in our Dates and Deadlines section.

Tuition Fees

Tuition fees vary depending when you start, your year, faculty, and program. Fees for 2014-15 first-year Distance Career Arts & Science Canadian students are as follows: for a 3.0-unit course, $605.31; for a 6.0-unit course, $1210.62. See also Tuition and Payment.

Grading Scheme

The information below is intended for undergraduate students in the Faculty of Arts and Science. Academic Regulations in other Faculties may differ.

Letter Grade Grade Point
A+4.30
A4.00
A-3.70
B+3.30
B3.00
B-2.70
C+2.30
C2.00
C-1.70
D+1.30
D1.00
D-0.70
F0.00

GPA Calculators
Have your SOLUS grade report handy and then follow the link to the Arts and Science GPA calculators.

How does this affect my academics?
See the GPA and Academic Standing page.

Follow the link above for an explanation of how the GPA system affects such things as the Dean’s Honour List, requirements to graduate, and academic progression.

Frequently Asked Questions on the Grading Scheme
Please follow this link to the FAQ's

Campus Bookstore

All textbooks can be purchased at Queen’s Campus Bookstore.

Non-Queen’s Students

All Queen’s Arts and Science Online courses are open to students at other universities. Before applying as a visiting student, request a Letter of Permission from your home university that states that you have permission to take the course and apply it to your degree. See also Apply.

Academic Integrity

Please see Queen’s policy statement on academic integrity for information on how to complete an online course honestly.